今天上午又去招聘了,,加上前面一段時間的招聘經(jīng)驗,有些話不吐不快,。
我們希望找到能干活的人,,就是能編程序的人,但是我感覺現(xiàn)在剛畢業(yè)的人里面,,包括名校的,,能干活的人比例非常的低,大概不超過百分之一,。
很多人都說,,沒有參加過實(shí)際的項目,沒有經(jīng)驗,,希望能夠在工作過程中學(xué)習(xí)等等,,開始的時候我也這樣認(rèn)為,隨著面試的人的增多,,手下新人的增多,,我的看法逐漸變了。
不談個人主觀能動性方面的種種問題,,我想談?wù)勎倚哪慨?dāng)中的科班出身編程序選手的及格線,。
如果你希望編程序為生的話,那么,,大學(xué)才是你最重要的經(jīng)驗積累地點(diǎn),,相反,,工作單位能夠積累的東西很少,或者說絕對是第二位的,。
大學(xué)里面,,最重要的課程有兩門,一門是編譯原理,,一門是數(shù)據(jù)結(jié)構(gòu),,這兩門課的課程都不重要,重要的是課程設(shè)計,,也就是老師讓你上機(jī)做的題目,,就我這段時間面試的上百人來說,我認(rèn)為其中的九十九個,,這兩門課的課程設(shè)計要么是直接復(fù)制別人的,,要么是蒙混過關(guān)的[只碰到一個真刀真槍作過的],其實(shí),,這兩門課是你大學(xué)里所有學(xué)習(xí)內(nèi)容當(dāng)中對編程序的能力進(jìn)行訓(xùn)練的最根本內(nèi)容,,也是你在社會上永遠(yuǎn)碰不到的學(xué)習(xí)機(jī)會,任何,,不論多貴的培訓(xùn)機(jī)構(gòu),,也不可能給你提供這兩門課的訓(xùn)練深度,我見過太多的畢業(yè)之后又花一兩萬塊參加各種形式的培訓(xùn)機(jī)構(gòu)培訓(xùn)一年的選手了,,你學(xué)會一萬種框架的配置方法,也不如你大學(xué)的時候把這兩門課上好有意義,。
編譯原理的課程設(shè)計,,一般來說要求做一個詞法分析器或者語法分析器,最屁要你做一個數(shù)學(xué)公式的逆波蘭式解析,,我個人看法詞法分析器或者語法分析器都可以,,單作逆波蘭式,則最好能夠做到支持各種類型的運(yùn)算的地步,,比如邏輯運(yùn)算等等,,這門課的課程設(shè)計如果能夠獨(dú)立完成,可以在你的大腦里面創(chuàng)建一個整體化的計算機(jī)思考方式,,最重要的是,,這個過程能夠讓你學(xué)會面對一個復(fù)雜問題的時候,如何通過各種計算機(jī)語言來解決問題,,,、、,、,,好處不再列舉,,其實(shí)你畢業(yè)之后參加的任何培訓(xùn),其算法復(fù)雜程度都不可能和這門課程相比,。
數(shù)據(jù)結(jié)構(gòu)的課程設(shè)計,,關(guān)鍵點(diǎn)在于兩個,一個是數(shù)據(jù)結(jié)構(gòu)和算法本身,,這里需要理解和學(xué)習(xí)的主要內(nèi)容是循環(huán)和遞歸等等,,其實(shí)如果你上面一個做得好,這些都不是太大問題了,,學(xué)習(xí)一下各種數(shù)據(jù)結(jié)構(gòu)的應(yīng)用還有些意義;第二個最重要的訓(xùn)練目的,,就是如何在計算機(jī)當(dāng)中表達(dá)問題的問題,很多人跟我說,,我的課程設(shè)計是二叉樹排序,,輸入就是我自己輸進(jìn)去一堆數(shù)字,輸出就是把這些數(shù)字排好了再輸出到屏幕上,、,、、faint,,暈倒,,講一個漢諾塔的例子吧:
漢諾塔本身的算法只有二十幾行,不太好理解,,但是也不難理解,,那么,如果希望做一個東西,,把漢諾塔表達(dá)一下,,應(yīng)該考慮什么東西呢?
首先,需要考慮清楚幾個塔,,個個盤子,,應(yīng)該用什么表達(dá),用什么數(shù)據(jù)結(jié)構(gòu)表達(dá)?這個是一個關(guān)鍵問題,,需要能夠把塔和盤子和數(shù)組以及數(shù)組里面的元素對應(yīng)起來思考問題,,不要看這一點(diǎn)簡單,實(shí)際上太多人根本就沒有辦法在大腦里面完成這個轉(zhuǎn)換,。
其次,,要考慮清楚其中有哪些元素可能發(fā)生變化,盤子的數(shù)目是最簡單的變化元素了,,有沒有其它的了呢?
有,,移動的速度,如果你移動得太快,,那么誰也看不清楚,,你等于什么也沒做,、、那么,,至少兩個元素要可變,,一個是移動速度,一個是盤子數(shù)目,。
好,,輪到表達(dá)方式了,你要是牛的話,,就畫成棍子上面穿著有洞的盤子,,不行的話就豎線上面穿橫線,移動的過程,,牛的話做成動畫??不行的話就演示每個步驟地結(jié)果既可,。
好,該怎么畫出來呢,,這個時候你就要弄明白如何在屏幕上劃線,,這個簡單,重要的是如何擦掉一條線,,還不能把棍子的那個點(diǎn)擦掉,,這就有點(diǎn)問題了。
好了,,上面問題都解決完畢之后,,用什么語言編程序就很次要了,c也好,,pascal,java,,任何語言,一個帶兩個參數(shù)的動畫演示漢諾塔的東東就出世了,、、,、[我花了一個半小時]
數(shù)據(jù)結(jié)構(gòu)的學(xué)習(xí)過程中,,如果能夠在四五個題目上面做到上面的深度,相信你絕對受歡迎,。
以上兩個課程設(shè)計,,如果都能夠獨(dú)立完成,一般來說畢業(yè)后兩三年內(nèi)收入必然超過五千,,如果在北京上海,,應(yīng)該可以肯定超過一萬。