前言
今天在 segmentfault 看到一片文章,寫的挺不錯的。里面所涉獵的技術我都會都狩獵過,但限于工作及其他因素不能面面據到。至此
我都沒弄懂,基于木桶原則的話,我的短版在哪?我覺得我望哪瞅哪都是短版?額...
以下為轉文章原文 By:張友林
PHP程序員要月薪上萬,技術需要達到什么水平?
這是一個經常被初級程序員問到的一個問題。如果你問公司的HR,人家會告訴你,你的薪資取決于于公司的薪酬制度,以及你在公司的位置。。。,所以啊,你懂的,小伙子好好干,繼續加班吧。
這是可恥的忽悠, 我們廣大程序員都是追求技術進步的有為青年,程序員的薪資水平要掌握在自己手中。
咱們先來說說PHP程序員技能樹吧。要月薪上萬,你要掌握的技能還真不少。
HTML/CSS/JavaScript 這些就不必說了,入門級WEB開發程序員都要掌握的。
其次說說PHP編程能力,精通PHP語法,掌握常用的函數,熟悉PHP5下的OOP應用,熟練使用緩存,掌握一些設計模式等等。這個是基礎。再高級一點,你要會這些:對PHP運行機制的理解;對系統資源的調用交互理解;關健性能的優化能力。以及有過OOP架構設計經驗,熟悉設計模式、UML,熟悉PHP對象運行機制,內存管理等
MySQL技能也是必不可少的。還是先從基本的來說,你要知道用PHP連接數據庫;懂得寫一些簡單的SQL;建一些簡單的索引;懂得用工具簡單操作一下數據庫(增刪改庫表結構數據等等)。進階一點呢,你要懂得在開發應用上設計數據庫,建立一些有效的索引,用explain分析SQL性能,壓力測試等等。再往上呢,你要深入了解數據庫索引、存儲引擎原理以及運行機制,能有效地構建高性能可擴展的數據庫結構/架構,有效地優化數據庫性能配置并加以調試,分析數據庫運行狀態。再往上呢,再往上先不說了。
再說說操作系統應用能力,WEB開發不只是會寫代碼就行的。操作系統應用也是必備技能。需要廣泛且扎實的基礎理論,而對于開發者來說,熟悉基本的命令操作,對WEB相關服務的安裝、配置、優化能力需要具備。
說到這,已經把很多程序員打回原形了。天啊,要到這么高的水平,原來我以為我很牛,現在才發現我太菜了。
還沒完呢,作為一個PHP程序員,沒有大型網站工作經驗,怎么好意思出來混呢。PHP開發下的緩存應用(memcache、APC等);session處理方案;熟悉負載均衡;熟悉PHP數據連接池應用;了解PHP編程性能優化。這些只有在大訪問量網站工作才能接觸到。這些只是小菜,你還要掌握分布式緩存及緩存性能優化、熟悉存儲系統、文件系統、數據庫,開發可擴展平臺。能結合負載均衡合理布置流量,對PHP運行性能進行監控與分析等。
不說了,再說下去連我自己都沒信心了。不過呢,大家要往這個方向努力。FaceBook只招全棧工程師,現在大家知道為什么了吧,你掌握了上面說的,你就是一個全棧工程師了。
總結一下,PHP程序員要月薪上萬,還是要求比較高的。 那個C++,JAVA程序員,可以專精某一技術。但是做Web開發的人,就得往全棧工程師這個方向發展。
[ 自己想說的話 ]
昨天又在網給自己買了兩本書《算法(第四版)》/《代碼整潔之道》,加上幾個月一月一本,夠我啃過這一年了吧?
年前到現在一直都趴在研究前臺框架bootstrap
上面,然后也是昨天,項目老大問我:最近的自己在學習什么?我托口而出:bootstrap
!我靠~ 我現在還記得,當時他臉都黑了。我知道他肯定想不到我一后端的,屁顛屁顛玩到前端去了。
我歉意的說:我對自己的職業規劃是全棧工程師,所以想什么都去研究什么都不想落下。
其實,我內心是糾結的。因為我現在所學習的東西無法有價值的運用至項目中去,不僅僅是自己是后端的身份,還因為項目組中有專業的前端/美工。而我僅僅還只能做些拖拽bootstrap
框架中,別人寫好的組件到處德瑟~糊弄那些不懂行的可以,專業人士就算了,還不如扎扎實實的去研究CSS/JavaScript底層的東西。
我喜歡去學習新的技術,但這些還不夠。人有不是機器,學多了總會忘。所以通常都是兩條路~
廣:橫線發展,這種比較耗費時間。要么面面具備,要么什么都不會
深:專精一本,做一門技術中資深的專家。根據一萬小時的定律,這個應該是不難實現的。
其實,人活著要點目標。有了目標就什么都不用怕,只要朝著好的方向一步一步向前進即可... (前提是不能提前陣亡..)