我的自學程式設計之路丨一位 freeCodeCamp.org 全職開發者的分享

freeCodeCamp發表於2019-04-02

原文:chinese.freecodecamp.org/forum/t/top…

本文作者 Beau Carnes,曾經是一名 K-12 老師,目前是 freeCodeCamp.org 的一名全職開發者,主要負責製作或管理 freeCodeCamp Youtube 頻道的大量程式設計視訊教程。這篇文章記錄了他在作為 K-12 老師全職工作並且作為兩個孩子的父親的狀態下,如何在一年時間內獲得第二學位以及 5 個開發者證照。

“標準的節奏是為愚者設計的——系統這麼設計是為了讓任何人都跟得上。如果你比“任何人”更有動力——那麼你的成就會大大超出任何人的預期。不僅僅在學校裡是如此,生活的方方面面都是如此。” ——Derek Sivers, CD Baby 創始人

我的自學程式設計之路丨一位 freeCodeCamp.org 全職開發者的分享

學習程式設計是一件具有挑戰性的事情——特別是當你已經成家,有了小孩兒,還有一份工作的時候。儘管如此,我還是認為我的人生不應該是標準的節奏。

我寫這篇文章的目的不是為了吹噓——儘管我對這些成就感到非常自豪。我只是希望讓讀這篇文章的人也相信自己的人生可以有所不同。

在過去的一年中,我做了很多事情。我獲得了兩個 Oracle Java 證照,兩個 CompTia 證照和freeCodeCamp 前端證照。大多數人獲得其中一個證照都得準備好幾個月,但是我每花三個星期就拿到一個證照。

此外,我在不到六個月的時間內學習了軟體開發課程,從一所正規大學獲得第二學位。

我在完成這些事情的同時依然保持全職工作,經常與我的妻子和兩個小孩相處,並且在我的社群做志願者。

有一位了不起的另一半在身邊支援我,是我達成這些成績的關鍵因素之一。 ?

當然還有些其他因素。

是什麼驅使著我?

我曾是一名 K-12 老師,在學校待了五年之後,我意識到我不想以後也都待在學校上課。

我喜歡上課,但我不喜歡強迫孩子們去做他們不喜歡的事情——而這,不可避免也是我工作的一部分。

我所在的城區學校的課堂管理非常緊張,我對整個教學體系也感到失望。我們似乎正在培養學生未來被人工智慧取代。

我一直對程式設計感興趣,甚至有時用 Scratch 和 Code.org 教我的學生們基本的程式設計知識。我覺得是時候全面學習程式設計,並且以此作為我的全職工作了。

想換工作就是我的驅動力。在學校上課的每一天都激發我不斷向自己的目標前進。

反覆調研

一定不要急於開始學習。學校或學習資源數量繁多,質量也參差不齊。一旦選擇失誤,你會在達成目標的過程中走不少彎路。

我試著確定哪種學習方法最適合我和我的家人。雖然我知道有很多方法可以進入科技行業,但我決定採用一種傳統的方式:讀一個學士學位。我知道我已經學過一些課程,可以轉入新課程。我調研了許多學校,最終選擇西部州長大學,原因如下:

  • 可以線上讀學位,所以我不需要在交通上花時間。

  • 可以自主安排學習節奏,所以我知道我可以很快完成所有課程。只要完成一門課的所有作業和考試,就可以立即進入下一堂課。

  • 學費很低——六個月的課程大概花 3000 美元。

  • 這是一所廣受認可的大學,奧巴馬總統和比爾蓋茲都推薦過它。

  • 讀完這個學位可以獲得行業認可的證照,會為我的教育背景加分。

設定遠大目標

起初,我的目標是在一年內讀完這個學位。經過一個月的學習,我決定把時間週期改為六個月。

我快速學完這些課程的方法是:規劃完成每節課程的具體日期,確保在六個月內完成。

我根據課程要求為每節課程安排一到三週的學習時間。我當時還制定瞭如何很快完成每節課的計劃。在整個學習過程中,設定很多子目標可以幫助我始終保持好的節奏,這是非常棒的。

我的自學程式設計之路丨一位 freeCodeCamp.org 全職開發者的分享
上圖是我的部分學習計劃。

設定遠大目標非常重要,幫助我自我驅動。 《消費者研究期刊》的一項研究表明,遠大目標讓人們更快樂。我最終都達到了我為自己設定的最後期限或者提前完成,這讓我非常開心!

詳細時間表

我建立了詳細的每週時間表,以保證在花大量時間學習的同時能夠兼顧我的家庭和其他事情。我安排了家庭聚會時間,志願服務時間,朋友聚會時間,以及每週約會之夜!

我的自學程式設計之路丨一位 freeCodeCamp.org 全職開發者的分享
上圖是我剛開始學習時列的日程表,現在的日程表更加詳細了。

