今天是第一篇,來自前美國宇航局工程師,python大神Daniel Roy Greenfeld的部落格中的一篇《code,code,code》,旨在幫助新手程式設計師知道如何才能提高自己的程式設計技能。
我經常被新手程式設計師問到,如何才能夠讓他們的專業程式設計技能得到鍛鍊。或者如何能夠提高編寫軟體的能力。
如何提高你的程式設計能力
這裡是我的方法。它不一定完全適用於你,這些方法也不存在任何的先後順序,它們中的任何一條都可以作為你開始的途徑。
- 我會大量的編碼,從簡單的指令碼,到自動化的任務,再到嘗試去寫成熟的專案。不管是工作還是興趣所致,我失敗了很多次,但是在程式設計的過程中,我學到了很多。
- 我不會在各種語言之間來回切換,相反,我會專注於一種語言很多年,並把我的學習重點放在那些工具上。我19年的職業生涯可以歸納為FoxPro,然後是Java,然後是Python。在這些期間,我還學習過JavaScript。當然,我也玩弄過一些其他的語言(Lisp,Haskell,Lua,Perl,ColdFusion,Go),但是僅僅只關注一些方面,有個基本瞭解。
- 我大量編碼。是的,這個和
#1
是重複的 - 一旦我掌握了一門語言的基礎知識,我就會去尋找每個知識點的最佳實踐。然後,我會果斷的吸收它們並堅持使用,甚至作為一種教條來規範自己。通常,這就意味著我的程式碼會更容易閱讀,更容易除錯,最重要的是,更容易被分享。
- 我有沒有提到我會大量編碼?除非你練習,否則你永遠無法做任何事情。這是對於
#1
的又一次重複 - 我克服了害怕提問題的弱點,儘管,大多數時候,我仍然時不時的會害怕。實際上來講,通過提問你不僅不會顯示你的無知,反而會表現出你願意學習的慾望。另外,學著搞清楚如何去提出問題的這個簡單行為可以讓你以正確的思考方式去決定你要的答案。
- 只要我問了一個問題,不管我是否得到了答案,我又編了一些程式碼。編碼,編碼,編碼,再一次重複
#1
- 一旦我掌握了一種語言,我就會找到這個語言的cookbook或是手冊作為參考資料。對於技術書籍,我偏愛閱讀紙質書(其他領域的我統統都是看電子書)。Cookbook中的方法技巧成為我語言工具的基礎。簡單易懂的手冊提示可以讓我更輕便的學習。
- 我會將學到的方法技巧和以及參考應用到我的編碼中,一次又一次地編碼實踐,無論是在工作時間或玩耍時間。Practice makes perfect!(譯者注:這句是名言,無需翻譯:p)。為什麼我在不斷重複
#1
- 多年來,我一直使用易上手的且穩定的IDE或文字編輯器。是的,我知道有一些非常強大的工具與強大的命令(Vim,EMACS等),但我不會停止去使用新工具。我的目的是編碼,而不是修復桌面工具或神祕的文字編輯器。
- 再次反覆提及
#1
,我使用文字編輯器編寫程式碼。編碼, 編碼, 編碼!直到我的手指和手受傷,直到我不得不學會如何處理腕管綜合徵(譯者注:總之是一種關於手的病)。編碼, 編碼, 編碼!這就像學習武術,吉他或其他任何東西一樣,重複簡單的動作可以讓你有信心把這些動作組合成更強大的東西,或者學習更復雜的東西。
我希望我做了什麼
- 研究電腦科學。如果我能再做一遍,那將是我學術研究的重點。它不會取代我的列表上的任何東西,我宣告的學習方法依舊會保持不變。編碼,編碼,編碼!
- 我應該有更多的教程當然是沒錯的。如果沒有機會可以像在網上或面對面的教練那樣引導你走上正確的道路。那麼你可以選擇編碼,編碼,編碼!
Practice makes perfect, 對嗎?
譯者部落格:vimiix.com