2023-10-27|閱讀時間 ‧ 約 5 分鐘

『軟體開發人員職涯發展手冊』培養技術能力

作者講的「快速學習法」,其本質上應該就是我先前做過重點摘要的「費曼學習法」,想要教授一樣技能或技術給他人時,自己就要徹底理解問題或技術的本質,然後收集相關的資料,用自己的話重新詮釋問題及解決方式。

在這個過程中,就能把知識轉化為自身的理解,從而跟自己的知識樹相連接,存在腦海深處變成本能。

但是,如何針對不熟悉的領域收集學習資源,並擬定學習計畫,這點倒是我一直覺得應該在每個人的學生時期該建立的能力,高等教育應當賦予學生這種「軟實力」,它可以讓終身學習成真。

「80/20 法則」倒是提醒我一件重要的事,或許下次在授課時,可以把不同課程的內容,但有相關性的 「20% 關鍵內容」整併在一起,讓學生快速吸收並實作應用;如果他們後續想再學習剩下的 80% 內容,可以自行去修習完整的課程,這時會更有方向。

作者也點明了為何「做中學」重要的原因,從過程中去觀察及了解那 20% 的內容是甚麼,然後快速學習到可以應用該技能的程度。

關於程式設計的部份,我倒是比較驚訝 C# 這個語言已經壯大到如此程度,而且看其趨勢有成為跨平台設計的主流,這在當初接觸 C# 時完全想像不到。

如果它後續再把 Linux GUI 介面開發都拉進來,或許真能大幅度降低在不同作業系統間的應用程式開發門檻。

現代軟體開發確實很重視函式庫的應用,跟堆疊積木一樣,積木種類越多,就越能堆出開發者想要的形狀。

因此,該程式語言除了語言特性外,就是背後有多少函式庫資源至關重要,最好還要有廣大的開發者社群支持。

關於這點,如果是要驗證跟課程學習我推薦 Python,它在好幾個領域都有相關的函式庫支持,重點是語法容易學習上手快,也滿適合學校在教授理論課程時,讓學生同步實作,驗證該理論的想法,如人工智慧、影像處理、機器學習、數值計算等相關課程。

最後,針對學習的動機,要想辦法規劃或設計自己「需要應用一項技術,有實際的理由學習」;這部分可以參考先前摘要過的「原子習慣」,如何創造一個適合學習新技術的環境,讓自己養成新習慣,這樣能讓整個學習過程更自然,不需要過度強調毅力的重要性。


以下是本章節的重點摘要:

  • 請把技術能力想成是一趟「旅程」,而非終點。
  • 對你學習的內容和學習的範圍有良好的理解,你需要一個「目標」來衡量自己是否已經學會;有太多人開始學習某件事情,卻沒辦法確認自己是否成功。
收集學習資源,並創造實際的學習計畫。
  • 學習足以起步的知識,然後實作看看,回答實作過程中所遇到的任何問題,焦點放在「做中學」。
  • 利用與生俱來的好奇心驅動學習的動力,先自己實際動手玩,再回頭閱讀和學習主題有關的文字資料或消化學習內容。
  • 藉由腦海中浮現的問題和一些實際經驗,自然而然就會引導你找出「真正的重點」。
  • 把你所學到的知識再教給其他人,透過這一步,所學到的知識將轉變為理解;任何想快速學習的事物上,都可以用以上的流程進行。
除非你動手實作這些技術能力或利用它們解決問題,不然只會對它們有表面的了解。
  • 如果你對這項技能沒有立即的需求,甚至會懷疑自己是否需要學習,但如果立刻「需要應用一項技術,有實際的理由學習,那麼學起來就會更輕鬆自在」。
  • 如果你不知道自己的問題是甚麼,Google / ChatGPT 也幫不了你。
  • 要先了解學習的特定技術範圍在哪,大致了解這個技術能做到哪些事。
  • 程式語言一定都會有的標準內容「各種函式庫」,知道能利用這些函式庫做甚麼,以及這些函式庫所包含的範圍。
  • 先了解整個程式語言的情況,而非深入細節,等需要學習這項知識時,會知道該從哪裡尋找資訊。
生活的一切幾乎都會落入 80/20 法則,學習一項技術能力,關鍵是找出那 20% 內容。
  • 許多書籍、甚至是教學課程都寫得像參考手冊,並不會特別強調某項技術裡的 20% 內容是一定要知道的重要知識。
  • 透過工作訓練技能特別有效率,是因為可以從工作過程中了解那 20% 的內容是甚麼,學 20% 的內容就能處理 80% 的工作,這就是為什麼實作如此重要的原因。
  • 聽某些專家對某個主題的看法,就能獲得「深入的見解」,而這些見解是你無力靠自己的力量匯聚而成。
  • 研究專家們如何在現實世界中應用這些技能,並對該技術能力之錯綜複雜的部份,提出哪些相關的問題和論點,就能更深入理解一項技術能力。
做中學是非常重要的技巧,你需要一個實際的學習計畫和一個清楚的目標。
  • 「實踐是檢驗是否學習得當的唯一方法」,要投入時間大量實踐,才能有效率的學習新的技能。
  • 現今的程式設計是在更高階的環境下完成,相較於程式語言本身的特性,設計程式時更常利用函式庫和架構。
  • 學習不同的程式語言,要考量它能否適應不同的情況和技術;現今幾乎所有平台都支援 C#,所以它是一項適應性極高的語言;可以用 C#WindowsLinux Mac 應用程式,也可以拿來寫 Android iOS 應用程式。
分享至
成為作者繼續創作的動力吧!
© 2024 vocus All rights reserved.