提高編程技巧的十大方法
1.學(xué)習(xí)一門新的編程語言(Learn a new programming language)
學(xué)習(xí)一門新的編程語言將有助于你開拓新的思維方式,特別是當(dāng)你使用不熟悉的語言時(shí),你將學(xué)習(xí)到很多種思維方法應(yīng)用到語言中。而所學(xué)習(xí)到的新思維方式,你可以運(yùn)用在你所熟知的語言中。甚至有時(shí)你會使用新學(xué)的語言進(jìn)行你的重要項(xiàng)目。
2.閱讀好的且具有挑戰(zhàn)性的編程書籍(Read a good, challenging programming book)
從書中你將學(xué)到很多,雖然實(shí)踐很重要,但通過閱讀好的且具有挑戰(zhàn)性編程書籍是你改變思維方式重要的一步。這種具有挑戰(zhàn)性的書籍包括The Art of Computer Programming、Structure and Interpretation of Computer Programs (SICP)、A Discipline of Programming or the famous dragon book。
當(dāng)然,你可以選擇一些難度較低的書籍,但要避免選擇那些“傻瓜”書籍,即稱能夠在24小時(shí)或是21天內(nèi)教會一切的書籍,從這些書中無法學(xué)習(xí)到提高編程技巧的內(nèi)容。
3.加入一個(gè)開源項(xiàng)目中( Join an open source project)
加入一個(gè)開源項(xiàng)目的優(yōu)勢是什么呢?你可以和其他人(在私人項(xiàng)目中獨(dú)自工作過)一起工作,當(dāng)遇到不熟悉的代碼時(shí),你將會去研究,學(xué)習(xí)理解一個(gè)不熟悉的代碼庫(這應(yīng)該是很有挑戰(zhàn)性的)
4.解決編程難題(Solve programming puzzles)
你總是能夠解決編程難題,在Project Euler中出現(xiàn)的數(shù)學(xué)問題,這或許就是代碼難題中最流行的網(wǎng)站。
你應(yīng)該試圖去解決代碼問題;程序員在編程過程中總是嘗試用最少的步驟來解決遇到的難題,而在這過程中,你可以學(xué)到語言的更深奧和更特殊的功能,從而你會不得不思考代碼的創(chuàng)造性。
5.計(jì)劃(Program)
在編程開始之時(shí),制定一個(gè)計(jì)劃,擬定設(shè)計(jì)框架并實(shí)現(xiàn)它。并重復(fù)該操作。通過編寫代碼是學(xué)習(xí)代碼的做好方式。
你將在錯(cuò)誤中不斷的學(xué)習(xí)、提升自己,相比于看書完成項(xiàng)目更加有激勵(lì)性同時(shí)也帶你帶來更多的樂趣。
6.閱讀學(xué)習(xí)代碼(Read and study code)
學(xué)習(xí)著名的軟件編程,如Linux kernel。學(xué)習(xí)教育的一個(gè)很好的操作系統(tǒng)是MINIX3。從中你可以學(xué)到很多新的語言用法,對軟件架構(gòu)能略知一二。雖然閱讀不熟悉的代碼比較困難,但你會受益很多。
通過閱讀可以使你了解更多的API,或者是一門編程語言。
7.閱讀一些編程網(wǎng)站( Hang out at programming sites and read blogs)
閱讀不同的編程網(wǎng)站(如論壇和StackOverflow)將有助于你通過其他程序員獲取知識。
同時(shí),你應(yīng)該閱讀大量的博客,說起軟件行業(yè)中博客寫的好當(dāng)屬Joel,(盡管他現(xiàn)在不在寫博客了,很多有價(jià)值的文章依然存在文檔里)。Coding Horror and Lambda the Ultimate。
8.書寫代碼(Write about coding)
在博客上練習(xí)書寫代碼。你也可以在不同的問答網(wǎng)站上回答問題。同時(shí)你也可以寫一些教程(DreamInCode)。在你編寫代碼時(shí),你會想著要正確編寫,為能夠解釋其中的問題和技術(shù)。編寫代碼還能夠體現(xiàn)你的編程知識,提供你英語語法,這些在編程中都是很重要的。
9.學(xué)習(xí)基礎(chǔ)的編程語言( Learn low-level programming)
學(xué)習(xí)基礎(chǔ)編程語言,它們能夠幫助你理解基層架構(gòu)。比如C語言,或是匯編語言。
學(xué)習(xí)計(jì)算機(jī)是如何執(zhí)行程序,知道操作系統(tǒng)是如何運(yùn)作的,這是程序員最基本的要求。如果你想好好了解基礎(chǔ)語言,你可以閱讀有關(guān)電腦結(jié)構(gòu),操作系統(tǒng),嵌入式系統(tǒng),驅(qū)動程序操作系統(tǒng)開發(fā)等等的書籍。
10.有不懂得不要隨便上StackOverflow,自己多想想?。―on’t rush to StackOverflow. Think?。?/strong>
代碼出錯(cuò)時(shí),你可能會急于用最少的時(shí)間去解決它。你會怎么做呢?上StackOverflow網(wǎng)站嗎?別這樣做。要認(rèn)真思考問題,拿出紙和筆,認(rèn)真想出解決方案。放松大腦保持頭腦清晰然后再重新看代碼。
如果一小時(shí)后還沒解決問題,再嘗試StackOverflow。但要記得,首先要自己思考解決問題哦。