編程是一項(xiàng)聰明人玩的游戲,它既是對(duì)智力的考驗(yàn),也是對(duì)習(xí)慣的考驗(yàn)。擁有良好的編程習(xí)慣,也意味著你可以在相同或更短的時(shí)間里完成比其他人更多的任務(wù)。
W3cschool認(rèn)為至少以下7個(gè)習(xí)慣對(duì)于程序員編程生涯是大有裨益的。
1、理解編程語(yǔ)言的原理
三流的人才懂應(yīng)用,二流的人才懂開(kāi)發(fā),一流的人才懂原理。各種語(yǔ)言之間存在著相似的地方,掌握語(yǔ)言的原理是必不可少的。最重要的,讓語(yǔ)言去適應(yīng)項(xiàng)目,反之亦然。
2、向優(yōu)秀程序員學(xué)習(xí)
你有一個(gè)蘋(píng)果,我也有一個(gè)蘋(píng)果,我們交換蘋(píng)果,你我還是有一個(gè)蘋(píng)果;你有一種思想,我也有一種思想,我們交換思想,你我就有了兩種思想。
與優(yōu)秀的程序員為伍,你將吸收的最實(shí)用的經(jīng)驗(yàn),這遠(yuǎn)比你一個(gè)人自學(xué)、死磕編程來(lái)的快一些。有一句話說(shuō)到好,與臭棋佬下棋,棋會(huì)越下越臭。不可否認(rèn)這樣一個(gè)事實(shí):和什么樣的人在一起,就有什么樣的格局,就會(huì)有什么樣的人生。
3、了解數(shù)據(jù)結(jié)構(gòu)和算法
如果你要成為一個(gè)高效的開(kāi)發(fā)者,就必須學(xué)會(huì)快速排序、學(xué)會(huì)辨認(rèn)O(n2)程序、學(xué)會(huì)編寫(xiě)遞歸函數(shù)。
學(xué)會(huì)多種語(yǔ)言,你便會(huì)更清楚不同的框架是相同問(wèn)題的是如何解決的。盡可能去了解底層命令(plumbing),以便能夠作出明智的決定(Web框架是怎么存儲(chǔ)session狀態(tài)的?Cookie到底是什么?)。
4、精通一個(gè)編輯器
高效開(kāi)發(fā)者通常是用IDE編輯器嗎?其實(shí)不是的,他們更常用的文本編輯器,因?yàn)檫@樣更會(huì)學(xué)到東西。
如果使用編輯器選擇通用的Emacs或Vim,自然是最好的。其次,挑選你的首選平臺(tái)最支持的。使用宏,不斷地寫(xiě)代碼;使用Visual Studio或SublimeText的自動(dòng)補(bǔ)齊功能。
5、整潔的代碼勝過(guò)巧妙的代碼
如果想讓別人可以輕松讀懂你編寫(xiě)的代碼,請(qǐng)盡量使用最少的代碼來(lái)完成任務(wù)。在編寫(xiě)代碼過(guò)程中,遵循DRY(Don’t repeat yourself)的原則,使用明確定義的對(duì)象和庫(kù),將任務(wù)分解成小而簡(jiǎn)單的代碼段。
6、掌握代碼調(diào)試技巧
現(xiàn)如今市場(chǎng)和需求變化相當(dāng)快,項(xiàng)目的周期有時(shí)就會(huì)縮短。一個(gè)月的工作計(jì)劃,會(huì)縮短到2個(gè)星期。項(xiàng)目的壓力難免會(huì)導(dǎo)致程序員的代碼質(zhì)量會(huì)有所下降!
因此,調(diào)試技巧在這樣的環(huán)境下就顯得尤為重要。高級(jí)程序員會(huì)在函數(shù)的開(kāi)始和結(jié)束輸出Log,把所有的參數(shù)和返回值打印到日志系統(tǒng),便于追蹤。在解決問(wèn)題的過(guò)程中,使用開(kāi)發(fā)工具一行一行進(jìn)行調(diào)試,實(shí)時(shí)觀看參數(shù)的變化。
7、重新回顧代碼
重新去回顧和審視自己寫(xiě)過(guò)的代碼,通常會(huì)有兩種體驗(yàn),一種是我怎么寫(xiě)了這么爛的代碼;另外一種則是對(duì)自己寫(xiě)過(guò)的代碼充滿了成就感?;仡櫞a有時(shí)可以觸發(fā)我們新的想法,甚至還能對(duì)編碼有一個(gè)更深層次的思考。
write less,do more,這是程序永遠(yuǎn)的主題。努力培養(yǎng)一些好的習(xí)慣,只要你不斷地朝著那個(gè)方向努力,相信你也會(huì)在這個(gè)努力的過(guò)程中得到長(zhǎng)足的進(jìn)步。