看了Joel的《給計(jì)算機(jī)系學(xué)生的建議》這篇文章,覺(jué)得講的還是比較精辟的.Joel正好也是我剛聽(tīng)到的名字.因?yàn)樽罱槐緹衢T(mén)的圖書(shū)《Joel說(shuō)軟件》,手邊就有這本書(shū),大家的評(píng)價(jià)很高.我也正在看.
Joel對(duì)于計(jì)算機(jī)系的學(xué)生給出了七條建議:
1. 畢業(yè)前學(xué)會(huì)寫(xiě)作
2. 畢業(yè)前學(xué)會(huì)C語(yǔ)言
3. 畢業(yè)前學(xué)習(xí)微觀經(jīng)濟(jì)學(xué)
4. 不要因?yàn)槟承┓怯?jì)算機(jī)課程枯燥無(wú)趣就敬而遠(yuǎn)之
5. 學(xué)習(xí)有大量編程實(shí)踐的課程
6. 不要擔(dān)心工作都跑到印度去了
7. 好好做夏季實(shí)習(xí)
下面再截取一些Joel的經(jīng)典的解釋,每一點(diǎn)都和上面的建議對(duì)應(yīng):
1. 會(huì)寫(xiě)作就更能闡述自己的思想.軟件開(kāi)發(fā)組織中,最有權(quán)力和影響力的人是那些可以用自信,準(zhǔn)確,舒適的英語(yǔ)腳爐的人.
一個(gè)合格的程序員和一個(gè)偉大的程序員的區(qū)別不在于懂得多少中變成語(yǔ)言,而在于他們是否善于表達(dá).能夠說(shuō)服他人,就能夠獲得權(quán)力.
會(huì)寫(xiě)作的人,能夠?qū)懬逦挠脩羰謨?cè),還有代碼的注釋,用戶明白了軟件的用途,明白了他的工作價(jià)值.
最后,Joel建議學(xué)生要重視寫(xiě)作方面的課程,給自己建立一個(gè)網(wǎng)絡(luò)日志.寫(xiě)的越多,寫(xiě)地越容易;寫(xiě)地越容易,寫(xiě)地就越多,這是一個(gè)良性循環(huán).
2. C語(yǔ)言比某些”現(xiàn)代”語(yǔ)言更接近及其語(yǔ)言.不會(huì)C語(yǔ)言,你不可能使用高級(jí)語(yǔ)言寫(xiě)出高效的代碼,別人不相信你能夠?yàn)榇箜?xiàng)目設(shè)計(jì)架構(gòu).
3. 微觀經(jīng)濟(jì)學(xué)是現(xiàn)代商業(yè)的理論基礎(chǔ).理解商業(yè)基本規(guī)律的程序員對(duì)于商業(yè)界來(lái)說(shuō)是更有價(jià)值的程序員.
4. 你需要讓你的學(xué)分平均分看起來(lái)漂亮一點(diǎn),許多招聘主管就喜歡看這個(gè).有時(shí)候編程同樣是很枯燥的,每份工作都會(huì)有讓人厭煩的時(shí)候.我是不會(huì)聘請(qǐng)那些只愿意感有趣工作的人.
5. 計(jì)算機(jī)科學(xué)和軟件開(kāi)發(fā)不一樣.如果你想成為一個(gè)程序員,你可以進(jìn)計(jì)算機(jī)系,這是一個(gè)非常好的專業(yè),但是你學(xué)的不是軟件開(kāi)發(fā).如果你喜歡編程,不要為你不能理解教授諸如lambda算子或者線性代數(shù)等課程重點(diǎn)而沮喪,在這些課程里你連摸一下計(jì)算機(jī)的機(jī)會(huì)都沒(méi)有.要注重去學(xué)習(xí)一些和事件相關(guān)的課程.
6. 首先,根據(jù)眼前的商業(yè)時(shí)尚選擇事業(yè)是非常愚蠢的.
其次,即使編程的工作真的都跑到印度和中國(guó)去了,編程對(duì)于其他有趣的工作來(lái)說(shuō)都是極好的訓(xùn)練
第三,無(wú)論是在美國(guó)還是在印度,好的程序員還是非常短缺的,請(qǐng)相信我.好的程序員找工作還是非常容易的.
7. 明知的招聘者會(huì)知道:真正熱愛(ài)編程的人,初中就為當(dāng)?shù)氐难泪t(yī)寫(xiě)數(shù)據(jù)庫(kù)程序,工作暑假就在計(jì)算機(jī)夏令營(yíng)教課,為校報(bào)開(kāi)發(fā)內(nèi)容管理系統(tǒng),并在某個(gè)軟件公司做暑假實(shí)習(xí).
當(dāng)你畢業(yè)時(shí),你的建立上應(yīng)該羅列上一堆的編程實(shí)習(xí)工作.
看過(guò)Joel的建議后,感覺(jué)自己好多問(wèn)題之前也有認(rèn)識(shí),不過(guò)還是有些沒(méi)有意識(shí)到的地方.但是,自己雖然有認(rèn)識(shí)但是還是做的很不到位或者沒(méi)做,說(shuō)來(lái)慚愧呀,好多的機(jī)會(huì)沒(méi)有把握.針對(duì)Joel的七點(diǎn),我總結(jié)一下我在學(xué)校的時(shí)候是如何實(shí)踐的,做的不好的地方,請(qǐng)大學(xué)生朋友提高警惕,吸取經(jīng)驗(yàn):
1. 對(duì)于寫(xiě)作,我沒(méi)有專門(mén)得學(xué)習(xí),在學(xué)校的時(shí)候也有這方面的選修課,但當(dāng)時(shí)認(rèn)為這種課程沒(méi)有什么用處.其實(shí)在高中的時(shí)候語(yǔ)文就不好,作文也是一塌糊涂,所以,真的是錯(cuò)過(guò)了學(xué)習(xí)提高的機(jī)會(huì),一位大學(xué)還是很有時(shí)間的,我想這點(diǎn)大家都會(huì)認(rèn)同.
2. 說(shuō)起C語(yǔ)言更是慚愧,一開(kāi)始學(xué)習(xí)的是Pascal,這也是我接觸的第一門(mén)編程語(yǔ)言,其實(shí)說(shuō)實(shí)在的學(xué)完了那門(mén)課程后,除了了解了點(diǎn)語(yǔ)法之外,根本就不知道編程是怎么一回事!學(xué)校語(yǔ)言方面的課程都教的很差,老師水平平平,每門(mén)課程頂多就是教個(gè)語(yǔ)法就ok了.C語(yǔ)言在我們學(xué)校及其不重視,我覺(jué)得很重要的原因就是老師都不熟悉.C語(yǔ)言作為選修課開(kāi),記得當(dāng)時(shí)只上過(guò)不到十次的課,知識(shí)嘛也沒(méi)學(xué)會(huì).最后考試,成績(jī)非常悲慘,60分,還得感謝老師的照顧.這門(mén)課也是我大學(xué)所有成績(jī)中最最低的一門(mén)課程,其他的再差也沒(méi)低于70分的時(shí)候.現(xiàn)在想想就這水平怎么好意思在程序員里面混.
3. 當(dāng)時(shí)在學(xué)校的時(shí)候也有意識(shí):不能一心只搞技術(shù),還要有管理/經(jīng)濟(jì)方面的知識(shí).當(dāng)時(shí)只是一種很淺的意識(shí)和需求(也可以理解為一種需求),但是并不是很清楚,應(yīng)該怎么去做,什么知識(shí)需要學(xué)習(xí),需要學(xué)好.正好學(xué)校有機(jī)會(huì)修雙學(xué)位,我馬上就選擇了修工商管理專業(yè),一方面原因是因?yàn)?/SPAN>:可以拿到兩個(gè)學(xué)位,另一方面原因是:我那淺薄的意識(shí).但是,真正到了上課的時(shí)候,那點(diǎn)淺薄的意識(shí)全無(wú),對(duì)什么微觀經(jīng)濟(jì)學(xué)/宏觀經(jīng)濟(jì)學(xué)/財(cái)務(wù)管理/企業(yè)管理等課程毫無(wú)興趣,最后這些課程幾乎沒(méi)有學(xué)到知識(shí),只是了解了一些名次和概念,浪費(fèi)了好多的時(shí)間.換來(lái)了一張毫無(wú)分量的學(xué)位證書(shū),現(xiàn)在想想證書(shū)是次要的,重要的是能力和學(xué)到有用的知識(shí),又一次好的機(jī)會(huì)錯(cuò)過(guò)了.
4. 對(duì)于這一點(diǎn),我更想說(shuō)的就是計(jì)算機(jī)方面一些基礎(chǔ)課程的學(xué)習(xí).當(dāng)時(shí)老師總是一個(gè)勁得講數(shù)據(jù)結(jié)構(gòu)很重要,很重要,但是對(duì)于我們對(duì)于計(jì)算機(jī)編程還沒(méi)有任何感性認(rèn)識(shí)的人來(lái)說(shuō)理解數(shù)據(jù)結(jié)構(gòu)的重要,那簡(jiǎn)直是不可能的.之所以認(rèn)為它重要是因?yàn)橛?jì)算機(jī)研究生要考這門(mén)課程,老師跟我們也是這樣說(shuō)的.之后又是一些很基礎(chǔ)很重要的課程,比如:操作系統(tǒng)/編譯原理/計(jì)算機(jī)組成/數(shù)據(jù)庫(kù)/網(wǎng)絡(luò),老師說(shuō)很重要,但是我們依然重視不起來(lái),因?yàn)檫@幾門(mén)課都是非常抽象/理論的,學(xué)起來(lái)味同嚼蠟,巨枯燥.所以,同樣被我一一混過(guò)了!
還有一點(diǎn)在大學(xué)里面學(xué)習(xí)計(jì)算機(jī),一定要想想自己是不是對(duì)計(jì)算機(jī)這個(gè)專業(yè)很有興趣,搞軟件開(kāi)發(fā)興趣和好奇心非常重要.如果感覺(jué)沒(méi)有興趣,那么趕緊想別的出路,省得到時(shí)候后悔.如果非常感興趣,那我只能祝賀了!
5. 學(xué)習(xí)軟件開(kāi)發(fā)一定要實(shí)踐-上機(jī)!這方面我一直比較積極的.不過(guò)這里也得感謝我姨,無(wú)償?shù)脼槲姨峁┝艘慌_(tái)嶄新的電腦,所以一開(kāi)始我就有了比較好的條件.其實(shí),對(duì)于現(xiàn)在的大部分計(jì)算機(jī)系的學(xué)生來(lái)說(shuō)條件真的已經(jīng)是非常優(yōu)越了,不論是學(xué)校和個(gè)人都有豐富的資源,宿舍里有寬帶網(wǎng)絡(luò),機(jī)房都是嶄新的機(jī)器,而且記得到了大三,我們班30個(gè)人,已經(jīng)擁有了20多臺(tái)電腦,男生僅有三個(gè)人沒(méi)有.但是事實(shí)卻非常令人遺憾,大部分人的電腦都成了電視機(jī)/VCD/DVD,聊天工具,外加游戲機(jī).所以后果也是非常殘酷的,我們班到現(xiàn)在為止也就有四五個(gè)人還從事著軟件開(kāi)發(fā)的工作.其實(shí)不是有些同學(xué)不想搞軟件開(kāi)發(fā),而是真的是沒(méi)學(xué)到多少知識(shí).
6. 在學(xué)校里面也是聽(tīng)到了好多關(guān)于畢業(yè)的學(xué)生太多,就業(yè)難之類(lèi)的報(bào)道.但是我當(dāng)時(shí)沒(méi)什么感覺(jué),因?yàn)槲以诖髮W(xué)最后的兩年里面還是積累了一點(diǎn)實(shí)踐的經(jīng)驗(yàn).我是比較順利在CSDN論壇上通過(guò)一篇招聘的帖子找到了工作,一個(gè)是第一家公司當(dāng)時(shí)比較缺人,加之我美工和PHP都會(huì)一些,也有項(xiàng)目經(jīng)驗(yàn),所以比較順利的就找到了第一份工作,然后我就只身一人從山東來(lái)到上海,我也參加了幾場(chǎng)招聘會(huì),主要是看看有沒(méi)有更好的機(jī)會(huì),還是有幾個(gè)公司有了意向.所以我的感覺(jué)也是這樣的,工作并不難找,學(xué)歷學(xué)位不是最重要的,關(guān)鍵是看你的能力和有沒(méi)有相關(guān)的工作經(jīng)驗(yàn).
7. 找機(jī)會(huì)實(shí)習(xí).這方面要從我參加我們學(xué)校的網(wǎng)絡(luò)教育中心開(kāi)始.我從大一下學(xué)期就開(kāi)始學(xué)習(xí)網(wǎng)頁(yè)制作,然后就學(xué)習(xí)了一些PHP開(kāi)發(fā)web程序的知識(shí).大二的下學(xué)期有機(jī)會(huì)加入到了網(wǎng)絡(luò)教育中心,我加入后主要也就是4個(gè)人,我們負(fù)責(zé)開(kāi)發(fā)和維護(hù)學(xué)校的學(xué)生信息管理系統(tǒng).在那里我還是學(xué)到一些軟件開(kāi)發(fā)實(shí)踐方面的知識(shí),后來(lái)我到了大四之后,我們成立了藍(lán)天工作室,我們的隊(duì)伍也壯大的起來(lái),最多的時(shí)候達(dá)到了十多個(gè)人,但是我們做的項(xiàng)目卻沒(méi)有什么太多的進(jìn)展,主要還是繼續(xù)開(kāi)發(fā)和維護(hù)學(xué)生信息管理系統(tǒng),本來(lái)要做一個(gè)校園的社區(qū),結(jié)果只做了一半的功能就放下了沒(méi)有完成.現(xiàn)在想想當(dāng)時(shí)的機(jī)會(huì)和資源真是浪費(fèi)了,其實(shí)可以好好組織工作室的,可以學(xué)到更多的知識(shí),拉到更多的項(xiàng)目來(lái)做,但是現(xiàn)在想想也不知道當(dāng)時(shí)都忙什么去了.大學(xué)四年軟件開(kāi)發(fā)方面的知識(shí),大部分都是從我們的這段經(jīng)歷中學(xué)到了.
之前我也有為我們學(xué)院設(shè)計(jì)主頁(yè),為別的學(xué)校的學(xué)院設(shè)計(jì)主頁(yè)的經(jīng)歷,這樣的經(jīng)歷也很好,可以認(rèn)識(shí)更多的人,還有就是有小費(fèi)的呵呵.大四上學(xué)期最后的接近兩個(gè)月的實(shí)踐,我們工作室的幾個(gè)人有機(jī)會(huì)和外面的一家軟件公司合作為地稅局開(kāi)發(fā)一套web系統(tǒng),這也是一次難得的經(jīng)歷,因?yàn)樽鲰?xiàng)目可以學(xué)到很多實(shí)踐方面的知識(shí),雖然會(huì)比較辛苦.大四的下學(xué)期我已經(jīng)開(kāi)始到公司上班了.所以,我一直還是比較重視實(shí)踐的機(jī)會(huì)的,如果在學(xué)校里面學(xué)不到東西,那就盡快走出來(lái)學(xué)習(xí).
最后,我想再針對(duì)我現(xiàn)在的情況和切身的感受,給自己,也給在校學(xué)生一點(diǎn)符合”國(guó)情”的建議:
1. 真正工作的時(shí)候表達(dá)和溝通能力是非常非常重要的,每個(gè)公司都非常重視員工的溝通能力.而據(jù)我觀察程序員由于長(zhǎng)期從事編程工作都變得非常內(nèi)向,不善于與人溝通.所以的確很容易發(fā)現(xiàn),公司里面懂技術(shù)會(huì)溝通,表達(dá)能力好的人,往往都會(huì)提升.所以,我現(xiàn)在也是要積極溝通,多看一些相關(guān)的書(shū),參加一些培訓(xùn),還有就是多跟同事朋友交流.網(wǎng)絡(luò)日志就是非常好的平臺(tái),要養(yǎng)成寫(xiě)網(wǎng)絡(luò)日志的好習(xí)慣,因?yàn)閷?xiě)網(wǎng)絡(luò)日志可以激發(fā)思考,可以總結(jié)經(jīng)驗(yàn),可以記錄知識(shí),可以鍛煉寫(xiě)作和表達(dá)能力,同時(shí)可以結(jié)交朋友.所以這么多好處就不要再猶豫了.還有一點(diǎn)就是盡量爭(zhēng)取和利用公司內(nèi)部培訓(xùn)的機(jī)會(huì),主要要求提供為別人培訓(xùn)的機(jī)會(huì),這樣既可以鍛煉自己的演講和表達(dá)能力,也能夠鞏固自己的知識(shí),樹(shù)立自己的信心和在別人心中的形象,如果你善于表達(dá),你就能更好地分享自己的知識(shí),這樣很多人就會(huì)喜歡你,人際關(guān)系也會(huì)搞得不錯(cuò).
2. 現(xiàn)在我真的能夠清楚的知道一些計(jì)算機(jī)方面的基礎(chǔ)課程的重要了.所以,我現(xiàn)在還是要把基礎(chǔ)打好首先是一些基礎(chǔ)理論方面的知識(shí)比如操作系統(tǒng)/TCP/IP協(xié)議/數(shù)據(jù)庫(kù)等.同時(shí)要重視學(xué)習(xí)面向?qū)ο?/SPAN>/UML/設(shè)計(jì)模式相關(guān)的知識(shí),還有就是軟件工程方面的知識(shí),例如:極限編程/測(cè)試驅(qū)動(dòng)開(kāi)發(fā)/RUP.同時(shí)也包括其他一些實(shí)用的技術(shù),所以作為程序員一定要不斷地充實(shí)自己.
3. 我現(xiàn)在才發(fā)現(xiàn),只有懂得商業(yè)你才能更好得理解客戶需求,你就不會(huì)對(duì)產(chǎn)品或者業(yè)務(wù)部門(mén)的需求感到莫名其妙.還有也是要多關(guān)注經(jīng)濟(jì)方面的知識(shí)和現(xiàn)象,懂得一些經(jīng)濟(jì)原理.最好對(duì)于財(cái)務(wù)知識(shí)和理財(cái)知識(shí)也要掌握.
4. 端正態(tài)度,要么不做,做就要全心全力地做,追求卓越.學(xué)計(jì)算機(jī)興趣和好奇心非常重要.興趣和好奇心是你不斷學(xué)習(xí)新技術(shù)的驅(qū)動(dòng)力.
5. 積極實(shí)踐,對(duì)于出現(xiàn)的新技術(shù)新的框架,不要只是簡(jiǎn)單看看,或者聽(tīng)別人說(shuō)好或者說(shuō)壞.自己寫(xiě)個(gè)實(shí)例試試,然后自己來(lái)判斷.別偷懶!!!!同時(shí)結(jié)合著項(xiàng)目進(jìn)行實(shí)踐,不斷嘗試,不斷思考.最近我就會(huì)看一些架構(gòu)方面的書(shū),發(fā)現(xiàn)問(wèn)題我就會(huì)在項(xiàng)目中積極調(diào)整,還有就是我在看設(shè)計(jì)模式的知識(shí)的時(shí)候我就會(huì)想我手頭的項(xiàng)目中是不是也有同樣的問(wèn)題,是不是可以用設(shè)計(jì)模式進(jìn)行優(yōu)化.
6. 軟件公司還是非常缺人的,特別缺優(yōu)秀的開(kāi)發(fā)人員,什么是優(yōu)秀的軟件開(kāi)發(fā)人員呢?我認(rèn)為無(wú)非就是包括兩方面:能力和態(tài)度.任何人做好這兩方面都會(huì)是一位非常優(yōu)秀的程序員.其中能力主要包括了:軟件開(kāi)發(fā)的技術(shù)能力,分析解決問(wèn)題的能力, 團(tuán)隊(duì)合作的能力,學(xué)習(xí)能力,溝通協(xié)調(diào)能力.態(tài)度方面主要包括了:工作態(tài)度,工作要認(rèn)真負(fù)責(zé),積極主動(dòng)地發(fā)現(xiàn)問(wèn)題解決問(wèn)題,任勞任怨的高質(zhì)量完成工作任務(wù).
7. 大學(xué)生朋友要積極尋找實(shí)習(xí)的機(jī)會(huì).軟件開(kāi)發(fā)人員把工作做到卓越,然后利用個(gè)人的空閑實(shí)踐不斷充實(shí)完善自己.養(yǎng)成好的習(xí)慣,做好計(jì)劃,嚴(yán)格執(zhí)行!
看過(guò)了Joel的文章,我馬上把感想寫(xiě)了下來(lái).因?yàn)槲乙e極改變自己,勤于總結(jié).