天天看點

請不要說自己是Java程式員

幾年前 reddit 上有個關于招聘的笑話:

面試官問:你用過 python 或者 django 嗎?

答:我三周前去過動物園,這個算嗎?

面試官:你被雇傭了。

一周後,這位應聘者用 django 給他們的産品寫了一個線上論壇。

請不要說自己是Java程式員

英文的玩笑,用中文看有點不太容易懂。它的意思就是一個關于 python(蟒蛇)經驗隻有三周前去過一次動物園的程式員,隻要他足夠的好,他也可以用一周的時間,基于 python/django 完成一個線上論壇。

經常在網上看到各種标題為“java程式員”、“php程式員”、“c/c++程式員”的招聘文章,但我感覺這種招聘方式,很難找到好的人才。語言隻是一種工具,對一個聰明的程式員來說,用沒用過什麼工具主要是由他原來的工作需要決定,并不能代表他全部的技能。

另外,一個軟體産品往往涉及很多方面的知識,比如網絡、資料庫、cache、編譯環境工具等。如果這些必要基礎知識不足,很難很好的獨立完成一個産品的某個部分。

另一方面,一個人的聰明程度、對新知識的好奇心、自我驅動意識、為問題找到最佳解決方案的決心,才是他能不能成為一個好程式員的關鍵。舉個例子,我在擔任

jpush cto 的時候,有位同僚本來是伺服器端以 c 語言為主做開發的,完全沒有過 ios 開發經驗,但他表現出對 ios

開發很有興趣,并且在做伺服器端開發時,表現出良好的學習能力,後來我把他調到 ios 組,負責 ios sdk 和 apns

相關的工作,結果隻花了幾個星期,ios sdk 的穩定性大幅提升,解決了多個緻命問題。

我經常在團隊裡強調,不要把自己定位為某種語言的程式員,說自己是 java 程式員,c 程式員,python

程式員等等。一方面會限制自己的發展,一方面對團隊整體的能力提升也不利。幾乎所有的語言都有它自己的适用場景,在合适的地方用合适的語言,才能極大的提升生産效率。

正确的做法是,首先要有良好的基礎知識,深刻的掌握2~3門語言,然後适用于不同場景的語言要了解概念。基礎知識包括各種計算機原理、資料方面的知識,在學校沒認真學的,現在有時間也要補充。語言方面比如掌握了

c/java,那

c++/python/bash/javascript/css等都可以了解下概念,至少要了解在一個完整的産品鍊裡,它們分别适用于哪個環節。

标題用“請不要說自己是 java 程式員”沒有貶低 java 程式員的意思,java 是目前被采用得最多的語言,主要用 java 的程式員裡,也是有大量牛人。另外,同樣的,也不要說自己是 c 程式員、python 程式員。

之是以用 java 作為标題,一是現在以 java 語言為主的工作非常之多,另外在學校裡就以學習 java

為主的人也越來越多。但我發現,從學校就以學習 java

這種進階語言為主的人,很多基礎知識比較薄弱。進階語言掩蓋了太多細節,提高了生産力,但在學習階段,卻不利于基礎知識累積。

軟體行業是一個非常強調人的價值的行業,價值就展現在有效的推動産品前進,而語言隻是實作這個價值的工具。

作者:zhang.hu

來源:51cto