●同其他程序員交流,多閱讀其他人寫的程序。這些遠(yuǎn)比你看書或者上培訓(xùn)班重要
●如果你愿意的話,就選擇去讀一個(gè)計(jì)算機(jī)科學(xué)專業(yè)吧(當(dāng)然你還可以去念這個(gè)專業(yè)的研究生)。如果你能做到這點(diǎn),那么你就有機(jī)會(huì)找到一些需要計(jì)算機(jī)學(xué)位認(rèn)證的工作,也會(huì)讓你對(duì)這個(gè)行業(yè)有更深的理解。不過,如果你不是上學(xué)的料,那么你可以(當(dāng)然需要有足夠的毅力)靠自己學(xué)習(xí),或者通過工作來積累經(jīng)驗(yàn)。無論你采用哪種途徑,光依靠書本是遠(yuǎn)遠(yuǎn)不夠的。“如果說僅僅靠學(xué)習(xí)油畫和調(diào)色技術(shù)無法創(chuàng)造出頂尖的畫家的話,那么光學(xué)習(xí)計(jì)算機(jī)科學(xué)課程更不能造就頂尖的程序員。”,Eric Raymond這樣說過,他著有《新黑客字典》一書。我所聘用過的最好的程序員僅僅只有高中文憑; 他寫了很多偉大的軟件,他有他自己的新聞組,并且通過股權(quán)賺夠了錢,還開了家屬于自己的夜店。(作者說的這個(gè)人是Jamie Zawinski,他是網(wǎng)景瀏覽器(Netscape)的早期開發(fā)這者之一,也是開源項(xiàng)目Mozilla和XEmacs的主要貢獻(xiàn)者,他開了一家叫做DNA_lounge的夜店,位于舊金山的SoMa區(qū)——譯者注)
●與其他程序員一起做項(xiàng)目。在某些項(xiàng)目中要盡量做到最好,在某些項(xiàng)目中卻別做那么好。當(dāng)你是最好的時(shí)候,你的領(lǐng)導(dǎo)能力就會(huì)得到鍛煉,并激發(fā)你高瞻遠(yuǎn)矚的視野。當(dāng)你做得不好的時(shí)候,你就能知道你的領(lǐng)導(dǎo)怎么做事,以及他們不喜歡哪些事(因?yàn)轭I(lǐng)導(dǎo)總是把那些他們不愛做的雜事丟給他們認(rèn)為不得力的人去做)
●嘗試跟隨其他程序員一起做項(xiàng)目。嘗試去理解其他人所寫的代碼??纯慈绻銦o法找到代碼的作者本人的情況下,理解和修正他寫的代碼需要花費(fèi)什么樣的代價(jià)。同時(shí)也思考,如何規(guī)劃你自己的程序代碼,讓它們更容易被其他人理解和維護(hù)。
●至少學(xué)習(xí)半打編程語言。包括一種支持類抽象的語言(例如Java或者C++),一種支持函數(shù)抽象的語言(例如Lisp或者M(jìn)L),一種支持語法抽象的語言(例如Lisp),一種支持聲明式編程的語言(例如Prolog或者C++模板),一種支持協(xié)同程序的語言(例如Icon或者Scheme),一種支持平行并發(fā)編程的語言(例如Sial)
●牢記“計(jì)算機(jī)科學(xué)”中包含著“計(jì)算機(jī)”這個(gè)詞。了解計(jì)算機(jī)需要花多長(zhǎng)的時(shí)間執(zhí)行一條指令,花多長(zhǎng)時(shí)間從內(nèi)存中獲取一個(gè)字(word)(包括緩存命中和不命中兩種情況),如果連續(xù)從磁盤中獲取數(shù)據(jù),時(shí)間消耗如何?以及需要花多少時(shí)間才能再磁盤上定位一個(gè)新的位置?
●盡量參與語言的標(biāo)準(zhǔn)化過程。往大了說,你可以試著加入ANSI C++委員會(huì)這樣的專業(yè)組織,往小了講,你也可以從自己的代碼規(guī)范入手,限定代碼縮進(jìn)是需要2個(gè)空格寬還是4個(gè)空格寬。無論采用哪種方式,你都需要了解其他人對(duì)于語言的喜好,以及他們的喜好的程度,甚至你要知道他們?yōu)槭裁串a(chǎn)生這樣的喜好的原因。
●有良好的意識(shí),能盡快適應(yīng)語言標(biāo)準(zhǔn)化的成果。
要掌握上面所說的所有內(nèi)容,光靠看書學(xué)習(xí)應(yīng)該是很難做到的。當(dāng)我的第一個(gè)孩子出生的時(shí)候,我?guī)缀蹰喿x了市面上所有的《如何…》指南書籍,但是我讀完了以后還是覺得自己是個(gè)菜鳥。30個(gè)月以后,我的第二個(gè)孩子快出生時(shí),我難道還要做一個(gè)書蟲么?不!相反,我此時(shí)更依賴我的個(gè)人經(jīng)驗(yàn),這些經(jīng)驗(yàn)相比于那些上千頁的書籍,則更加有效和讓我放心。
登陸|注冊(cè)歡迎登陸本站,認(rèn)識(shí)更多朋友,獲得更多精彩內(nèi)容推薦!