天天看點

Java 程式員的堕落

我曾在多個場合撰文說過,現在教育訓練出來的企業java開發兵團隻知道使用某種架構,但完全不知道這些架構的底層原理。今天早上,在依次對三個職位的應聘者面試中,我又再次見到了這種情形。

我們的顧問公司收到了一個客戶的招聘需求,要一個經驗豐富并通曉sql的java開發人員。我們公司在這個客戶那裡享有非常好的聲譽,于是我們從招聘代理公司要來了一批履歷,開始搜尋合适的目标。

首先,關于他們的履歷——每份履歷都有數頁,詳細的描述了在各個公司幹過的各種工作。每份履歷上都有一個技術清單,表面上看這些都是應聘者懂得的技術。下面這個清單是一個真實的履歷上記載的各種技術:

core java, j2ee, jsp, jdbc, servlets, ajax, xml, html, xslt, web services, css, javascript, sql, oracle 10g, mysql 5.0., jms,eclipse, adobe flex builder 3.x,uml, jdbc, svn, junit, vss, jira, html, dhtml, css, ajax, javascript, xml, mxml, action script, servlet, jsp, jstl, hibernate 3.x, spring 2.x, ibatis, soap, uddi, wsdl, apache axis, web logic server 8.x, apache tomcat 5.0, struts framework, mvc, ant, maven.

相當的讓人印象深刻…——對于那些從來沒有面試過java程式員的人來說。我并不想說這些應聘者在撒謊,隻是這些人跟你的談話堅持不到三分鐘就會在 80%的這些技術上露餡。他們可能聽說過或者是試過這些技術或工具,這對于他們來說已經足夠可以把它們列入履歷了。那剩餘的他們能說清楚的20%是什麼? 架構。基本上他們都會向你解釋如何配置struts或spring,甚至如何讓spring和hibernate通信。順便說一句,他們全都喜歡 hibernate,因為它能讓你省去了寫sql,而他們對sql查詢語言的知識知之甚少。

每當我看到履歷上寫滿了這些struts,springs,hibernates等東西,我就會這樣問,“假設,你不允許使用任何架構。你要從資料 庫中的客戶表和訂單表中取出資料,把它們放到web頁面上,請詳細完整的解釋一下這整個過程。”對大部分人來說,讓他們寫出一些純sql将是一種緻命請 求…

有個人在履歷上寫了jquery。我問她,“你為什麼要用jquery”…20秒鐘的停頓…“我喜歡它,它很好呀!”這就是所有我能從她那挖掘出的關于jquery的資訊。

“在企業java世界,誰會去用閉包?10%的程式員?5%?”。java中引入這些表達式隻是好玩?隻因為它很酷?是因為其它函數式語言中有它?

Java 程式員的堕落

軟體開發産業正在發生變化。它将不再需要更多的程式員。它需要的是進階匠師,能夠在軟體出問題時配置并替換相關代碼。理想情況下,你的團隊中應該有 一個java高手,他能真正了解你們應用中的代碼,不僅能夠從子產品級調整它們,并且能了解每行java代碼。這樣的人多少也該知道如何寫sql外連接配接,知 道如何糾正編譯問題,等等。

典型的企業經理都希望手下擁有更多的軟體開發人員。多管一些人是向上晉升的一種捷徑。是這麼回事。但如果你足夠聰明,你應該確定你那一堆架構程式員中至少有一個是貨真價實的。

我又收到了一份履歷,将在明天早上10點面試。這履歷看起來很眼熟。我隻看了它工作過得公司和幹的項目。上面其它的資訊都是沒用的——明天早上10點鐘他自然會現出原形。

明天的更新。現在是早上10點15。又一個面試結束了。第四個錯誤的回答是,要想把資料傳送到浏覽器,一個servlet需要把資料放到httpsession對象屬性裡。在聽了10分鐘這樣的回答後,你會認為我終止這次面試的行為很粗魯嗎?

明天的明天的更新。我給這個職位每小時的報酬上增加了5美元。偏偏這第一個面試者就扛着勝利的大旗通過了我的面試。别以為這區區5美元就能叩開栖息着有才能的程式員的奇異世界的大門!