學習新技術的10個建議

cnblogs發表於2013-07-22

  我們生活在一個振奮人心的時代。我們可以越來越方便廉價地獲得大量學習資源。這些資源的傳播載體由最初的教室被變成了部落格,技術論壇等。坐擁如此眾多的學習資源,我們沒有任何理由不去好好利用。隨之而來的問題便是如何在這知識的海洋中選擇自己的前進方向。在這篇文章中,我將簡要概括一些技術學習的建議,希望可以給你帶來一些啟發。

  儘管我的建議主要涉及的是軟體開發方面,但是這些原則在其他領域也同樣適用。

  1. 克服慣性(Overcoming Inertia)

  萬事開頭難,克服慣性是學習新技術的第一步。舉個日常生活中慣性存在的簡單例子,當我們看電視的時候會因為遙控器不在身邊而懶得換臺。幸運的是有很多的小技巧可以調動我們的積極性,幫助我們克服慣性。對於我來說,微習慣是一個很好用的小技巧。與其被手頭的任務嚇到,不如將任務細分為一個個具體的微任務,然後挑選其中的一個開始做起。就“拿到遙控器”這個例子來說,首先扭動你的腳趾,向前伸出,然後推動整個人離開沙發。下一步,身體滑到地上,用腳拿到遙控器,然後起身。通過完成一個個的微任務,你會發現自己克服了慣性,並且這項任務不再顯得難以完成。這個方法可以被應用到學習新技能的過程中。關鍵就是將大塊任務細分為微任務。

  2. 關注大牛(Watch the Pros)

  學習新技能的第一步是明確要學什麼。它可以是任何你有激情去學,並且想深入學習的一些東西。這種原始的學習慾望非常重要,這種慾望可以在你的學習低潮期給你提供動力。你想學的或許是一門新的程式語言、應用框架或者是新的工具,一旦你確定了想要的是什麼,就立刻去收集相應的優秀群體所做的一些優質的工作成果。這些可以從YouTube、Vimeo、HackerNews、各種部落格,甚至是你的微博好友那裡獲取。關注別人做了些什麼可以給你強大的信心,讓你覺得 “You can do it, too!”

  3. 建立知識網(Let the Information Flow Begin)

  當你對自己要學習的東西建立了信心之後,接下來要做的就是做一塊海綿,然後開始瘋狂地吸收知識。從Google搜尋關鍵詞“beginner tutorials”開始吧,搜尋一些跟你要學習的知識相關的入門教程。如你所知,Nettuts+上面有成千上百的各種教程供你選擇,StackOverflow上面也有很多學習資源。此外,Quora也是一些不錯的選擇。通過瀏覽這些網上的資源之後,如果想要集中精力學習某一方面,這時就需要閱讀一些相關的書籍了,個人推薦在Amazon上面尋找一些評分較高的專業書籍來提高自己。

  4. 多聽多看(Listen and Watch)

  隨著你對技術的深入挖掘,你可能會想利用更多其他形式的學習資料,比如podcasts,screencasts等等。我的建議是多用 iTunesU,這上面有很多很專業的知識可以讓你對於特定的領域進行深入的探索。

  目前,有很多的網站都有提供線上教育服務。王婆賣瓜,這裡要首推我們自己的Tuts+ Premium。想要學習PHP或者JavaScript?這裡有你最需要的資料。另外,你也可以在下面幾個網站上找到自己需要的教程:

  此外,你也可以看一些免費的會議視訊材料,比如YouTube上面的Google IO,以及Confreaks

  5. 行動起來(Time for Action)

  現在你已經看了一波又一波的教程以及視訊資料,並且對於想學的技術已經有了一個相當深入的瞭解,接下來做些什麼呢?沒錯,是時候理論聯絡實際了,實踐是檢驗真理的唯一標準。

  用你所掌握的技術做一個個人的小專案,設計一些簡單的功能並且實現他們。毫無疑問,你會遇到很多的絆腳石,當遇到它們的時候,在StackOverflow或者Google上面搜尋之,解決之。你已經踏上一條成為某一領域專家的旅程,遇到的困難挫折越多,你會變得越睿智。有句老話說得好,“專家是犯錯最多的人”,這意味著他們嘗試了很多瘋狂的事情來探索這門技術的極限,最後,對於這門技術是如何運作的就可以知根知底。擁有這種洞察力之後,他們便可以隨心所欲的運用這項技術去按照自己的意願完成想做的事情(當然,是做好的事情)。

  6. 寫部落格(Blogging)

  在你進行你的探險之旅的時候,實時記錄下你的成長以及犯下的錯誤大有裨益。在技術領域,部落格是最簡單易得並且受歡迎的表達載體。當你準備落筆的時候,你會強迫自己整理思路,並且對積累下來的零散的知識片段進行結構梳理。說不定,通過網際網路的分享,你的經歷和分享會給別人的成長帶來幫助。

  如果你想走的更遠(比如想像Nettuts+上面的職業作者一樣),你也可以製作屬於自己的screencasts。總的來說,寫部落格能夠提升你的個人溝通能力,這與你學到的技術同樣重要。

  7. 感受技術的脈搏(Feel the Pulse)

  社交網路已經廣泛應用於人們的日常交流以及發現新鮮事物。Twitter和Facebook是資訊的主要來源,與此同時,有很多的網站提供更專注的資訊,如前面提到過的Quora網站,這上面有很多涉及面很廣的一些話題供人們評論。在這上面可以找到很多知名大牛的建議以及觀點。

  瀏覽StackOverflow上面的眾多話題是一個很有意思的過程,你可以看到他人如何探索某種技術的極限。事實上,在人們利用技術做一些瘋狂的甚至是荒誕的事情的時候,技術也隨之不斷的成熟起來。

  因此,如果你想要感受到技術的脈搏,並且想確認它是否值得學下去,在StackOverflow上面試著搜尋一些話題,看看這個討論社群的廣度與深度。最值得看的是投票最多以及熱門話題。你也可以嘗試在GitHub上面進行搜尋。

  8. 參加聚會以及會議(Meetups and Conferences)

  儘管社交網路很棒,但是沒有任何事物可以取代面對面的交流。在你住的附近參加一些小組聚會,在這裡你可以找到志同道合的夥伴。你可以知道他人在做的一些有趣的專案,同時也可以在他人的幫助下解決一些自己遇到的難題!同樣的,技術會議對於分享經驗以及增長技術大有幫助!

  9. 擁抱GitHub

  GitHub是全世界開源專案的標誌性建築物。它是知識以及優質程式碼的寶庫。當你對某項技術自我感覺良好的時候,下一步便是在GitHub中瀏覽尋找有趣的專案。閱讀開原始碼,儘可能多的閱讀。這樣做的話,你能夠學到很多東西,比如說:

  • 如何管理規模較大的專案
  • 專案中應用的有趣的庫
  • 程式碼規範以及程式碼全域性設計
  • 文件風格
  • 測試規範
  • 解決詭異問題的方法,以及發現專案中有問題的地方

  所有的這些知識都在等待著你去挖掘。有趣的是,這些知識的通過一個簡單的標籤就可以得到,那就是“好奇心”。

  10. 專注學習(Concentrated Learning)

  如果你擔心上述的學習過程太遲緩,那麼你也可以嘗試一下快速學習模式。你或許聽說過“24小時學會某某某”,但是這種方式不是我所推薦的。我認為更合理的是用幾周的時間去學習。你可以嘗試一下類似“七週學會七種語言”或者是“七週學會七種資料庫”等學習方法。儘管這些講的是語言以及資料庫方面的學習,但是你在學習其他技術的時候也可以運用這種思維。

  有一個不太相同的學習風格是“困難學習模式”,這種觀點的前提是沒有人可以真正掌握一門技術,除非每天都練習。所以,想要成為專家,你就需要不停地進行練習。異曲同工的是你可以檢視KatasKoans,他鼓勵的使用你學的知識來解決問題。這些可以讓你更好地入門以及接受那些陌生的概念,勇敢走出自己的舒適區,開始學習新知識!

  學習一門交叉的技能(Learn an Orthogonal Skill)

  程式設計是一項左腦的運動,它利用的是大腦的分析能力,一步一步地尋找解決問題的方法。為了發揮右腦的功能,你可以嘗試從事一些創造性的活動,比如說畫畫、3D建模、摺紙、樂器甚至是製作家庭相簿等。事實上,程式設計同樣需要大量的創造力。或許你曾經遇到過類似的事情,你在睡夢中找到了問題的解決方案。這是因為你的右腦處理問題的方式很不同,它可以從各種地方獲得資訊。敏捷開發權威人士Andy Hunt就這個話題寫了一本書《程式設計師的思維修煉》。如果你想點燃你的每一個神經元,建議你開始學習一門交叉的技能。

  總結

  掌握一門新技術振奮人心,這是一項影響你思維的新的體驗。但是首先,你必須克服你的慣性,一旦你做到了,你便開啟了從web的每個角落學習知識的旅程。我希望上面講的十點能夠給你的旅程帶來一些幫助或啟發。

  英文原文:10 Tips for Learning a New Technology

相關文章