看到一篇文章,講述在工作中學習新科技的 7 種實用方法(無需加班),本文參考自《7 Practical Ways I Learn New Tech on the Job (Without Working Extra Hours))》,看完想針對大部分進行翻譯紀錄,並加入自己的話,以下為個人翻譯與觀點整理。
1. 主動承擔舒適圈以外的工作
如果會議上提到了一項新技術,我很可能會在下次站會之前就用它來運行一個「Hello World」。
「我主要用 Java 寫程式碼,需要有人幫我研究一下老舊的 Python 服務嗎?」
:「我願意。」
「用新的 AI 工具建立 PoC 或測試新的資料庫引擎?」
:「我願意。」
把「我不知道」變成「我會搞定的」。每個專家都是從初學者開始的。
縮小差距的唯一方法就是在你準備好之前就主動出擊。
2. 隨時準備好快速建置 PoC
一種讓我受益匪淺的心態:邊做邊學。
我從不因為還沒「完全」理解一個新框架而放棄嘗試。如果有人提到某個工具或函式庫,我一定會嘗試。我建立了一個快速的概念驗證——非常簡單——只是為了看看它是如何運作的。
不久前,我們在一個 Node.js 服務中遇到了殘酷的冷啟動問題。 有人隨口建議:「如果我們在 Lambda 上試試 Rust 怎麼樣?」我之前從未寫過 Rust 程式碼,但我心想:為什麼不呢? 同一天,我拼湊了一個基本的 Rust Lambda 程式碼,用來複製我們的一個 API 端點。 結果如何?冷啟動時間從約 800 毫秒降至 100 毫秒以下。 這個小小的實驗引發了一場更大規模的討論。
我們將對延遲敏感的函數遷移到了 Rust——這一切都源於我們秉持著「試試看」的簡單心態。
3. 記錄並分享你的學習成果
學習好某件事的最佳方法之一就是將其解釋清楚——無論是在文件、Slack 上,還是在團隊討論中。
我總是會用簡短的總結記錄我的學習成果,以便日後參考。這有助於我理清思路。 我還創建了一個由有興趣的開發者組成的小組,大家在這裡互相分享學習成果。
這些知識分享會通常會在專案內部催生出一些實際的用例。
4. 在會議期間跟進未知技術
當有人提到我不知道的新工具、函式庫或框架時,我不會忽略它。相反,我會把它記錄下來。然後,當我有空閒時間時(例如在部署期間或執行測試案例時),我會花 10-15 分鐘來探索這項技術。我不會詳細探索所有內容,但大部分內容我都會記住。隨著時間的推移,這幫助我建立了對現代工具的清晰認知。
這種快速跟進的習慣常常幫助我在之後以意想不到的方式創造價值。
5. 將產品改進作為學習工具
引入新技術最容易被低估的方法之一是有意識的改進。我經常會掃描整個系統。我會問一些簡單的問題:這個系統能運作得更快嗎?它能更好地擴展嗎?它易於維護嗎?現代工具會有幫助嗎? 如果答案是肯定的,我就會提出它。不僅僅是重寫,而是一項清晰、有針對性的改進,具有真正的產品價值。 這給了我探索新工具並改進產品的空間。
問一些簡單的問題:這個系統能運作得更快嗎?它能更好地擴展嗎?它易於維護嗎?現代工具會有幫助嗎?
建立人脈是一場長期賽局。
6. 不要害怕未知領域
當你工作了幾十年,你總會忍不住固守自己熟悉的領域。一定要抵抗這種誘惑。
我職業生涯中一些最大的飛躍都來自於說 「好的,我去看看」——即使我沒有任何經驗。這可能是新的基礎設施、一個雲端工具,或是一個我從未接觸過的領域。
我曾經被拉進一個嚴重依賴 Kafka 實現事件驅動系統的專案。我之前從未使用過 Kafka——甚至沒有安裝過它。 但我沒有放棄,而是主動嘗試搭建一個基本的管道。我在本地建造了它,發送了一些測試事件,消費了它們,破壞了一些東西,並學習了它的工作原理。不到一周,我就向團隊展示了一個可以運行的原型。
適應不適是每位資深工程師都需要的元技能。
7. 結對、跟班、提問
學習不會因為經驗不足而停止。
我透過與隊友配對或跟隨調試會議學到了很多東西。當我們推出 Kubernetes 時,我沒有參加任何課程。 我參加了一些維運同步會議,提問,並觀察了其他人的工作。
隨著時間的推移,我吸收了足夠的知識,並理解了這個系統,甚至提出了改進建議。
通常情況下,只要保持好奇心就足夠了。
結尾
與普遍的看法相反,你並不需要熬夜加班才能掌握最新的科技。
對正確的任務說「是」,堅持下去,這才是真正的學習。
學習最快的人不會加班,而是邊工作邊學習。而這才是值得掌握的技能。
參考
7 Practical Ways I Learn New Tech on the Job (Without Working Extra Hours))
⚠️ 本文內容為個人翻譯筆記與心得整理,原文所有內容版權歸原作者所有,如有侵權請告知,我將立即處理。