[技術討論]程式設計師的基本技能和素質

qingrun發表於2009-06-14

最近在一家公司幫忙,因為那個公司的一個主要股東和我很談得來,他們公司是準備提供醫療相關服務的,這個股東也是阜外醫院的一個先心專家。

這裡暫時不談其他問題,僅僅從招聘的過程中看到的一些資訊和讓我深為擔憂的事情。

招聘技術人員的過程並不長,比其2002年在上海的託普招聘數量少多了,但是,我卻失望得更多,擔憂也更為加劇。

我給過來的技術人員出的一個簡單題目是:

實現100!=?

要求按照自己平時的程式碼習慣進行完成,脫離計算機,徒手編寫全部程式碼。


參加面試的人員一般都是剛畢業一年到三年間的Java開發人員。部分人員還曾經專門參加了一些培訓機構的培訓,其中有人說他們的教師就是做過多年開發的程式設計師,當時帶他們的時候就是大量的實踐(我不知道真假,姑且信以為真)。

最後發現的問題如下:

1、前後十多個技術人員只有一個人寫了註釋(這個人曾在對日外包公司工作過一年多),而且仍然缺失很多,讓我深為擔憂,中國目前這批新入行的程式設計師的程式碼質量,居然還是如此混亂,十多年了,仍然如此,教育也仍然如此。

2、在實現的程式碼中,幾乎所有的人定義的輸出結果的變數都是int型別,只有一個人使用了long型別。也就是說,只有一個人想到這個會是一個大數計算問題,雖然他也錯了,但是,至少他想到了一些。

100!=9.3326215443944152681699238856267e+157(windows計算器得到的結果)

大家可以查一下,其實int和long型別都不能支援到這個數字的計算結果。

事後分析的時候我詢問了一下應試者是否知道int型別的範圍,幾乎沒有人能回答上來,我很失望。

我記得在我畢業的時候,類似這樣的型別範圍都是隨口應答的,根本不需要思考,常規應該記住的諸如int、long、float、double等等,這是最最基本的東西。

3、很多人甚至出現嚴重錯誤,輸出結果變數的初始賦值為0,中間的計算全部都是乘,也就是結果仍然是0。也就是說,寫完的程式碼根本沒有經過大腦的反思,就直接提交給主考官來看,這樣的程式碼扔出去交給測試人員,難怪要把測試人員氣死。

諸如此類的錯誤還有很多,就不再一一列舉了。


我在2002年做的一個專案的授權系統,從一對一授權到一對多授權,最後一個版本是多對多授權,一對一授權完成後的測試也就只有三四個bug,而多對多授權做完的測試就是一次性通過,沒有任何bug被發現。

我深深地擔憂目前程式設計師的基本技能、素質和責任心,因為他們的學習和基礎都顯得如此單薄,沒有著力點。也終於理解了為什麼這些年剛畢業從事程式設計師職業工作的人員薪資下降如此厲害。


好好反思一下吧,不僅僅是這些學生和剛工作的人員,學校、培訓機構也需要同樣甚至更多的反思。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/257598/viewspace-606346/,如需轉載,請註明出處,否則將追究法律責任。

相關文章