做個犀利的碼農:如何持續培養/更新自己的開發技能

    我們的圈子,改變是生存的必備要素之一。計算機領域一直在改變,從基礎框架到計算設備,還有幾乎每天都涌現出的新技術,這些要求我們必須持續學習新東西。這裏將介紹一些技巧,以使你可以在這從未停止的學習之旅更加輕鬆。

如何選擇讀物

    程序員需要的技能改變是如此之快,尤其是那些熱點的/快速演變的領域,比如本博關注的那些領域,還有移動開發等。找到這些領域合適的閱讀材料有時不那麼容易。兩點建議:

當然,此處可以根據具體國情,比如:

  • 1.中國的紙質書比外國便宜很多

  • 2.很多人有閱讀紙質書的習慣,個人喜歡閱讀紙質書帶來的寧靜,電子設備令人緊張。

  • 3.紙質書可以隨意加批註,對眼睛傷害小

選一個實際的項目

Remember this mantra: “I hear, I forget; I see, I remember; I do, I understand”.

記住這句咒語:“我聽見的,我忘了;我看見的,我能想起來;我做過的,我理解”。

    閱讀是有益處的,但要想真正的理解某個編程語言/庫或者技術,你只能親自動手,真正的參與到一個使用這種語言/庫/技術的項目中。”完成一個項目並在其中運用到你想學的技能或特性”是一個很具體的可衡量的目標,”學習某種語言/庫/技術“則太籠統了。一個清晰的目標有助於你瞭解你的進展。完成一個項目則會使你獲得寶貴的經驗,有些甚至可以寫到個人簡歷中。盡一切可能來用構建一個完整的項目的方式來學習,而不是根據閱讀得來到東西學習一個範例。

    絕大多數人都知道實際做項目而獲得的經驗是很必要的。難處在於怎樣找到一個點子來開始一個項目。一些建議:

  • 1.你這種新技能能否開發出一個家人或者朋友正需要使用的應用?我有幾個小侄子,我發現給他們開發遊戲是一個學習XNA/Cocos2D的絕佳方式;我很快還會爲他們寫一個基於Sprite Kit的遊戲。

  • 2.有沒有什麼開源項目正在使用你所學的新知識?你會發現貢獻模塊甚至創建項目給開源社區是一個很好的學習手段。有時從一個已有的項目繼續工作比從頭開始更加容易。

  • 3.有沒有什麼盈利/非盈利組織可能用到基於這種新技能的應用?如果是這樣,搞定它不但可以使你學習並開發出一個應用,並還可能獲得一個用戶羣來給你提供大量的反饋。

教別人的同時學習

    2010年”Yours Truly“,Windows Phone基礎遊戲開發課程

    當我在微軟作爲佈道者,想程序員們宣講時,我常常撰寫入門指南的演講稿和在線材料。有些,我負責的是一些我很熟悉的領域,但微軟擁有如此衆多的工具和技術,並不斷有新的東西涌現出來,我經常發現自己不得不學習新知識才能完成教程。

    這也成爲了一種非常好的手段來促織我學習新東西,因爲教這些東西,你必須搞懂它們。由於你得把這些新東西轉化容易理解的內容,傳遞給你的聽衆,以此爲目標促使你必須有合理的學習手段和方法。Floor Drees,一個澳洲的技術宣講/佈道者說到,“坦誠的說,我覺得教別人的過程能促使自己學的飛快,我鼓勵每一個人去培訓新人,即使你覺得自己也還只是個新人”

    如果你能得到合適的研究和學習資料(幸運的是,在微軟我通常能很容易的找到),並有足夠的時間和工具去試驗一些迷你的項目來得到更深入的理解,並且你很喜歡當一名老師(無論一對一或一對多)或者作者,你也許想要嘗試教學的過程中來學習。

搞定攔路虎

    當你的開發技能到了一定水準,你會偶爾遇到攔路虎:一些短時間內搞不定或理不清頭緒的問題。

    這是個好事,真的!如果你從不嘗試新東西,那當然會發現已有東西對你來說都毫無挑戰,這也意味着你沒有真的在“求學”。最好的/有價值的學習經歷正是那些拼命搞定某一問題的時光。你極盡所能嘗試各種方法並最終找到了解決方案,這就好像你在黑暗中探索,努力拼接出一條成功之路,這種能力在日後也會陪伴着你。

    在這段探索之路,你需要以下幾個技巧:

  • 1.找找看,確認是否你自己或者別人已經有一個項目解決了相似的問題

  • 2.利用好在線開發者論壇。Stack Overflow是你的朋友,他這些年幫我解決了好多的問題。很多開發者社團也維護自己的論壇,確保自己檢查過這些站點。

  • 3.學會藉助一些好的有利的資源,比如,在開發app時遇到安全問題難以解決(有過被破解的經歷),何不借助愛加密這一專業權威的移動應用安全服務平臺,去了解下,相信你一定會有很多驚喜的收穫!

參加課程

    很多程序員有這樣的機會通過“構建自己的項目/看其他人的項目/教授課程“來學習。但這不是所有人的習慣,有人喜歡在教室裏接受傳統的課程。幸運的是這些同學也有很多可選的方案。

    很多學校和社團都提供了對外公開的的編程課。如果你所在的城市有一些技術人員或者***交流中心,那麼在那通常也有針對他們團體的一些編程指南,有時這是免費的。

    在有些城市,那有新手入門課堂,在那你可以學習一門語言或一項技術,它通常會有一些密集的課程和上手小實驗,這種培訓通常持續幾天或者幾周。如果你有商業上的需求,需要對程序員進行某種企業級工具/技術的培訓,例如微軟/甲骨文/Java或者SOA/雲計算/敏捷開發,那麼你可能需要找到某個類似Web Age Solution這樣的培訓機構來幫助你完成。

    英文原文:http://www.globalnerdy.com/2013/10/11/staying-sharp-maintaining-your-development-skills/


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章