建立自己的個人學習課程

已發表: 2022-03-10
快速總結↬作為開發人員,我們不斷學習新的語言和框架。 但是,您如何構建這種學習結構以確保在繼續進步的同時獲得最大收益? 以下是您可以如何設計自己的課程以繼續朝著正確的方向前進。

在 2019 年 3 月完成訓練營後,我不得不選擇框架、庫、語言和課程,以繼續獨立學習,並希望自己能獲得那些難以捉摸的初級開發人員工作之一。 幾乎與我交談過的每個人都對什麼是重要的和值得追求的有不同的看法,但他們中的大多數人都同意學習“基礎知識”很重要,但從未真正具體說明它們是什麼。

即使在去年夏天獲得了我的第一份開發人員工作之後,我很快就發現我必須定期進行課外學習才能滿足這個新角色的要求。 我在 Udemy 課程之間徘徊了一段時間,雖然我確實在學習,但我經常發現自己只是在模仿導師的動作,而沒有自己培養解決問題的能力。 我花了我自己的小型草稿本副項目來真正掌握新材料。 所以現在我知道我的學習風格是什麼:最初在課程或工作中接觸想法,創建項目草圖以鞏固概念,然後如果可以的話,在我的日常工作中使用這種新的學習。

我們中的大多數人對我們如何在短期內學習得最好有一種紮實的(如果來之不易)的感覺,但是這如何轉化為長期課外學習的結構呢? 我將告訴你我是如何為自己解決這個問題的。 這些策略適用於各種經驗,無論您是軟件開發新手還是經驗豐富的工程師。

你自己的個人課程

這是我整理學習課程的方法。 作為一個時間有限的人,並且傾向於以犧牲持續、專注的工作為代價被沖動的微風所吸引,我發現這種方法最適合我的大腦和一般節奏。 當然,您的里程可能會有所不同。

使用“理想工作”角色規範設定目標

我發現這一步對於消除所有環境噪音並讓自己專注於在未來五年左右對我的職業生涯實際上有用的事情非常有用。 (作為一名前端開發人員,我經常發現自己在學習 Rust 時會大吃一驚。雖然很吸引人,但這並不是一個優先事項。)

你可能不想自己在一家大型科技公司工作,但值得看看他們在招聘時優先考慮什麼,因為無論好壞,大公司往往會為整個行業定下基調。 我有一小部分非邪惡公司的購物清單,我想在某一天結束,它們都大致共享相同的優先事項:語義 HTML/CSS、出色的 vanilla JS 技能、可訪問性和流行的框架。 有一天我要學習 Rust,但是,就目前而言,學習這些技能是我的首要任務。

顯示工作規範如何轉化為學習目標的圖形
值得查看工作委員會並研究公司在招聘開發人員時正在尋找什麼要求。 (大預覽)

我傾向於支持 Indeed、Guardian Jobs 和 LinkedIn,因為它們可以獲得市場上廣泛的工作機會,但同樣有用的是 Twitter(只需搜索 [您感興趣的公司名稱] 和“工作”),並定期關注每隔幾個月在您最喜歡的幾家公司的“職業”頁面上。 以@jesslynnrose 的名義發推文的傑西卡·羅斯經常在推特上寫出“非邪惡公司”的職位空缺,這些帖子有時在其他地方並沒有很好地宣傳。

一旦你收集了一些工作規範,試著找出它們之間的共同點並記下它們。 我們將在下一步中使用它們。

確定發展您想要的技能的機會

還記得我提到的那個清單嗎? 把它分成兩列。 第一欄:你可以在日常工作中做的事情。 第二欄:你需要在自己的時間看的東西。

工作學習

您日常工作中涵蓋的清單上的事情是您最不需要擔心的事情。 無論如何,您在這些領域的技能會隨著時間的推移而提高。 你們中的一些人將在由許多具有不同資歷和專業水平的開發人員組成的龐大組織中工作,坦率地說,我建議你們不惜一切代價去擠奶。

如果可訪問性是您想要改進的知識差距,請嘗試忍住任何緊張情緒,並在您的工作場所與具有聊天/ Zoom 咖啡技能的人聯繫。 嘗試與他們配對,並理解您可以在不是編碼問題的事情上“配對”。 與他們聊天,了解他們在哪裡可以找到他們的信息,他們關注哪些 Twitter 帳戶、博客和播客,以及他們如何及時了解新的發展。

跳躍後更多! 繼續往下看↓

在家學習