詳細時間表幫助我保持生活的平衡。但是,有一件事我沒有安排進我的日程: 看電視

在讀學位期間,我只看了三集電視劇。為了實現目標,我的時間表排得非常緊,所以我沒有時間看電視。另外,花時間看電視就意味著陪伴家人的時間減少了。自從畢業之後,我一直都限制自己看電視的時間,因此我可以專注程式設計。

為了實現我的目標,我必須放棄一些事情。

忽略那些反對者

西部州長大學為每個學生都安排一名導師。導師每週都會和學生通話,以幫助他們保持正常學習進度。每次我和導師分享我的目標,她都鼓動我把目標調整得更合理一些。而我卻決定把目標設定得更”荒謬“。我知道她是出於好心,但我決定不再理會她的警告並且不再與她分享我的目標。

有時候,我們不需要和某些不會鼓勵反而阻礙我們的人分享目標。

最大化利用時間

除了我預定的學習軟體開發的時間外,我還找到了一些方法進行更多學習。例如,我用了大部分的午休時間來學習。另外,我經常在口袋裡放著筆記本,每當我有空閒時,我都可以檢視。

此外,我也曾(目前仍會)休假幾天來學習課程或者是跟進程式設計專案。在我修學位期間,因為有的課程的考試比較難通過,所以我會休假幾天來保證學習進度。

我總是不斷重新評估我的日程安排,以及如何花時間讓我有更大的效率。

我常常在孩子們睡覺之後程式設計。然而,我發現熬夜太晚,我的大腦有些遲鈍,我就調整了我的睡眠時間表。所以我現在晚上9點左右睡覺,凌晨4點醒來程式設計(以及製作視訊教程)。這樣的方式可能聽起來有點瘋狂,但大大提高了我的工作效率。

學習別人的經驗

我花了很多時間瀏覽我大學的 Reddit 頁面和各種論壇,閱讀其他人分享的對他們的學習有益的方法。有很多資源可以用於輔助修一個行業證照。這些都幫助我更好地計劃最快的路徑。

總會有些人比你先踏上這條路,所以找到這些人並向他們學習是很重要的。

在學習 freeCodeCamp 的課程時,向他人學習也非常有幫助。社群中經驗豐富的人們經常在論壇和社群聊天室中為大家提供幫助或建議。

儘管交付!

我的自學程式設計之路丨一位 freeCodeCamp.org 全職開發者的分享

交付的意思是把一個完整的產品發出去。

我常常會考慮我是否需要花更多的時間在專案上或學習上。然後我就發現如果我想趕在自己設定的最後期限之前交付的話,我並沒有那麼多時間。

往往是我覺得自己有十足把握之前,就到了最後期限,那我也不得不交付。這當然是有好處的。

我發現把專案交付出去比力求使其完美更加重要。如果你想做到盡善盡美,那你可能永遠都完成不了。即便你還有些猶豫,也儘管交付吧!

二八原則

我的自學程式設計之路丨一位 freeCodeCamp.org 全職開發者的分享
二八原則的意思是,對很多事件來說,80% 的產出來自 20% 最關鍵的行動。在學習軟體開發時,這意味著之後實際使用的大約 80% 都是 20% 的學習內容。如果你專注於這 20%,你可以節省很多時間。

對於我的學位來說,我只閱讀了所要求內容的 20-30%。根據二八規則,這足以理解這門學科超過 80% 的內容。

訣竅在於需要確定關注哪 20%。我經常這麼會問自己,“如果我正在設計試卷,我會採用這些材料嗎?”

真的,在學習任何東西時,你應該問問自己,它是否是 20% 的學習內容,可以帶給你 80% 的價值。

這就涉及即時資訊的概念。學習一些你不打算在近期使用的東西通常是沒有好處的,特別是如果你也跟我一樣記憶力差勁的話。我只會學習我當下所做專案所需要的知識。

你的老闆通常更關心你所做專案的結果,而不是你學習程式設計的過程。牢記這一點有利於你決定如何最好地利用你的時間。

不斷往前推進

在完成學位之後,我也沒有懈怠,而是繼續學習。我意識到做專案的重要性,所以我直接開始在 freeCodeCamp 建立個人專案來製作我的作品集。並且我在修學位時所使用的所有方法都能繼續派上用場。

當我決定開始製作 JavaScript 視訊教程的時候,這些方法也能用得上。現在我幾乎每天都會在freeCodeCamp YouTube 頻道上釋出 JavaScript 視訊教程。

如果你感興趣瞭解我具體是怎麼學習西部州長大學學位的每門課程的,你可以看這篇部落格

我希望我使用的一些方法對你也有幫助,即使你跟我一樣生活忙碌。

請記住:標準的節奏是為愚者設計的,而你可以做得更好!

相關文章