在過去的六個月甚至更長的時間里,我至少在為三家公司尋找 PHP 開發(fā)者。我和一些程序員聊過,收到了一些反饋,甚至還面試了幾個人,但是我卻從來沒有推薦過任何人。
在我解釋之前,先別抨擊我的要求太高。我并不是在尋找火箭科研人員,也不是找同樣高端的開發(fā)者,我甚至都不打算找一個高級的 PHP 開發(fā)者。只要有足夠的水平來維護 CakePHP 和 WordPress 這兩個項目的人就夠了,更何況,它們還是開源的。
我理解并不是每個人都使用過 CakePHP 和 WordPress來做開發(fā)。我也明白熟悉這些代碼和通讀相關(guān)文檔都需要一些時間。更知道不是每個人都熟悉開源軟件開發(fā)模型,不是每個人都在團隊里工作過,所以,熟悉版本控制軟件,文檔編輯工具和 bug 跟蹤等等都不在要求范圍之內(nèi)。
但是我不明白的是,為什么那些自稱使用 PHP 和 MySQL ,至少開發(fā)過兩個 web項目的人,卻不能用紙筆寫出最簡單的代碼?為什么有數(shù)年 PHP 開發(fā)和團隊領(lǐng)導(dǎo)經(jīng)驗的“高級 web 工程師”,面對沒有 Dreamweaver的開發(fā)環(huán)境時卻一無是處?那些至少擁有一個計算機科學(xué)學(xué)士學(xué)位的開發(fā)者,卻還在崇尚冒泡排序法?為什么程序員不再回答技術(shù)問題,反而開始向潛在的雇主講述面試經(jīng)歷?為什么擁有數(shù)年團隊合作經(jīng)驗的技術(shù)人員,在面試時哪怕是被問到最簡單的技術(shù)問題,都會茫然不知所措?
如果你想知道上面這些問題的答案,這里正好有個例子。比如說,有個簡單的問題:“stack (也稱為 FILO ) 和 queue (也稱為 pipe 或者 FIFO) 兩者之間有什么不同?”答案就已經(jīng)明顯地隱藏在問題之中了,不是么?
這些自稱有好幾年開發(fā)工作和項目經(jīng)驗的應(yīng)聘者,在面試時通常會遇到一些簡單的程序問題。比如下面這個問題:“使用 PHP創(chuàng)建一個存儲人物信息的列表,人物信息包括姓名、年齡和性別,向其中添加三個樣本。然后按列表中的男性名字的字母序排出一個列表,如果不使用數(shù)據(jù)庫會有額外加分。”每個應(yīng)聘者只有一張紙,一支筆,和無限制的答題時間。但是在這六個月里,我還從沒看過有人能手寫代碼解決這些問題。
我們通過所有的招聘網(wǎng)站、報紙、各地社區(qū)和職業(yè)介紹所來尋找應(yīng)聘者,結(jié)果卻是無一成功?,F(xiàn)在我們只需要三個人,但是在不久的將來空缺將更多。
這就像塞浦路斯 (地中海東部一島國,人口約82萬) 上的人力資源狀況一樣,需求大于供給,但是仍然無濟于事。所以我也希望你們了解我的感受。
想討論塞浦路斯這個在科技領(lǐng)域里又小又不注目的國家,你們還是得等一等吧。去年我去了希臘博主露營會,今年我又去了阿姆斯特丹的下一代網(wǎng)絡(luò)大會。在這兩個大會上,我和來自歐洲和美國的朋友們都聊過。我也訪問過各地的社區(qū)和招聘網(wǎng)站。我的感受是,這不僅僅是和塞浦路斯所面臨的問題一樣。當(dāng)然,因為其地理原因和科技水平地位,塞浦路斯的情況確實是比其他地區(qū)要嚴(yán)重一些。
現(xiàn)在,我仍然在花費大量的時間來尋找 PHP 開發(fā)者,但是同時我也在思考這個問題的根源。PHP 看起來是種很流行的語言,但是為會在尋找一個好的 PHP 開發(fā)者時會遇到這樣的問題呢?我得出這樣一種理論,也許稱其為一系列的假設(shè)和推測比較好。
PHP 是丑陋的語言
我本人認(rèn)識一些優(yōu)秀的開發(fā)者,我也讀過更多優(yōu)秀開發(fā)者的博客文章。盡管他們常常使用 PHP ,有些還把 PHP作為日常開發(fā)基礎(chǔ)語言,但是我卻從來不記得他們其中有任何人說過喜歡 PHP 語言。如果在新項目時有開發(fā)語言的選擇的可能,他們會選擇Java,C,Python,Perl,Ruby on Rails,Haskell等等,但就是不會選擇 PHP 。PHP有它的優(yōu)勢,但是卻不是一種漂亮和方便的開發(fā)語言。
PHP 是面向新手的語言
PHP 之所以如此流行,原因之一就是它是面向新手的語言,人們可以不需要任何編程基礎(chǔ)就開始編寫 PHP 應(yīng)用程序。 大多數(shù)應(yīng)用提供商會提供PHP 開發(fā)程序給你,而這些程序每個月的激活費不過是少之又少。你可以在任何文本編輯器里寫 PHP 程序,所以你也不需要高性能的機器或是昂貴的IDE 。HPH.net開發(fā)網(wǎng)站上有所有你所需要的開發(fā)文檔和實例,所以你也不必在學(xué)校苦學(xué),更不必和開發(fā)者網(wǎng)站簽訂使用協(xié)議。對編程新手來說,所有這些都是讓 PHP吸引力十足的原因。
PHP 回避了某些問題
大多數(shù)我認(rèn)識的優(yōu)秀程序都有一定的 PHP 水平,而那些差勁的程序也學(xué)習(xí)過一些 PHP。但是對于優(yōu)秀程序員來說,PHP既不是他們的所在領(lǐng)域的第一位語言,也不是他們的發(fā)展方向。而我所知道的大部分差勁程序員,卻只了解 PHP 這一種語言,而且他們并不精通PHP。所以,對于優(yōu)秀程序員來說,學(xué)習(xí)和使用 PHP 不過是一時需求;而對于那些差勁者來說,使用 PHP 卻是永久的習(xí)慣。
因為次要原因流行的 PHP
有很原因促成了 PHP 的流行:免費,開源,易于上手,等等。大多數(shù)應(yīng)用提供商都提供可用的 PHP 開發(fā)包,而很多程序里就已經(jīng)預(yù)置了 PHP。而 PHP 本身最大的特點,比如執(zhí)行速率,資源要求,開發(fā)速度等等,卻和其他很多語言沒有多大差別。PHP不過是因為一些次要原因而流行起來罷了。
PHP 已經(jīng)過時
PHP 起源于 Perl 中過時的 web 開發(fā)庫,它已經(jīng)發(fā)展和擴展成熟甚至過時,那些用 PHP 編寫的項目也是如此。如果說以前大部分PHP 項目做的是的最簡單的事情,比如連接注冊表單,訪問者計算和一些模板,那么,現(xiàn)在這些 PHP項目的處理能力已經(jīng)在用戶管理,金融操作,高實用性和平衡配置等需求上到達了瓶頸。
沖突
現(xiàn)在來說說 PHP 所面臨的兩難境地。PHP 應(yīng)用的復(fù)雜程度越來越高,而 PHP卻因為不夠漂亮而吸引和保留不了優(yōu)秀的程序員。結(jié)果呢?越來越多的應(yīng)用是那些不夠水平的開發(fā)者寫的,于是,PHP也越來越難找到合格的開發(fā)者。(你自己的 PHP 項目也變得越來越復(fù)雜。)
問題?
我們怎樣才能吸引優(yōu)秀的開發(fā)者來做 PHP 開發(fā)?最大的原因就是不能找到合格的開發(fā)者,這個問題也困擾其他一些開發(fā)語言。其他的開發(fā)語言能解決這個問題嗎?這個問題真的有解決之道嗎?
出路
和別人一樣,我也沒有解決方法。但是,我卻看好服務(wù)應(yīng)用提供商,比如 Amazon 和 Google 。他們可能會在幾個月甚至幾年后才過時,但是到時又會有更多的服務(wù)商加入進來 (Yahoo,微軟,或 IBM ?) 。
我認(rèn)為提供應(yīng)用服務(wù)的方式應(yīng)該是這樣的。首先,他們應(yīng)該把程序員類為兩類。第一類是新手程序員,他們既不知道也沒有多少資源可以調(diào)配,他們要通過服務(wù)商的提供來使用服務(wù),數(shù)據(jù)庫,函數(shù)庫和編程界面。(當(dāng)然,優(yōu)秀程序員也可以使用這些,但是他們另有選擇,而不像新手一樣。)提供的應(yīng)用服務(wù)應(yīng)該會方便地解決他們所不了解的東西,并且可以隨時隨時幫助他們。特別是像 PHP,已經(jīng)這樣做了數(shù)年了。而優(yōu)秀程序員大多數(shù)都會參與到核心項目和專項開發(fā)中,他們則會需要更多的知識和經(jīng)驗。