作為一個以前有兩個職業的人,這兩個都不是計算機科學相關的,一年前通過為期九週的訓練營進入這個行業,我對計算機科學有一個初步的了解,你們中的很多人可能都處於同樣的境地。

我發現前端大師對於精心設計的計算機科學原理和更具體的學習課程來說是非常寶貴的。 就個人而言,我發現 Will Sentance 的前端大師課程對於理解原生 JavaScript 的方式和原因非常有價值。 同樣,Brian Holt 的“5 小時計算機科學四個學期”課程讓學生了解技術面試中可能出現的那種概念。

Frontend Masters 有每月訂閱費,這是非常值得的,但是那裡有很多很棒的免費資源。 我真的建議任何尚未這樣做的人報名參加 CS50。 該課程由哈佛大學開設,是一個很棒的免費資源,它將向您展示 C、Python、JavaScript 以及有關道德和基本數據結構的模塊。 講座非常有趣,您可以隨心所欲地完成課程,沒有時間限制。

哈佛 CS50 編程講座上的學生
CS50 是一個很棒的免費資源,可以全面介紹計算機科學和編程藝術。 (大預覽)

同樣,對於自學成才的開發人員和希望利用現有技能的開發人員而言,FreeCodeCamp 已經贏得了重要起點的地位,我鼓勵您在 Udemy 上尋找與您的興趣相關的課程(我建議不要買一個沒有大折扣的 Udemy 課程。他們的銷售每隔幾週就會出現一次,而且總是有折扣代碼浮動)。

我最喜歡的是 Andrew Mead 的 The Complete Node.js Developer Course,我很喜歡 Colt Steele 的課程(有一個關於算法和數據結構的特別好的課程,如果你發現自己更偏重於算法,這將對你有所幫助技術面試頻譜)。 Smashing Magazine 還經常舉辦一系列主題的在線研討會,以幫助您提高技能。

正如您可能知道的那樣,讓人們在技術領域工作的技能往往與人們在工作中需要使用的技能有所不同。 這些課程將教你計算機科學基礎知識,同時讓你靈活應對面試,並幫助你通過對不同數據結構及其優缺點的快速總結來填補任何可能令人崩潰的沉默。 重點不是要完成所有這些課程,而是要確定並結合那些適合您所針對的工作規範的課程。

我發現 Twitter 對尋找可以討論代碼問題的人非常有幫助。 去年春天,我對 Android Studio 遇到的一個問題大喊大叫,並在不到十分鐘後與一名 Android 開發人員進行視頻通話時感到驚訝,不僅如此,他似乎很樂意提供幫助!

不要低估開發者社區的善意,不要害羞地在需要時向它尋求幫助,並儘最大努力讓自己置身於可以與來自相似世界的人交談的環境中更廣泛的科技行業背景。 如果您需要幫助,#CodeNewbie 主題標籤非常方便。

設定目標和時間表

現在是時候將你的自主學習目標與一些目標聯繫起來了。 盡量不要把標准設得太高——如果你在一周內完成一門 Udemy 課程是不切實際的,不要試圖強迫自己如此努力地完成目標,以犧牲你生活中其他重要的事情為代價或者達不到目標,讓自己覺得自己很失敗。 這個想法是讓自己保持在正軌上,施加溫和的壓力來保持動力,但不要讓你感到不知所措並失去所有動力。

作為一個早起的人,我覺得最能在早上 9.30 開始我的日常工作之前的幾個小時內專注於學習。 考慮到這一點,並使用出色的時間跟踪工具 Toggl,我每周有兩個早上從早上 7 點到早上 9 點花在代碼學習上。 使用 Toggl 對我來說非常重要,因為無論我做了多少,我常常覺得這還不夠。 但是在 Toggl 的幫助下,我可以肯定地看到我每周至少工作四個小時(如果我願意的話,可以在晚上和周末加班),並且當我離開筆記本電腦並休息時,我感覺更好。時間到了,我知道按照我自己的標準,我已經花費了可以接受的時間。

使進展可衡量

想想你平均每週的日程安排,並嘗試在一天中最有機會確保不間斷專注的時候留出一些時間。 你們中的一些人將成為照顧者或以其他方式非常忙碌,如果你能得到它,你可能會更好地花時間。

如果它可以幫助您查看示例,我的個人目標如下:

  • 在 2 月底之前完成 Node.js Udemy 課程。
  • 每天上班前做 30 分鐘的 Execute Program。

