1. 程式人生 > php教程 > php程式設計師水平_PHP教程

php程式設計師水平_PHP教程

我對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 關於英文. 這個是廢話.最低要求是流暢閱讀英文文件.