作為一名合格的PHP程序員,應該進行哪些技術儲備?
01-07
我對各種框架均毫無興趣,哎。說一下我的理解
1:安全 SQL注入,跨站腳本,XSS蠕蟲,典型的上傳漏洞及其他風險,以及CC攻擊的原理和防範,不懂安全的開發工程師一定是不合格的。
2:資料庫 能正確理解數據索引的原理,至少應包括hash索引和btree類索引,知道索引優化的原理和查詢效率的分析方法。 這個說上去簡單,根據我們的面試情況,未經受我們培訓的工程師,能滿足這個條件的十不及一。當然,北上廣大公司多,可能會好一些。 知道關係型資料庫和key-value資料庫,以及內存資料庫的各自優缺點和適用場景,可以根據具體業務訴求選擇合適的數據存儲模式。有人會說,這不是DBA的活么?我一直覺得開發工程師和DBA壓根就不應該區分出來,也許我有點偏執吧,不過我們公司基本上都要求開發工程師來兼任這一工作了。
3: 調試和測試的能力 這個虛一點,只說幾個場景。 遇到各類型錯誤輸出的顯性bug,知道通過搜索獲得輔助資料,並解決之。 遇到結果與期望不一致的隱形bug,諸如數據邏輯錯誤或者一些判斷分支錯誤的問題,知道設計斷點和輸出中間數據來逐步定位問題。在完成較大的工作任務時,知道每個步驟環節需要獨立的測試,而不是籠統弄到一起才想到需要測試。
在業務訴求需要滿足較高訪問規模或公開暴露於外網有可能導致CC攻擊時,知道提前做壓力測試並給出性能指標。4:代碼注釋 說注釋而非文檔,因為很難要求其他程序員一邊看文檔一邊看程序,所以代碼內的注釋其實是非常關鍵的,發布版本的代碼基於某些考慮可以取消注釋;但是要保留一份原始帶有詳盡注釋的代碼。5:業務需求理解力我一向認為,php不是純技術工種,更多直接面向需求,所以,對業務需求理解力越強,與有關產品人員,業務人員的溝通越順暢,工作效果會越好;相信我,每個產品人員都喜歡懂需求,易溝通的開發工程師。
6:如有可能,對運維有一點了解最好,因為有時候,出一些詭異bug的時候,你需要做出正確的判斷可能需要對運維環境有一定的認識。按優先順序來吧1.PHP本身的語言特徵,安全技術,以及評價較好的框架,類似CakePHP,Symfony等,當然還有一些國內的類似ThinkPHP等良好框架。作為PHP程序員,對PHP本身的優點以及缺陷,以及各種實現細節,要做較深入的了解。可以通過閱讀一些比較流行的開源程序,比如各種CMS等。世界上本不存在完美的語言,但是作為程序員,你要善於彌補語言本身,甚至團隊本身的缺陷讓自己開發的系統趨於完美。同時還需要了解各種網路攻擊技法,比如各種注入技術,以及黑客常用攻擊技法,從而在開發階段就及時填補各種漏洞。
2. Mysql資料庫技術。Mysql可以說和PHP結合的那是相當的緊密了,可以說沒有Mysql的話,PHP根本就不可能流行起來,所以一般都談LAMP開發。還有就是你寫的程序很大程度上瓶頸都會出在DB(尤其是在負載還不是很高的階段),所以一定了解資料庫的創建,優化技法。
3.HTML,CSS,JS等前端技術,甚至可以了解一些Flex等編程。不論你在PHP上使用什麼架構或框架,毫無疑問,你最終和用戶打交道的都是生成瀏覽器解析的前端代碼。那麼對這些技術的熟知無疑會加快你的工作效率,以及解決問題的能力。4.Apache網站伺服器,Linux系統知識。這是PHP程序運行的容器。了解一下魚缸的好壞以及結構優缺點等,無疑對養魚還是有好處的。php主要涉及到的web開發。那你的會html,css,js前端的性能要了解。資料庫的話主要是mysql,可以編寫以及結合項目對sql語句調優。再則linux與伺服器也得了解
合格的PHP程序員首先是一個合格的程序員。如果確定投身程序員這一行,php也應該只是你的開始而已。我的建議有如下幾條:一,初級程序員,跟著項目學。初級程序員主要是掌握必備的語言知識點等。二,中級程序員,能夠接觸一些複雜的應用,如流量過百萬,千萬的應用,經歷了這邊項目,你自然能夠對所需知識,應用自如。三,專家程序員,對項目的反思、學習、與大牛們的交流中,逐漸形成自己的編程風格,對技術問題能有獨到的見解,會對業務、技術、團隊做整體的分析。。。總之:程序員要通過不斷的學習達到自我完善、而程序員也只是業務團隊中的一員。技術最終還是要轉化為商業的生產力,以及商業生產率的提升。盡量不要為了學技術而學技術。技術永遠是為人服務的。
學好c/c++,php默認的搞不定就去做擴展搞定。
資料庫,調試和測試的能力,代碼注釋,業務需求理解力,運維我想這些東西多少要具備些的吧,呵呵
合格的php程序員:滿足所在公司的業務和項目.優秀的php程序員:在滿足公司業務和項目之後,再把公司業務和項目優化和提升大牛級的PHP程序:在滿足公司業務和項目之後,再把公司業務和項目優化和提升之後,不局限於php層次去解決問題,並且在某些方面有一定的影響力!
推薦閱讀:
※PHP自由職業者靠譜嗎?或者說是大學在校生,靠接一些項目來做賺錢養活自己。?
※網上的PHP視頻版本比較老,是否適合現在(2017)自學?
※學習PHP,然後學習C, 深入Linux的, 如果想往底層發展, 應該是如何的一個學習過程?
※Symfony2 的優缺點有哪些?
※PHP網站中保持登錄狀態的功能是怎麼做的?