高級PHP程式設計師
#重點:除了基本的LNMP程序,還能夠在某個方向或領域有深入學習。 (縱深維度發展) (推薦學習:PHP影片教學)
目標:除了能夠完成基本的PHP業務開發,還能夠解決大部分深入複雜的技術問題,並且可以獨立設計完成中大型的系統設計與開發工作;自己能夠獨立hold深入某個技術方向,在這塊比較專業。 (例如在MySQL、Nginx、PHP、Redis等任何一個方向深入研究)
#Linux:
除了第二階段的能力,在Linux下面除了常規的操作和性能監控跟踪,還能夠使用很多高級複雜的命令完成工作(watch/tcpdump/starce /ldd/ar等);在shell腳本方面,已經能夠編寫比較複雜的shell腳本(超過500行)來協助完成許多包括備份、自動化處理、監控等工作的shell;對awk/sed/perl 等應用程式已經如火純青,能夠隨意操作控制處理文字統計分析各種複雜格式的資料;
對Linux內部機制有一些了解,對核心模組加載,啟動錯誤處理等等有基本的處理;同時對一些其他相關的東西也了解,比如NFS、磁碟管理等等;
Nginx:
Nginx操作的很熟練,能夠對Nginx進行更深入的運維工作,比如監控、性能優化,複雜問題處理等等;看個人興趣, 更多方面可以考慮專注於關於Nginx工作原理部分的深入學習,主要表現在閱讀源碼開始,例如具體的master/worker工作機制,Nginx內部的事件處理,記憶體管理等等;
同時可以學習Nginx擴展的開發,可以自訂一些自己私有的擴展;同時可以對Nginx Lua有一定程度的了解,看看是否可以結合應用出更好模式;這個階段的要求是對Nginx原理的深入理解,可以考慮成為Nginx方向的深入專業者。
MySQL/MongoDB:
在第二階段的基礎上面,在MySQL應用程式方面,除了先前的基本SQL最佳化,也能夠在完成一些複雜操作,例如大批量資料的匯入導出,線上大批量資料的更改表結構或增刪索引欄位等等高風險操作;
除了安裝配置,已經能夠處理更多複雜的MySQL的問題,例如各種問題的追查,主從同步延遲問題的解決、跨機房同步資料方案、MySQL高可用架構等都有涉及了解;
對MySQL應用層面,對MySQL的核心關鍵技術比較熟悉,例如事務機制(隔離等級、鎖定等)、對觸發器、分割區等技術有一定了解與應用;
對MySQL效能方面,有包含磁碟最佳化(SAS遷移到SSD)、伺服器最佳化(記憶體、伺服器本身配置)、除了其他核心效能最佳化選項(innodb_log_buffer_size/back_log/table_open_cache /thread_cache_size/innodb_lock_wait_timeout等)、連線池軟體選擇應用,對show * (show status/show profile)類別的操作語句有深入了解,能夠完成大字詞部分的效能問題追蹤;
MySQL備份技術的深入熟悉,包括災備還原、對Binlog的深入理解,冷熱備份,多IDC備份等;
在MySQL原理方面,有更多了解,例如對MySQL的工作機制開始閱讀部分源碼,例如對主從同步(複製)技術的源碼學習,或者對某個存儲引擎(MyISAM/Innodb/TokuDB)等等的源碼學習理解,如果條件允許,可以參考CSV引擎開發自己簡單的儲存引擎來保存一些數據,增強對MySQL的理解;
在這個過程,如果自己有興趣,也可以考慮往DBA方向發展。 MongoDB層面,可以考慮比如說在寫少讀多的情況開始在線上應用MongoDB,或者是做一些線上的資料分析處理的操作,具體場景可以按照工作來,不過核心是要更好的深入理解RMDBS和NoSQL的不同場景下面的應用,如果條件或興趣允許,可以開始深入學習MongoDB的工作機制。
以上是php高級程式設計師該學什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!