前段時(shí)間因為實(shí)習生計劃花了很多時(shí)間做了實(shí)習生招聘的工作,產(chǎn)生的一些想法,寫(xiě)在這里。 這次招聘過(guò)程中,我發(fā)現我們在校的學(xué)生有下面的這些特點(diǎn): 1)NB的項目。當說(shuō)到自己做過(guò)的項目時(shí), 我發(fā)現他們做的事都是很NB。要么是研究Linux的底層內核,要么是圖像識別處理,要么是推薦算法,要么做高性能計算,要么做數據挖掘,要么是移動(dòng)方面的協(xié)議,還有一些很高深的課題我聽(tīng)不太懂的項目。這讓我想起當年我在學(xué)校里的實(shí)習,對比起我用Java Applet 和 HTML做操作系統的教學(xué)課件,或是在公司里用Delphi/PowerBuilder做的那些MIS系統。讓我覺(jué)得有些汗顏。 2)OK的解決問(wèn)題能力。當問(wèn)到算法題時(shí),我發(fā)現他們的問(wèn)題解決能力還OK。我一般問(wèn)1到2個(gè)中低難度的算法題和1個(gè)基本的面向對象設計的題,都不難。我相信只要在學(xué)校里好好學(xué)習的人都應該答得出來(lái)。無(wú)非就是一些基本的算法和基本數據結構操作的問(wèn)題,和比較基礎的面向對象設計的題,說(shuō)白了就是作業(yè)題?上У氖,只有5%不到的同學(xué)能夠在不給提示的情況下答出來(lái),70%的人可以在給一定的提示下答出來(lái),15%左右的同學(xué)需要提示到幾乎給出答案才能答出來(lái),還有10%的同學(xué)怎么給提示都答不出來(lái)。 3)WTF的編碼能力。老實(shí)說(shuō),對于解算法題,我還是比較可以接受的,因為80%左右的同學(xué)在給予提示后都能描述出解題的算法,于是,我讓他們把這個(gè)算法用他們最熟悉的語(yǔ)言寫(xiě)出來(lái)。但結果讓我出乎意料,一段在解法很清楚的情況下只需要不到30行代碼的小算法題,只有一個(gè)人能在10分鐘幾寫(xiě)完,其它的人基本所有的需要30分鐘左右(甚至40分鐘),有2、3個(gè)人居然寫(xiě)不出來(lái)。有一個(gè)比較極端的case是——有個(gè)同學(xué)花了十分鐘都寫(xiě)不出從一個(gè)整型數組中找到最小的正數的代碼。這個(gè)事讓我覺(jué)得很驚訝,難道大家在做項目的時(shí)候不編程嗎? 對于這種情況,我想給大家以下后一些建議: 我感到我們在校的學(xué)生正如“為什么中國的網(wǎng)頁(yè)這么爛”中所說(shuō)的——他們習慣于獲取大量的知識,而從不對這些知識進(jìn)行思考和總結。問(wèn)題不是我們知道多少東西,問(wèn)題是我們在獲取這些知識的時(shí)候會(huì )不會(huì )去思考這些知識后的東西?比如:為什么會(huì )有這么多經(jīng)典的數據結構,數組,鏈表,樹(shù),哈希表,圖這些數據結構主要用來(lái)解決什么樣的問(wèn)題,他們的優(yōu)勢和劣勢是什么?沒(méi)有思考過(guò),就不算真正的懂,沒(méi)有思考過(guò),你將無(wú)法應對萬(wàn)變的問(wèn)題,沒(méi)有思考過(guò),你將成為書(shū)呆子。 多多實(shí)踐而不是研究。編程不是在實(shí)驗室做科研搞理論啊,計算機這本就是一個(gè)實(shí)踐性很強的的學(xué)科啊,這不是數學(xué),這需要你多多的實(shí)踐啊。我們不要真以為讀的是——計算機科學(xué)(Computer Science )就是搞理論的了,這里面需要很多很多的Engineering的工作。(我實(shí)在是很難想像,雖然有這么多人寫(xiě)一般難度的程序,居然會(huì )是那么痛苦的事) 我在我的新浪微博(@左耳朵耗子)里說(shuō)的,我們不要以為做過(guò)項目,會(huì )寫(xiě)程序,我們就是程序員了。如果你只是在按部就班地寫(xiě)代碼,你就是Coder,江湖叫“碼農”,不要把自己當成“碼農”,我們一定要對自己的代碼,自己的設計不停地反思和總結,并精益求精,寫(xiě)程序本來(lái)就是一件有價(jià)值的事,這就像寫(xiě)篇作文人人都會(huì )寫(xiě),但并不是人人都能把文章寫(xiě)好。編程和寫(xiě)作都是一樣的,這都是在搞創(chuàng )作啊。想做“碼農”還是想做“程序員”?自己的決定。 我們的教育的確很“廢柴”,但這不是我們成為“廢柴”的原因。如果我們的學(xué)習還停留在“別人給我什么我就學(xué)什么”的被動(dòng)學(xué)習階段,那么你真的不懂怎么是學(xué)習。雖然,我們的學(xué)校里并沒(méi)有教你什么是“Version Control”,什么是“Coding Style”,什么是“Refactory”,什么是“Code Review”,什么是“Unit Test”,也沒(méi)有告訴你一些經(jīng)典的設計的和架構,等等,等等,但是這是什么年代了?這個(gè)時(shí)代不是像我上學(xué)那時(shí)——學(xué)校機房里上機用的電腦連內存和硬盤(pán)都沒(méi)有,用5寸的低密軟盤(pán)面對綠色顯示器的286時(shí)代了。我們身邊有很多很多優(yōu)秀的人,網(wǎng)上有很多優(yōu)秀的文章,書(shū)店里也有很多不錯的書(shū),而且我們的軟件開(kāi)發(fā)日趨成熟,如果我們還學(xué)不好的話(huà),那么我們就是在犯罪! 最后,和大家說(shuō)一下公司的實(shí)習生招聘。這個(gè)事情其實(shí)是畢業(yè)生招聘的一個(gè)組成部分,也就是說(shuō),因為我國教育的問(wèn)題,再加上學(xué)生自己的問(wèn)題,導致畢業(yè)生量多質(zhì)次的情況很?chē)乐,對于公司,其很難從學(xué)校招到一個(gè)比較不錯的畢業(yè)生,這種情況已經(jīng)不是新問(wèn)題了,所以,也有很多公司都不招剛畢業(yè)的學(xué)生。因此,通過(guò)實(shí)習機會(huì )了解并招聘畢業(yè)生成了很多公司的畢業(yè)生招聘的手段。所以,在這里想告訴在校的同學(xué)們,千萬(wàn)不要以為實(shí)習計劃就是字面上的實(shí)習。其實(shí),這和正式的招聘沒(méi)有什么差別,同樣也要看你的能力的。 作者:陳皓 |