你也許看過我們推出的這篇文章:工程師寫 Code 的聰明省力法:Google 一次我可以寫 10 行程式碼,沒錯,透過 Google 與網路的幫助可以讓你寫出一行又一行的程式碼。不過,這代表著進步嗎?若你只是複製貼上,事後並沒有嘗試了解背後的運作機制,充其量代表了「工作完成」。
那有什麼辦法可以讓自己進步呢?也許你可以從少寫一點程式碼開始。並不是要你不工作,而是想辦法精簡自己的程式碼。在某些方面,coding 跟寫作有些類似,並不是多就是好,正如馬克吐溫說的:
我沒有時間寫一封簡短的信,所以我寫了一封長的。(I didn’t have time to write a short letter, so I wrote a long one instead.)
簡短的文字與程式碼相同,都需要耗費更多的腦力才能完成,並可以成功的運作。
- 簡單、經驗與理解讓你寫得越來越少
在澳洲的工程師 Elliot Chance 分享了他自己的看法,他認為要分辨兩個工程師的好壞,就是給他們一樣的時間,越好的工程師寫出來的程式碼越少(當然是要可以運作)。
除此之外,正如先前所說的,越長的程式碼並不代表越認真,有時候反而是因為懶惰,懶得思考,你才會寫出這麼長的程式碼。
而好的工程師因為從問題下手,對問題理解的非常透徹,能夠寫出簡潔易懂、容易維護的程式碼;而懶於思考,或者是較差的工程師,也許在鍵盤上敲下來一串又一串的程式碼,卻難以理解,並為後來的維護人員埋下了許多可怕的地雷。
而要如何進步呢?
則可以從三個方面下手,第一是多思考,不要以又臭又長的程式碼濫竽充數;第二則是經驗,經驗越多,你越知道該怎麼下手;最後,則是理解,透過對問題與所使用的語言、框架越加理解,越能寫的簡單易懂。
簡而言之,用一句話來說:多練習寫簡短的程式碼。
- 把時間花在審視與思考
在這邊要舉另外一個例子,是 Martin Thompson 在 QCon London 2016大會的演講。他提到任何創造性的嘗試都可以從不斷地審視和完善中受益。
閱讀已經寫好的郵件、論文、blog 或報告等等,然後覺得某些部分可以做得更好呢?這是一件很自然的事情。當回頭審視這些東西,每次都可以獲得新的認知。
我喜歡將程式碼當作表現「當前」看法的地方。我們都會犯一些回過頭來看時可以糾正的錯誤,除了糾正這些錯誤外,我們還可以記錄我們更深入的理解。
定期閱讀所有的程式碼,而且不只是你自己的程式碼。閱讀他人的程式碼是一種很棒的學習方式。正如作家 Stephen King 所說,「閱讀其他人的作品是讓你成為一個更好的作家的最好方式」這同樣適用於程式碼。
- 結語
這時候就要拿萬用的標語來做結尾:KISS,Keep it simple and stupid。程式碼真的非常深奧,不管任何語言都有它神秘之處。
不過簡短的程式碼不一定好,則是下一階段要考慮的事情了。結合這兩篇文章,建議大家,想要好好進步的話,不如從今天開始,多思考,少寫一點程式碼吧!
本文參考資料來源 1. Elliot Chance:What Makes A Great Software Engineer?; 2. InfoQ:What Programmers Can Do to Write Better Code;圖片來源:Bull3t Hughes, CC Licensed
──
- 延伸閱讀
【App 設計新趨勢】現在高端設計師都這樣做,你還不快尬廣跟上?
史上最狂 pitch:直接現場 coding,讓創投的手機響起來!
為了練習 coding 所做的遊戲,讓他賺了上千萬台幣