越來越多的人進入開發這個圈子,踏上碼農這個不歸路。根據這些年在開發圈子總結的LNMP程序猿發展軌跡,結合個人經驗體會,簡單梳理了中級階段PHP程序員的技術要求,來幫助很多PHP程序員做對照設定學習成長目標。
中級PHP程序員
重點:提高針對LNMP的技能,能夠更全面的對LNMP有熟練的應用。
目標:能夠隨時隨地搭建好LNMP環境,快速完成常規配置;能夠追查解決大部分遇到的開發和線上環境的問題;能夠獨立承擔中型系統的構架和開發工作;能夠在大型系統中承擔某個中型模塊的開發工作;
Linux:
在初級階段的基礎上面,能夠流暢的使用Shell腳本來完成很多自動化的工作;awk/sed/perl
也操作的不錯,能夠完成很多文本處理和數據統計等工作;基本能夠安裝大部分非特殊的Linux程序(包括各種庫、包、第三方依賴等等,比如Redis/Sphinx/xunsearch/SVN/Git之類的);了解基本的Linux服務,知道如何查看Linux的性能指標數據,知道基本的Linux下面的問題跟蹤等。
Nginx:
在初級階段的基礎上面,了解復雜一些的Nginx配置;包括多核配置、events、proxypass,sendfile/tcp*配置,知道超時等相關配置和性能影響;知道nginx除了web server,還能夠承擔代理服務器、反向靜態服務器等配置;知道基本的nginx配置調優;知道如何配置權限、編譯一個nginx擴展到nginx;知道基本的nginx運行原理(master/worker機制,epoll),知道為什么nginx性能比apache性能好等知識;
MySQL/redis:
在初級階段的基礎上面,在MySQL開發方面,掌握很多小技巧,包括常規SQL優化(group by/orderby/rand優化等);除了能夠搭建MySQL,還能夠冷熱備份MySQL數據,還知道影響innodb/myisam性能的配置選項(比如key_buffer/query_cache/sort_buffer/innodb_buffer_pool_size/innodb_flush_log_at_trx_commit等),也知道這些選項配置成為多少值合適;另外也了解一些特殊的配置選項,比如知道如何搭建mysql主從同步的環境,知道各個binlog_format的區別;知道MySQL的性能追查,包括slow_log/explain等,還能夠知道基本的索引建立處理等知識;原理方面了解基本的MySQL的架構(Server+存儲引擎),知道基本的InnoDB/MyISAM索引存儲結構和不同(聚簇索引,B樹);知道基本的InnoDB事務處理機制;了解大部分MySQL異常情況的處理方案(或者知道哪兒找到處理方案)。
Redis/Memcached:
在大部分中型系統里面一定會涉及到緩存處理,所以一定要了解基本的緩存;知道Memcached和Redis的異同和應用場景,能夠獨立安裝
Redis/Memcached,了解Memcahed的一些基本特性和限制,比如最大的value值,知道PHP跟他們的使用結合;Redis了解基本工作原理和使用,了解常規的數據類型,知道什么場景應用什么類型,了解Redis的事務等等。原理部分,能夠大概了解Memcached的內存結構(slab機制),redis就了解常用數據類型底層實現存儲結構(SDS/鏈表/SkipList/HashTable)等等,順便了解一下Redis的事務、RDB、AOF等機制更好
PHP:
除了初級階段的能力,安裝配置方面能夠隨意安裝PHP和各種第三方擴展的編譯安裝配置;了解php-fpm的大部分配置選項和含義(如max_requests/max_children/request_terminate_timeout之類的影響性能的配置),知道mod_php/fastcgi的區別;在PHP方面已經能夠熟練各種基礎技術,還包括各種深入些的PHP,包括對PHP面向對象的深入理解/SPL/語法層面的特殊特性比如反射之類的;在框架方面已經閱讀過最少一個以上常規PHP
MVC框架的代碼了,知道基本PHP框架內部實現機制和設計思想;在PHP開發中已經能夠熟練使用常規的設計模式來應用開發(抽象工廠/單例/觀察者/命令鏈/策略/適配器等模式);建議開發自己的PHP
MVC框架來充分讓開發自由化,讓自己深入理解MVC模式,也讓自己能夠在業務項目開發里快速升級;熟悉PHP的各種代碼優化方法,熟悉大部分PHP安全方面問題的解決處理;熟悉基本的PHP執行的機制原理(Zend引擎/擴展基本工作機制);
C/C++:
開始涉獵一定的C/C++語言,能夠寫基本的C/C++代碼,對基本的C/C++語法熟悉(指針、數組操作、字符串、常規標準API)和數據結構(鏈表、樹、哈希、隊列)有一定的熟悉下;對Linux下面的C語言開發有基本的了解概念,會簡單的makefile文件編寫,能夠使用簡單的GCC/GDB的程序編譯簡單調試工作;對基本的網絡編程有大概了解。(本項是為了向更高層次打下基礎)
web前端(本項不做重點學習,除非對前端有興趣):
在初級階段的基礎上面,熟悉基本的HTTP協議(協議代碼200/300/400/500,基本的HTTP交互頭);條件允許,可以在深入寫出稍微優雅的HTML+CSS+JavaScript,或者能夠大致簡單使用某些前端框架(jQuery/YUI/ExtJS/RequireJS/BootStrap之類);如果條件允許,可以深入學習JavaScript編程,比如閉包機制、DOM處理;再深入些可以讀讀jQuery源碼做深入學習。
系統設計:
能夠設計大部分中型系統的網站架構、數據庫、基本PHP框架選型;性能測試排查處理等;能夠完成類似:瀏覽器 -> CDN(Squid)
-> Nginx+PHP -> 緩存 ->
數據庫結構網站的基本設計開發維護;能夠支撐每天數百萬到千萬流量基本網站的開發維護工作。
如果你已經決定要學好PHP,找一家靠譜的培訓機構,將會讓你的學習過程事半功倍。
“年度最受信賴職業教育品牌”千鋒教育,一直秉承“用良心做教育”的理念,同期在校學員5000余人,合作院校超500所,合作企業超10000家。全國有十三個校區。數十位總監級專家講師全職授課,200余位業內強師全程面授。
“中國教育集團領先品牌”千鋒教育,關注學員和企業的雙向需求,每年為企業輸出20000+計算機精英,畢業學員占據全國移動互聯網培訓人才一半以上的份額。畢業學員平均薪資也是全行業最高。
“年度最具影響力IT教育機構”千鋒教育PHP課程的教學老師,全部來自央企及上市公司,平均從業經驗5年以上。而且千鋒教育的老師實行淘汰制,學生進行匿名投票。留下來的都是經過學生投票檢驗過的名師;
千鋒教育的PHP課程采用實戰教學和分階教學模式。課程內容緊貼名企需求,以實戰傳授理論,不談虛的,只教真的。千鋒教育力求將學員打造成具備完美職場競爭力的精英。千鋒教育也是學員項目敢上線的唯一機構。
千鋒教育PHP培訓班畢業學員,其平均年薪相比行業平均年薪,足足高出五萬。
學PHP,首選千鋒教育。千鋒教育力造IT培訓領導品牌,學員百分之九十以上都是大專以上學生,力求為你營造最優質的學習環境。
千鋒教育現更有0學費入學、 2周免費試聽、跨學科周末班限時免費送活動, 一次報名,學習雙技能,如同打了五折。歡迎你前來咨詢,試聽。
???6??