在軟體工程領域工作意味著要不斷學習新的東西。我們需要跟上新的技術、工具、範式。這是工作中最美好的一面,但也是最困難的一面。我們總是很忙,我們的空閒時間很少,在職場上學習新的東西可能是很難的。
我喜歡學習和研究,但正是因為這個原因,我掙扎著要完成我開始的任何事情。我渴望學習的東西總是太多,所以我太頻繁地從一個轉到另一個。
當我意識到自己在浪費時間和精力後,我就制定了一些簡單的規則,在空閒時間裡有效地學習新的東西。在這個故事中,我想和大家分享一下,希望能幫助到和我一樣的人
選擇你感興趣的
我的原則是:選擇你想在這一刻學習什麼。這意味著,它不應該與你的工作有關。如果是,那很好。但不要逼自己:你所學的任何東西都會在某種程度上提高你的專業水平。
如果你和我一樣,至少有十個新的東西想開始學習。這就是一個問題:先選什麼?知識一般分以下幾種
專業性的知識
應用型知識指的是工具/框架/庫。它需要較少的時間來學習,而且你可以立即應用。把應用型知識看作是一種 "貪婪的方法":它現在提供的價值高,以後提供的價值小。
假設你決定學習Apache Kafka。它在行業中得到了廣泛的應用,而你正計劃將其集成到你的工作項目中。這是個好主意,你會從學習它的過程中立即受益。但如果你考慮到未來幾年,會有一個新的版本,甚至是一個更好的工具。
基礎知識
基礎知識涉及到了計算機科學的基礎。因為可能理論性比較強,所以學起來會比較難。而且,你不會在第二天就會應用它。基礎知識是一種 "遠見卓識":它需要時間,但會永遠有價值。
非技術性知識
非技術性的影響著你生活的幾個方面,比如你如何思考、處理問題、溝通。非技術性的知識不是為了提高你的知識,而是為了更好地使用它。
如何選擇?
每一種類型的知識都是有價值的,儘量交叉的學習。具體的選擇需要取決於你目前的需求。你開始了一個項目,涉及到一個你不知道的框架?開始學習這個框架吧(應用性知識)。你喜歡分布式系統,想深入研究這個話題嗎? 讓我們深入研究一下吧!(基礎知識)。你是否覺得很累,總是有壓力?一本關於如何處理壓力的好書也許會有幫助! (非技術性知識)。
重點是:選擇你覺得現在對你來說更重要的事情,並堅持下去。儘量做好一件事,否則你最終會浪費時間和精力。選擇一件,並專注於它。一旦你做完了,再選擇另一件適合你在那個時刻的事情。重複一遍:選擇你在這一刻想學的東西。
主題閱讀
一旦你選好了題目,你可以通過幾種方式來實現,看書、看視頻、報名參加MOOC、看文檔等等。如何學習新的主題並不重要,重要的是要學得足夠紮實。
這並不重要,重要的是當你學會了它。你周一晚上有空閒時間嗎?就是這樣!你的公司允許你花一些工作時間學習新東西嗎?你的公司允許你花一些工作時間學習新東西嗎?那就更好了!
對我來說,是通勤。從周一到周五,我每天早上和晚上都會花一個小時左右的時間在火車上。與其在社交網絡上偷懶,我更願意把時間投入到學習上。
學以致用
對我來說,學東西最好的方法就是學以致用。一旦你學到了新的東西,就要把它付諸實踐。如果是橫向的知識,那就根據新的概念試著改變自己的習慣。如果你去的是基礎知識或應用性知識,就開始做一個新的項目。你可以去做一個複雜的項目,也可以去做一個簡單的項目。
跟別人分享交流
如何分享
在公司給同事分享在個人網站上寫一篇博文,分享你的經驗。為何如此
你可以驗證你的知識。試圖向別人解釋一些東西,是讓你對它的理解更加紮實的最好方法。你會得到別人的反饋或貢獻,幫助你更好地理解這個主題。你將獲得知名度。公司會很欣賞你可以展示你的能力,而不僅僅是在簡歷中列出它們。分享知識永遠是雙贏!喜歡就點關注吧!