|
我收到了很多年輕開發(fā)人員寫給我的郵件,希望可以提升自己的編程能力。我肯定不是第一個(gè)討論這個(gè)話題的人,所以我不確定還可以說出什么新意。然而,這里我認(rèn)為還是非常值得列出我認(rèn)為很重要的幾點(diǎn)吧。
- 要跟其他開發(fā)者一起工作。我們正處在科技史上的黃金時(shí)期,這是第一次,身處何地,雇主是誰變得不那么重要。只要你的網(wǎng)絡(luò)帶寬足夠,你就可以與身處地球任何位置的另一位開發(fā)者搭檔共同編寫代碼。越來越多我認(rèn)識(shí)的資深開發(fā)者都在貢獻(xiàn)自己的時(shí)間分享這樣的知識(shí)。我朋友Evan Light有開放辦公時(shí)間,而且還在開發(fā)一個(gè)網(wǎng)站幫助 Rubyists 搭檔。我也這樣做了好一陣了。想要研究FLOSS代碼?發(fā)郵件給我,我們會(huì)把事情安排好。
編注:Rubyist 是指那些對(duì)Ruby的關(guān)心程度超過常人的人。
編注:開放辦公室時(shí)間是美國(guó)大學(xué)的傳統(tǒng),作法是學(xué)校每周開放辦公室數(shù)小時(shí),學(xué)生不需事先預(yù)約就能和老師面談。
編注:Free/Libre/Open Source Software 免費(fèi)/自由/開源軟件。
- 閱讀經(jīng)典的書籍。如《代碼大全》、《程序員修煉之道》、《程序設(shè)計(jì)實(shí)踐》、《設(shè)計(jì)模式》等。
- 要讀 WikiWiki (有時(shí)又叫做 WardsWiki)。這一點(diǎn)非常重要。有時(shí)我覺得,在我的學(xué)習(xí)遇到瓶頸時(shí),我就是通過瀏覽WikiWiki 而得以學(xué)到所有我真正需要的東西的。
- 要讀一讀別人編的代碼。為GitHub 喝彩!如果你想以編撰得更好的作品為開始而你又對(duì) Ruby、有所了解,那么就試一試解決Ruby Quiz上的問題。(關(guān)于這個(gè)話題,Alan Skorkin 寫過一篇很全面的文章:《閱讀優(yōu)秀代碼是提高開發(fā)人員修為的一種捷徑》。)
- 加入本地用戶組。如果沒有這樣的群,那就創(chuàng)建一個(gè),然后開始交流。我不在意你是一個(gè)多么差勁的菜鳥。要想使你全面了解一個(gè)問題,再?zèng)]有比這更好的方法了。
- 開一個(gè)博客。不要擔(dān)心自己會(huì)成為異類。一些最有用的博客其實(shí)主要記錄了一個(gè)程序員的經(jīng)驗(yàn)和錯(cuò)誤以及他們是如何克服困難。反思是學(xué)習(xí)的最重要的一部分,而寫作則會(huì)幫助你反思。并且,在你思考之前,你又會(huì)從其他程序員那得到反饋。
- 我相信你已經(jīng)聽說過這一點(diǎn)了:為一個(gè)開源項(xiàng)目提交補(bǔ)丁。
- 用擲硬幣的方式來作決定。正面朝上就選擇 Vim,背面朝上就選Emacs。開始學(xué)習(xí)容易上手的編輯器。這兩種中的任何一種都會(huì)在你剩余的編程生涯中一直與你同在。強(qiáng)大、靈活的工具能使優(yōu)秀程序員更加優(yōu)秀。(編注:看來國(guó)外很多程序員都在用Vim或Emacs,Akash Manohar 在《寫給即將入行的程序員的一封信》這篇文章中,也是推薦這些工具。)
- 學(xué)習(xí)多種編程語(yǔ)言。但首先你得學(xué)好一種編程語(yǔ)言。你需要一種可以使你得到靈感并且快速掌握的在一天內(nèi)迅速地寫出第一個(gè)版本的編程語(yǔ)言,從而不用花費(fèi)大量的時(shí)間去學(xué)習(xí)你會(huì)很容易忘記的語(yǔ)言細(xì)節(jié)。然而,一旦你已經(jīng)掌握了這門語(yǔ)言,你就要去學(xué)習(xí)新的語(yǔ)言,來挑戰(zhàn)所有你從之前所學(xué)習(xí)的語(yǔ)言中學(xué)到的假設(shè)。要選擇風(fēng)格完全不同的編程語(yǔ)言。我所看過的一本書《七周掌握七門語(yǔ)言》 中就對(duì)編程思維模型進(jìn)行了全面、廣泛的概括。
- 為你所使用的編程語(yǔ)言和平臺(tái)建立郵件列表。人們有時(shí)會(huì)忘記在博客、Hacker News和推特以外還有很多討論是非常有益的。跟其它場(chǎng)合比起來郵件列表通常是文明而有用的工具。
- StackOverflow 是你的良師益友。
- 不要花費(fèi)太多的時(shí)間去為某物找尋最好的工具。我過去常常會(huì)花費(fèi)好幾天或幾個(gè)星期,去試著為我即將開始的項(xiàng)目尋找最好的框架,以致我的工作進(jìn)度停滯不前。不要掉進(jìn)這個(gè)陷阱里。當(dāng)你已經(jīng)是個(gè)相對(duì)有經(jīng)驗(yàn)的開發(fā)人員時(shí),選擇那些有很多人在用的語(yǔ)言和框架。在你遇到困難時(shí),知道如何繼續(xù)下去比選擇完美的工具要重要。
- 尋找練習(xí)的機(jī)會(huì)。
- 當(dāng)然,還有一點(diǎn)就是:練習(xí)、練習(xí)、練習(xí)。上班時(shí)寫代碼。在家寫代碼。練習(xí) code katas 。編程與其它技能一樣:說到底,它的本質(zhì)還是練習(xí)。
it知識(shí)庫(kù):致年輕開發(fā)人員的一封信,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。