給年輕程序員的幾句話(huà)
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2011/12/8 11:11:09 ] 推薦標(biāo)簽:
本文是從 Letter to a Young Developer 這篇文章翻譯而來(lái)。
我收到了不少新手的來(lái)信,他們都希望能成長(zhǎng)為一名真正的程序員。我不是第一個(gè)談?wù)撨@個(gè)話(huà)題的人,所以,我不知道應(yīng)該做哪方面的補(bǔ)充。不管怎樣,下面的是一些一直記在我心頭的、有必要讀一下的建議:
找其他開(kāi)發(fā)人員合作開(kāi)發(fā)。我們正處在科技?xì)v史上第一個(gè)絕好的時(shí)代,你幾乎不用在意在哪工作、為誰(shuí)工作。只要你有一個(gè)還過(guò)得去的網(wǎng)絡(luò),你可以和另外一個(gè)在世界任何角落里的人一起來(lái)完成某段程序。我知道,越來(lái)越多的有經(jīng)驗(yàn)的開(kāi)發(fā)人員開(kāi)始把他們的一部分時(shí)間投入到這種知識(shí)共享里。我的朋友Evan Light特地留出了時(shí)間來(lái)開(kāi)發(fā)一個(gè)幫助Ruby愛(ài)好者合作行動(dòng)的網(wǎng)站。我從事這樣的事情也有一段時(shí)間了。你想開(kāi)發(fā)一些FLOSS程序嗎?發(fā)郵件給我,我們會(huì)幫你準(zhǔn)備些東西。
閱讀經(jīng)典著作:《代碼大全(第二版)》, 《程序員修煉之道》, 《程序設(shè)計(jì)實(shí)踐》, 《設(shè)計(jì)模式》等。
閱讀WikiWiki (有時(shí)也被稱(chēng)作WardsWiki)。這一條怎么強(qiáng)調(diào)也不為過(guò)。經(jīng)常我會(huì)感覺(jué)到所有我學(xué)到的真正關(guān)于編程的知識(shí)都是在瀏覽這些網(wǎng)站的過(guò)程中慢慢的學(xué)到的。
學(xué)習(xí)別人的代碼。 GitHub萬(wàn)歲!如果你會(huì)一點(diǎn)Ruby,想從別人整理好的現(xiàn)成經(jīng)驗(yàn)入手,你可以讀一下《Best of Ruby Quiz》。
參與開(kāi)發(fā)者論壇。如果沒(méi)有這樣的網(wǎng)站,創(chuàng)建一個(gè)。討論問(wèn)題。我不在意你認(rèn)為自己是一個(gè)多么菜的菜鳥(niǎo)。沒(méi)有任何一種形式能比通過(guò)討論一個(gè)問(wèn)題來(lái)學(xué)習(xí)這個(gè)問(wèn)題更有效的方法了。
寫(xiě)博客。不要在意是否是原創(chuàng);ヂ(lián)網(wǎng)上很多非常有用的博客都是廣泛的搜集程序員的經(jīng)驗(yàn)和錯(cuò)誤,以及如何克服這些問(wèn)題的博客。反省是學(xué)習(xí)過(guò)程中重要的一件事情,寫(xiě)博客能幫助你反省。會(huì)出乎你的意料,你不久會(huì)收到你的讀者的反饋。
我相信你之前聽(tīng)說(shuō)過(guò)這一條:參與開(kāi)源項(xiàng)目,修改其中的bug或捐獻(xiàn)代碼。
丟硬幣。是頭像選擇Vim,否則選擇Emacs。學(xué)習(xí)使用這些編輯器。應(yīng)該讓這兩種編輯器伴隨你余下的編程生涯。強(qiáng)大靈活的編輯器會(huì)讓好程序員更好。
多學(xué)習(xí)幾種編程語(yǔ)言。但起初應(yīng)該先學(xué)一種語(yǔ)言。你應(yīng)學(xué)習(xí)一種重要的語(yǔ)言,它能讓你對(duì)編程語(yǔ)言有個(gè)大致的認(rèn)識(shí),讓你第愛(ài)上編程,你需要花大量的時(shí)間去學(xué)習(xí)這種語(yǔ)言中的各種知識(shí),否則你漏掉知識(shí)點(diǎn)或不久會(huì)忘記。一旦你掌握了這種語(yǔ)言,你需要學(xué)習(xí)新的語(yǔ)言來(lái)驗(yàn)證在第一種語(yǔ)言中學(xué)到的知識(shí)。盡量選擇風(fēng)格迥異的語(yǔ)言。我曾看過(guò)Seven Languages in Seven Weeks這本書(shū),它讓我認(rèn)識(shí)了各種各樣的編程模式,很好的書(shū)。
訂閱跟你使用的語(yǔ)言和平臺(tái)相關(guān)的郵件新聞。人們有時(shí)會(huì)忘了,在各種博客,Hacker News,以及Twitter里,還有一個(gè)精彩的充滿(mǎn)討論的世界。郵件列表是一個(gè)很通用、很有用的來(lái)比較各種討論觀(guān)點(diǎn)的工具。
StackOverflow是你的朋友。
不要花太多的時(shí)間去研究所謂的“好的“工具。我曾經(jīng)愚蠢的花上數(shù)天或數(shù)周去為某個(gè)項(xiàng)目找出一種”好“的框架來(lái)提高開(kāi)發(fā)效率。不要落入這種陷阱。當(dāng)你還是一個(gè)不太熟練的程序員時(shí),選一種大家都在用的語(yǔ)言和框架。重要的是當(dāng)你遇到瓶頸是你知道如何處理。之后你才可以去尋找一種完美的…
尋找實(shí)習(xí)機(jī)會(huì)。
以及基本的:練習(xí),練習(xí),練習(xí)。在班上練,在家里練。鍛煉編程基本功。編程跟其它技術(shù)一樣:終,一切歸結(jié)于練習(xí)。
相關(guān)推薦

最新發(fā)布
性能測(cè)試之測(cè)試環(huán)境搭建的方法
2020/7/21 15:39:32軟件測(cè)試是從什么時(shí)候開(kāi)始被企業(yè)所重視的呢?
2020/7/17 9:09:11Android自動(dòng)化測(cè)試框架有哪些?有什么用途?
2020/7/17 9:03:50什么樣的項(xiàng)目適合做自動(dòng)化?自動(dòng)化測(cè)試人員應(yīng)具備怎樣的能力?
2020/7/17 8:57:06幾大市面主流性能測(cè)試工具測(cè)評(píng)
2020/7/17 8:52:11RPA機(jī)器人能夠快速響應(yīng)企業(yè)需求,是怎么做到的?
2020/7/17 8:48:05Bug可以真正消滅嗎?為什么?
2020/7/17 8:43:03軟件測(cè)試基本概念是怎么來(lái)的?軟件測(cè)試生命周期的形成歷經(jīng)了什么?
2020/7/16 9:11:10