說句實話,寫這個真夠無聊的.本來看了某位大蝦的類似文章,腹誹了幾句也就算了.但是昨天晚上有個客戶拿著這篇文章問我: 你丫的自己做
外包,你算幾段PHPer?遂感覺那篇文章對某些半通不通之人的誤導之深.無法,只有寫此文章表明我對PHPer的水平區分的立場.
關于具體收入水平,總的來說因為這幾年PHP培訓班的加多,大量PHP新手開始搞亂市場,所以很難說清.在此貿然寫出有誤導之嫌.而且收入水平和所在地區有很大的關系,例如重慶的同水平PHPer肯定比北京的工資低.但在重慶省著點花錢反而比北京剩的工資多.
不過,PHP的市場確實在逐步混亂,目前因為培訓班/大學選修課等原因,初級PHPer大量增加.故初級PHPer的工資市場有步asp呈現白菜價的趨勢
.但高級PHPer仍然極為缺乏.
但我認為:工資水平和實際技術水平基本成正比,目前業界信息透明,且到目前位置高端PHPer的圈子仍然極小.大家交換信息極為方便.如果PHP水平不高,但拿到高工資的概率不高.即使PHP技術差能拿到高工資也不能長久.
以下觀點屬于我的一家之言,您不贊同可以拍磚,可以給我發信討論,我的mail是 jstel && 126.com (&& 換成 @) Arain收 . qq : 155313 7 2 4 . 目前我職業做網站項目外包,也就是大家所說的自由職業者.歡迎大家有網站/crm等活發包給我.
0 : 我對PHPer的定義: PHPer是工作/程序以編寫PHP程序為主,其他方面略有涉獵的人.部分由C/C++ 轉來的人,雖然也做php程序,但工作重點仍是C/C++.不能說是PHPer或者不能說是純粹的PHPer.
1 : 對PHPer的劃分,我對PHPer劃分為以下幾個階段.
a: PHP 愛好者 (半個PHPer)
b: PHP 初學者 (PHP Beginner)
c: PHP 初級程序員 (Primary PHP Coder)
d: PHP 中級程序員 (Junior PHP Coder)
e: PHP 高級程序員 (Senior PHP Coder)
f: PHP 工程師 (PHP Programmar)
以下是對PHPer劃分的具體描述:
X: PHPer的共同特點:
0: 會電腦,能上網.
1: 知道w3c標準,
2: 會html,會JS,會PHP.會MySQL.
3: 知道linux.見過linux運行.
不滿足以上內容者別說自己是PHPer.
以下對不同階段的描述, 每一個高級階段都需要掌握低級階段的技能 . 他們之間具有繼承關系. 在初級階段,由于目前國內的情況.經常需要PHPer兼美工/網管的功能.所以也寫了一部分其他技能.
a: PHP 愛好者
定義: 以PHP程序為業余愛好,建有或正維護著一個或幾個使用PHP技術實現的網站/程序的人是PHP 愛好者.
描述: 這些人一般不以PHP為謀生手段,他們的分布以網站站長及在校學生為主.
特征: 1: 會用dreamweaver/frontpage等工具制作網頁.
2: 可以對現成PHP程序進行修改.
3: 愛好PHP.
技術要求: 無.
b: PHP 初學者 (PHP Beginner)
定義: 準備以PHP程序謀生,準備建設或正在維護一個或幾個使用PHP技術實現的網站/程序的人是PHP 初學者 (PHP Beginner).
描述: 這些人已經或即將以PHP為主要謀生手段,他們的分布以即將畢業的大學生及剛剛加入PHP 程序員行列的人為主
特征: 1: 能夠簡單維護/操作/優化linux.
2: 能夠編寫PHP程序.
3: 會MySQL.
4: 會html/js.
5: 能夠構建符合W3C標準的頁面.
6: 能夠勝任簡單的服務器維護工作.
技術要求:
1: 服務器運行系統:
a: linux:
I: 能夠安裝Linux系統、熟練使用Linux常用命令、知道Vim文本編輯器,會軟件包管理.
II: 能夠實際操作用戶管理、進程管理、文件系統管理、權限管理功能
III: 知道并會使用Linux網絡配置相關文件、基本配置命令、DHCP、VNC、DNS服務器、Samba服務器. 能成功配置并使以下服務平穩運行.SSH、FTP、Apache,站點登錄控制、日志管理.
IV: 能夠使用shell對服務器進行維護.
V: 能夠進行Linux系統安全配置、Iptables、syslog日志管理
b: windows:
僅為初學者和初級程序員要求.
I: 能夠安裝windows、熟練使用windows、能夠對IIS進行優化.
II: 能夠正確配置防火墻、對服務器進行管理維護.
III: 能夠抵御普通的網絡攻擊.
2 web頁面技術及相關:
其實這不應該算是PHP的技術.但實際工作中,大部分PHP初學者都需要兼前臺/后臺/網管的角色.故在此提出,僅供參考.
I: 熟練掌握HTML, Dreamweaver、常用標簽、圖象地圖、表格、分楨框架、表單,Header處理,CSS, 樣式表的分類、樣
式則規器使用,常用的樣式、層標簽,JavaScript
II: 各種事件及事件處理程序的應用、window對象、document對象、location對象、body對象、form對象、form表單字段元素對象
III: ajax及其相關技術.能完成常見ajax頁面制作
3 MySQL技術
I: 熟練掌握SQL語句.
II: 熟練掌握MySQL的常用操作.包括安全、訪問控制和權限、備份和恢復,復制、導入和導出記錄.
III: 熟練掌握 phpMyAdmin或任意一種MySQL管理維護工具.
4 PHP技術
I: 熟練掌握PHP語法,常用函數.
II: 熟悉PHP的面向對象編程.并能實際使用面向對象思想進行程序寫作.
III: 熟悉PHP常用庫.
c: PHP 初級程序員 (Primary PHP Coder)
定義: 正在以PHP程序謀生,正在建設或維護一個或幾個使用PHP技術實現的網站/程序的人,PHP經驗有限的人是PHP初級程序員.
描述: 這些人已經以PHP為主要謀生手段,他們的分布以剛剛加入PHP 程序員行列的人為主,也有部分加入PHP行列若干年的人.
特征: 1: 能夠維護/操作/優化linux.
2: 熟練編寫PHP程序.
3: 熟練掌握MySQL.
4: 會html/js.
5: 能夠快速構建符合W3C標準的頁面.
6: 能夠勝任大部分服務器維護工作.
技術要求:
1: 服務器運行系統:
a: linux:
I: 熟練安裝Linux系統、熟練使用Linux常用命令和某些日常使用的命令、掌握軟件包管理.
II: 能夠熟練操作用戶管理、進程管理、文件系統管理、權限管理功能
III: 能夠熟練使用Linux網絡配置相關文件、基本配置命令、DHCP、VNC、DNS服務器、Samba服務器. 能快速的配置并使
以下服務平穩運行.SSH、FTP、Apache,站點登錄控制、日志管理.
IV: 能夠對MySQL和Apache進行一定的優化以提升網站性能.
V: 能夠使用shell對服務器進行維護.熟練使用常用的維護工具.
VI: 能夠進行Linux系統安全配置、Iptables、syslog日志管理
b: windows:
僅為初學者和初級程序員要求.
I: 能夠安裝windows、熟練使用windows、能夠對IIS進行優化.
II: 能夠正確配置防火墻、對服務器進行管理維護.
III: 能夠抵御普通的網絡攻擊.
2 web頁面技術及相關:
其實這不應該算是PHP的技術.但實際工作中,大部分初級PHP程序員在公司里都需要兼前臺/后臺/網管的角色.故在此提出,僅供參考.
I: 熟練掌握HTML, Dreamweaver、常用標簽、圖象地圖、表格、分楨框架、表單,Header處理,CSS, 樣式表的分類、樣式則規器使用,常用的樣式、層標簽,JavaScript
II: 各種事件及事件處理程序的應用、window對象、document對象、location對象、body對象、form對象、form表單字段元素對象
III: ajax及其相關技術.能完成常見ajax頁面制作.
IV: 會photoshop在內的一種或多種圖片編輯軟件
3 MySQL技術
I: 熟練掌握SQL語句.
II: 熟練掌握MySQL的操作.包括安全、訪問控制和權限、備份和恢復,復制、導入和導出記錄.
III: 熟練掌握 phpMyAdmin或任意一種MySQL管理維護工具.
IV: 知道MySQL常見性能瓶頸的原因及解決方法.并能實際解決.
4 PHP技術
I: 熟練掌握PHP語法,常用函數.
II: 熟悉PHP的面向對象編程.并能實際使用面向對象思想進行程序.
III: 熟悉php面向對象的特性.能夠根據實際運行環境選擇開發方法.
IV: 熟悉PHP常用庫.能夠使用常用的php庫進行項目開發.
V: 擁有良好的編碼格式習慣,可以規范的進行代碼編寫.
5 項目相關
I: 實際完成過PHP項目.或全程參與過php網站開發與建設.
II: 能夠較為快速的進行項目開發.
d: PHP 中級程序員 (Junior PHP Coder)
定義: 正在以PHP程序謀生,正在建設或維護一個或幾個使用PHP技術實現的網站/程序的人,有幾年PHP經驗但是尚未積累必要的代碼庫和快速開發工具的人是PHP 中級程序員 .
描述: 這些人已經以PHP為主要謀生手段,他們的分布以加入PHP 程序員行列5年內的人為主,也有部分加入PHP行列更多年的人.
特征:
1: 能熟練維護/操作/優化linux.
2: 快速編寫結構清晰,代碼格式優美的PHP程序.
3: 熟練掌握MySQL的操作和常用優化.
4: 熟悉程序性能的出現瓶頸的常見原因,并能在實際編寫過程中避免出現性能瓶頸.
5: 能夠使用某些框架/類庫加速項目開發進度.
6: 能夠勝任大部分服務器維護工作.
技術要求:
1: 服務器運行系統:
a: linux:
I: 熟悉操作一種版本linux,并能對此版本的linux進行一些調整優化
II: 能夠進行不停機維護升級.
III: 能夠熟練使用Linux命令行下操作.
IV: 能夠對MySQL和Apache進行優化以提升網站性能.
V: 能夠配置小型服務器集群(雙服務器或三服務器).
VI: 能夠進行Linux系統安全配置、Iptables、syslog日志管理
2 web頁面技術及相關:
到中級程序員,一般公司都有專門的美工和前臺程序員配合工作.故頁面制作技術要求同初級程序員.
I: 熟悉常見的通信標準.可以根據手冊編寫出符合通信標準的程序.
3 MySQL技術
I: 熟練掌握SQL語句.
II: 熟練掌握MySQL的操作.包括安全、訪問控制和權限、備份和恢復,復制、導入和導出記錄.
III: 熟練掌握 phpMyAdmin或任意一種MySQL管理維護工具.
IV: 知道MySQL性能瓶頸的原因及解決方法.并能實際解決.
4 PHP技術
I: 熟練掌握PHP語法,常用函數.
II: 熟悉PHP的面向對象編程.并能實際使用面向對象思想進行程序.
III: 熟悉php面向對象的特性.能夠根據實際運行環境選擇開發方法.
IV: 熟悉PHP常用庫.能夠使用常用的php庫進行項目開發.
V: 擁有良好的編碼格式習慣,可以規范的進行代碼編寫.
5 項目相關
I: 實際完成過PHP項目.或全程參與過php網站開發與建設.
II: 能夠較為快速的進行項目開發.
III: 有自己的代碼庫.可以在項目中進行復用
IV: 形成了良好的編碼習慣,編寫的程序代碼清晰,注釋清楚.
V: 能夠對項目中的難點與新技術進行攻關.
e: PHP 高級程序員 (Senior PHP Coder)
定義: 正在以PHP程序為主要工作,建設過多個PHP項目,正在建設或維護一個或幾個使用PHP技術實現的網站/程序的人,有多年PHP經驗,有自己的代碼庫和快速開發工具的人是PHP 高級程序員.
描述: 這些人已經以PHP為主要謀生手段,他們的分布以加入PHP 程序員行列5年以上的人為主.高級程序員是PHP項目的核心力量.
特征:
1: 能熟練維護/操作/優化linux.
2: 快速編寫結構清晰,代碼格式優美的PHP程序.
3: 熟練掌握MySQL的操作/優化和多數據庫.
4: 能夠快速查出程序性能的出現瓶頸的原因,并能根據實際情況進行調整.
5: 能夠使用框架/類庫加速項目開發進度.
6: 有自己的代碼庫.
7: 能夠勝任大部分服務器維護工作.
技術要求:
1: 服務器運行系統:
a: linux:
I: 熟悉操作一種版本linux,并能對此版本的linux進行一些調整優化
II: 能夠進行不停機維護升級.
III: 能夠熟練使用Linux命令行下操作.
IV: 能夠對MySQL和Apache進行優化以提升網站性能.
V: 能夠配置和優化服務器集群.
VI: 能夠進行Linux系統安全配置、Iptables、syslog日志管理
2 MySQL技術
I: 精通SQL語句.
II: 熟練掌握MySQL的操作.
III: 熟練掌握 phpMyAdmin或任意一種MySQL管理維護工具.
IV: 能夠根據實際運行情況對數據庫瓶頸進行調整,并適時改變開發方法.
4 PHP技術
I: 精通PHP語法,常用函數.并有自己專注的方向.
II: 熟練使用PHP的面向對象編程.并能實際使用面向對象思想進行程序.
III: 熟悉php面向對象的特性.能夠根據實際運行環境選擇開發方法.
IV: 實際使用工廠化開發等開發方法進行項目開發.能夠使用PHP的特性提升開發速度和程序運行速度.
V: 有自己的代碼庫,有自己熟悉兵精通的某些共用類庫.
VI: 擁有良好的編碼格式習慣,可以規范的進行代碼編寫.
5 項目相關
I: 實際完成過多個不同方面的PHP項目.
II: 能夠快速的進行項目開發.
III: 有自己的代碼庫.可以在項目中使用代碼庫進行快速開發.
IV: 形成了良好的編碼習慣,編寫的程序代碼清晰,注釋清楚.
V: 能夠領導程序員對項目中的難點與新技術進行攻關.
VI: 熟悉軟件工程,能夠根據實際情況選用適當的開發模式.
f: PHP 工程師 (PHP Programmar)
定義: 正在以PHP程序為主要工作,并正在進行新產品的研發.可以同時使用C+/perl等輔助提高PHP程序性能的人是PHP工程師.
描述: PHP工程師是.
特征:
1: 精通一種或多種linux.
2: 快速編寫結構清晰,代碼格式優美的PHP程序.
3: 能夠進行框架級通用程序的研發.
4: 能夠在程序開發初期就通過項目規劃避免未來可能出現的性能瓶頸.
5: 能夠使用框架/類庫加速項目開發進度.
6: 有自己的代碼庫.
7: 能夠勝任大部分服務器和部分服務器集群優化工作.
技術要求我就不說了.具體到PHP中級程序員之后,PHP程序員就開始選擇發展方向進行分化了.能夠到這一步的人,基本都對自己的職業規劃有清晰的認識.目前國內此類人才奇少.
關于其他:
1 PHP程序員從中級程序員階段就開始分化,具體方向根據公司性質,工作條件,自己的興趣等不一而同.因此需要擅長的詳細技能也不太相同.
例如: 公司使用 joomla 構建網站, 這就要求程序員必須精通joomla. 如果公司使用自研CMS+discuz構建網站,這就要求程序員能夠熟練進行DISCUZ的二次開發.強行要求程序員精通這精通那,意義不大.
到高級程序員開始.PHP程序員由于自己的職業經歷.肯定會有自己的專攻方向,有人擅長大負載下程序開發優化,有人擅長項目快速開發.而到這個階段,如果PHP程序員還需要看這篇文章規劃自己的職業生涯.那么請自己列出自己擅長的PHP技術.并選擇一種最擅長的技術專攻.
2 關于coder和programmar. 字面上理解第一個是編碼員,第二個是程序員.實際因為國內名詞的混亂.第一個大多以程序員稱呼,第二個目前大多處于項目核心領導層面.故本文暫以工程師稱呼.
coder 是進行少量創新的,大量重復工作的人.
programmar 是進行新技術摸索開發,并實際領導/帶領大中型項目開發的人.
3 關于 C++ . PHP初期的語法(php3/4時代)和C幾乎一樣.我當初就是看一下午PHP速成+php手冊入的門.但到一定深度之后.有些PHP的特性需要實際閱讀PHP源碼才能理解(相關文檔不全或者不好找到).有些實際項目功能使用C++開發遠比PHP效率高.比如我現在做的項目需要爬蟲持續海量抓取,當帶寬足夠的情況時,純使用PHP實現效率不高.所以必須使用C++. 所以C++到需要用的時候自然而然的就要用了.不過如果有C/C++的基礎,學習PHP要輕松很多.
4 關于面向對象.面向對象還是很帥的,小型工程上使用意義不大,大中型工程可以極大的提升開發效率.在php4的時代對面向對象基本沒有什么要求,但是現在需要完整掌握面向對象.
5 關于JAVA/Delphi 他們和php有關么? 我孤陋寡聞.請牛人指教.謝謝
6 關于軟件工程. 軟件工程是一個實際使用中才能學懂的學科.我才疏學淺,在大學的時候楞沒學懂.等實際領導項目了.才慢慢的明白其中的含義與奧妙.
8 關于開發模式. 開發模式的好壞直接關系這項目開發的速度與項目的質量.初期死摳模式意義不大.建議有一定積累了再說.
9 關于名氣. 嗯...怎么說呢?高端PHP圈子很小,也就那么些人.水平到了,自然就認識那些人了.
10 關于第三方庫,初期學習掌握一些,比如smarty.到一定階段需要決定到底是精通第三方庫還是使用自行積累開發的庫.總的來說,由于第三方庫大多是外國人開發,所以國內想要時刻緊跟比較被動,phpBB中文的沒落便是一例.如果使用自行積累開發的庫,難度較大,要注意通用性和可擴展性.
11 關于英文. 這個是廢話.最低要求是流暢閱讀英文文檔.
其他:
鳴謝: 國內某培訓機構的資料.我引用里你們的3月速成PHP工程師的標準作為PHP初學者的標準.謝謝.因為我也沒稿費得.所以就不給你們稿費了.
版權: 老習慣 ,共創協議,非商業性/姓名標示/禁止修改. 謝謝
一家之言,歡迎大家討論.本文廢話頗多.寒一個. 我的聯系方式 : jstel && 126.com (&&換成 @) .Arain 收 qq: 155313 7 24. 有任何不同意見可以來信討論.
感謝 : 姜運濤 指出文中若干錯誤.