請(qǐng)不要說(shuō)自己是Java程序員
幾年前 Reddit 上有個(gè)關(guān)于招聘的笑話:
面試官問(wèn):你用過(guò) Python 或者 Django 嗎? 答:我三周前去過(guò)動(dòng)物園,這個(gè)算嗎? 面試官:你被雇傭了。 一周后,這位應(yīng)聘者用 Django 給他們的產(chǎn)品寫(xiě)了一個(gè)在線論壇。 |
英文的玩笑,用中文看有點(diǎn)不太容易懂。它的意思就是一個(gè)關(guān)于 Python(蟒蛇)經(jīng)驗(yàn)只有三周前去過(guò)一次動(dòng)物園的程序員,只要他足夠的好,他也可以用一周的時(shí)間,基于 Python/Django 完成一個(gè)在線論壇。
經(jīng)常在網(wǎng)上看到各種標(biāo)題為“Java程序員”、“PHP程序員”、“C/C++程序員”的招聘帖子,但我感覺(jué)這種招聘方式,很難找到好的人才。語(yǔ)言只是一種工具,對(duì)一個(gè)聰明的程序員來(lái)說(shuō),用沒(méi)用過(guò)什么工具主要是由他原來(lái)的工作需要決定,并不能代表他全部的技能。
另外,一個(gè)軟件產(chǎn)品往往涉及很多方面的知識(shí),比如網(wǎng)絡(luò)、數(shù)據(jù)庫(kù)、Cache、編譯環(huán)境工具等。如果這些必要基礎(chǔ)知識(shí)不足,很難很好的獨(dú)立完成一個(gè)產(chǎn)品的某個(gè)部分。
另一方面,一個(gè)人的聰明程度、對(duì)新知識(shí)的好奇心、自我驅(qū)動(dòng)意識(shí)、為問(wèn)題找到***解決方案的決心,才是他能不能成為一個(gè)好程序員的關(guān)鍵。舉個(gè)例子,我在擔(dān)任 JPush CTO 的時(shí)候,有位同事本來(lái)是服務(wù)器端以 C 語(yǔ)言為主做開(kāi)發(fā)的,完全沒(méi)有過(guò) iOS 開(kāi)發(fā)經(jīng)驗(yàn),但他表現(xiàn)出對(duì) iOS 開(kāi)發(fā)很有興趣,并且在做服務(wù)器端開(kāi)發(fā)時(shí),表現(xiàn)出良好的學(xué)習(xí)能力,后來(lái)我把他調(diào)到 iOS 組,負(fù)責(zé) iOS SDK 和 APNs 相關(guān)的工作,結(jié)果只花了幾個(gè)星期,iOS SDK 的穩(wěn)定性大幅提升,解決了多個(gè)致命問(wèn)題。
我經(jīng)常在團(tuán)隊(duì)里強(qiáng)調(diào),不要把自己定位為某種語(yǔ)言的程序員,說(shuō)自己是 Java 程序員,C 程序員,Python 程序員等等。一方面會(huì)限制自己的發(fā)展,一方面對(duì)團(tuán)隊(duì)整體的能力提升也不利。幾乎所有的語(yǔ)言都有它自己的適用場(chǎng)景,在合適的地方用合適的語(yǔ)言,才能極大的提升生產(chǎn)效率。
正確的做法是,首先要有良好的基礎(chǔ)知識(shí),深刻的掌握2~3門語(yǔ)言,然后適用于不同場(chǎng)景的語(yǔ)言要了解概念。基礎(chǔ)知識(shí)包括各種計(jì)算機(jī)原理、數(shù)據(jù)方面的知識(shí),在學(xué)校沒(méi)認(rèn)真學(xué)的,現(xiàn)在有時(shí)間也要補(bǔ)充。語(yǔ)言方面比如掌握了 C/Java,那 C++/Python/Bash/Javascript/CSS等都可以了解下概念,至少要理解在一個(gè)完整的產(chǎn)品鏈里,它們分別適用于哪個(gè)環(huán)節(jié)。
標(biāo)題用“請(qǐng)不要說(shuō)自己是 Java 程序員”沒(méi)有貶低 Java 程序員的意思,Java 是目前被采用得最多的語(yǔ)言,主要用 Java 的程序員里,也是有大量牛人。另外,同樣的,也不要說(shuō)自己是 C 程序員、Python 程序員。
之所以用 Java 作為標(biāo)題,一是現(xiàn)在以 Java 語(yǔ)言為主的工作非常之多,另外在學(xué)校里就以學(xué)習(xí) Java 為主的人也越來(lái)越多。但我發(fā)現(xiàn),從學(xué)校就以學(xué)習(xí) Java 這種高級(jí)語(yǔ)言為主的人,很多基礎(chǔ)知識(shí)比較薄弱。高級(jí)語(yǔ)言掩蓋了太多細(xì)節(jié),提高了生產(chǎn)力,但在學(xué)習(xí)階段,卻不利于基礎(chǔ)知識(shí)累積。
軟件行業(yè)是一個(gè)非常強(qiáng)調(diào)人的價(jià)值的行業(yè),價(jià)值就體現(xiàn)在有效的推動(dòng)產(chǎn)品前進(jìn),而語(yǔ)言只是實(shí)現(xiàn)這個(gè)價(jià)值的工具。
原文鏈接:http://zhang.hu/hire-a-smart-developer/