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