對於您的第一組目標,請盡量謹慎行事。 如果你願意,你可以隨時加大壓力,但最好是在幾次成功後就這樣做; 確保你有足夠的精神和身體空間來真正專注於你需要做的事情來保持正軌。

尋找導師,或好友,或兩者兼而有之!

大多數開發人員會建議指導以提高技能,但是根據我的個人經驗,找到一個有時間指導你的人是一個挑戰,尤其是現在。 諸如 Coding Coach 之類的資源可能會對您有所幫助,而且我知道一些開發人員在聚會和社交媒體上找到了他們夢寐以求的導師,但找到完美匹配說起來容易做起來難。

我與 Thinkful 的教學設計師 Falina Lothamer 進行了交談——一個大規模的在線開放課程(或簡稱 MOOC)——以了解專業人士如何進行獨立學習。 她非常清楚,尋找導師並與導師合作是提高開發人員技能的關鍵

“如果你需要為你準備一些東西,讓導師說:'這是我認為你應該關注的地方',向你展示他們在工作中所做的事情,並分享他們對你所在地區未來的看法技術將會有很大幫助。 我認為業內有很多人願意擔任導師的角色,並為他人做別人為他們做過的事情。”

在表達了我對在 Udemy 的一些課程上碰壁的一些挫敗感之後,只是發現自己保留了信息,並不一定對我所學的知識有信心將其應用於其他領域或其他項目,Fallina 是很明顯,對另一個人負責——最好是導師,但同樣是另一個與你有類似專業經驗的開發人員——是必不可少的。

“作為開發人員,您需要尋找機會來展示您的知識以及您的學習方式。 讓其他人談論你面臨的挑戰,並有空間與某人討論並意識到“我正在嘗試做的這件事很複雜,我不是一個糟糕的開發人員”,擁有驗證可能是巨大的。”

對於那些無法找到高級開發人員來管理他們的人,我建議採納 Fallina 的建議,讓自己對行業中與您具有相似水平的其他人負責。 開發人員聯合起來分享故事將強化這項工作艱鉅性,而且有時他們並不是唯一一個在工作中苦苦掙扎的工程師。 這項工作在情感上可能會非常耗費精力,在那些似乎一切都不順利的日子裡,有一個夥伴一起奮鬥將是無價的。

根據您的技能水平和專長,我建議您註冊 Interview Cake、Execute Program 或相關的 Udemy 課程,並與您的好友大致同時完成相同的練習。 討論你發現的更容易的地方,以及你跌倒的地方,並在整個過程中保持相互聯繫。 雖然您當然可以獨自完成這些事情,但培養社區意識將幫助您繼續完成任務,並更有可能堅持下去。

便簽應用案例

如果你有時間和精力在工作的基礎上投入到一個大型的業餘項目中,那麼你就會有更多的權力,但我覺得這樣做的壓力有點沉重。 相反,我是便簽本項目的粉絲,主要是因為我真正受益於一次遵循許多新想法,並且很快對個人項目不感興趣,沒有時間壓力來推動我前進。

如果您的副項目進行 API 調用,以半吸引人的方式顯示信息,並且您從該過程中學到了一些東西,並且將項目構建成更大的應用程序不適合您的神經病學,您的護理時間表,或者你的口味,那就給自己放個假吧。 你不會因為素描而嘲笑藝術家,如果你的副項目是半成形的突變體,只要你從這個過程中得到一些東西,你當然不應該感到難過。 我的 GitHub 存儲庫是對逝去的好想法的輓歌,我已經接受了它。

圍捕

鑑於目前的世界狀況,我最不想成為的另一個聲音是要求鎖定期間的生產力。 這不是它的目的。 當我需要隨著時間的推移學習時,這些只是對我有用的步驟,不會讓自己筋疲力盡或給自己施加過大的壓力。 如果他們為你工作,那就太好了。 如果沒有,不用擔心。 我們都有自己的節奏。

腳步

  1. 使用工作規範來確定關鍵技能。
  2. 在工作學習和你自己的時間學習之間分配這些技能。
  3. 設定清晰、可衡量、切合實際的目標,只有在你找到自己的節奏後才能提高它們。
  4. 找一個導師或夥伴,這樣你就可以為這些目標負責。
  5. 放鬆! 亂學總比不學好。

有用的資源

  • 烏迪米
  • 面試蛋糕
  • CS50
  • 執行程序
  • 編碼教練
  • 切換
  • #CodeNewbie
  • Smashing Mag 的在線研討會
  • 自由代碼營
  • 前端大師
  • 確實
  • 監護人工作
  • 領英

祝你好運!