年過四十、零基礎學編程,我是如何從教師轉行程序員的?

編者按:也許你已經清楚了自己的興趣之所在,但是卻沒有勇氣開始它,或者為自己找了種種借口,按下心中的渴望。但任何時候開始自己感興趣的東西都不算晚,本文作者過去只是一名老師,對編程懷有好奇和熱愛,年過40依然毅然決然堅持不懈地學習,最終成為了一名程序員,找到了自己熱愛的工作。從作者的經驗中,我們應該能學到很多東西。本文作者Syk Houdeib,原文標題How I switched careers and got a developer job in 10 months: a true story

我打算談談自己40歲的時候是怎麼從零基礎開始學習然後轉入前端網頁開發領域的。我全靠工作之餘的自學,基本沒花錢。

我坐在馬德里市中心的一家咖啡館裡,外面下着雨,我一邊喝着咖啡,一邊敲着筆記本電腦。過一會兒,我將開始自己作為前端網頁開發人員的第一天。10個月前,我還是一名英語老師,對編程一竅不通。想知道是怎麼發生的嗎?

幾個月前,我寫下了這些激動人心的話,來吧,一起看看我是怎麼做到的。

需要什麼潛質嗎?

如果我只是剛開始考慮做一名開發人員,那麼我會帶着一點懷疑的態度來閱讀這篇文章。因為我會從作者的背景中尋找他們有沒有成為開發人員的潛質。

然後後來我明白了,成為一名開發人員不需要什麼潛質。當然我也不會說這條路很好走,因為它確實不好走。但好消息是,只要你願意努力工作,學習很多東西,並且持之以恆,就完全可以實現當一名開發人員的夢想。當你覺得自己不適合做這件事的時候,你需要說服自己振作起來。這就是你需要做到的事情,僅此而已。

我是零基礎學起的,沒有花錢報什麼課程,因為我已經夠忙的了。雖然每個人的情況都不一樣,但我知道,如果你用心去做就能做到。

零基礎學起

我說了我是零基礎,在此之前我從來沒有接觸過編程。我早年從事餐飲業,後來我獲得了音樂學位,之後又在西班牙當了十年的ESL老師。我對電腦甚至不是特別熟練,但我確實對最新的科技創意十分着迷,而且認為程序員就像是超級英雄一般的存在。

不過,我從來沒有想過自己有朝一日也從事這個行業。部分原因是我認為編程是個高大上的活兒,是那些從頂級(而且昂貴)大學畢業的天才們才能從事的。雖然這樣的人確實存在,但大多數開發者並不是電影里看到的那樣,所以,做一名程序員比我想象的要容易得多。

緣起

這一切都始於我和妻子的一次對話。她正在研究為什麼在STEM和科技行業的女性人數那麼少。然後她決定成為一名程序員,然後很快就投入了學習。

這讓我也興奮了起來,因為我們意識到有很多可用的資源。這不是什麼魔法,而是一種我們可以學習和掌握的技能。

有一天,我們在科學博物館裡發現了一本關於編程的兒童讀物。我們回到家打開電腦,按照上面的指示,通過簡單的操作使文字改變顏色,然後激動得尖叫起來,因為我們覺得實在是太神奇了。

我完全被迷住了,這促使我下定決心學習編程。

我原來的工作

那時我已經當了8年的老師了,但我依然非常熱愛教學工作,喜歡和孩子們在一起。一言以蔽之,這份工作非常令人滿意。

但有時候,即使你有所不舍,也要知道是時候繼續前進了。這是我生命中的新階段,我有了新的願望。最重要的是,這也是個能讓我走出舒適區的新挑戰。

通往成功之路是什麼樣的?

沒有一條放諸四海而皆準的成功之路。每個人的學習方法都不一樣,都要找到對自己有用的方法。如果非要找到什麼共同點的話,那就是咬緊牙關,堅持不懈。

因此,我告訴你們的辦法不是唯一的方法,也不是最好的方法,只是對我有用的辦法而已。

開始學習

首先,我開始觀看編程的教學視頻,弄清楚了該怎麼開始。然後我開始學着怎麼用HTML和CSS。我按照教程的要求編寫代碼,建立起一些基本的頁面。在這個過程中,我意識到這是我真正感興趣的事情。

制定目標很重要

我向兩個程序員朋友尋求建議和幫助。他們那些鼓勵和引導我的話語對於後來的成功和找到明確的目標至關重要。

我花了一些時間研究情況,設定了對我來說可能實現的目標。除了教學之外我沒有其他的收入來源,這意味着我在換工作之前不能失業。

我認為前端網頁開發工作是最容易學習和最受歡迎的工作。我進一步縮小了範圍,把重點放在了創業所需的技能上,而不是走自由職業路線。

然後我設定了最後期限。我可不想到頭來一事無成,得過且過。當時是2017年的春天,所以我向自己保證,到2018年9月,一年多以後,我必須換工作。

但是如果假裝在這個階段一切都在我的控制之下,那我未免太天真了。說實話,我在當時和後來的整個過程中都有各種各樣的懷疑,但關鍵就是堅持。一旦我做出了什麼決定,我就會沿着這條路走下去。

學習過程

我知道,想要進步,唯一的辦法就是學習。我有一份全職工作,所以等到「有時間」了再做決定是不可能的。我很幸運,因為我和妻子的學習時間是一致的。這有助於我們安排好每天的學習時間。起初,我們會把整個周末都花在編程上。我們比較典型的學習計劃如下:

8:00 am:起床

8:30 am:開始編程

12:30 pm:活動

1:30 pm:吃午飯,休息

3:00/4:00 pm:繼續編程

8:00/11:00 pm:結束一天的工作

然後就到了暑假,我充分利用了這段時間,儘管我很想好好享受這個夏天,放鬆一下,但我還是堅持了下來,每天都認真學習。

然後一眨眼就到了九月,我又開始了學校的工作。我有意識地減少工作時間,選擇用更少的收入來換取更多的學習時間,這樣一來,我就更加認真地學習了。

你可能很難想象我與代碼有多麼難捨難分。我最想做的事就是坐在我的電腦前學呀學呀學呀。但生活還是得繼續。每年9月份都是新學年的開始,這就意味着你投入需要大量的時間來準備,往往還要從私人時間中抽出一部分來。

當時我真的非常焦慮。儘管盡了最大的努力,但我花在編程上的時間卻越來越少。我開始失去動力。我想盡辦法試着堅持下去,但有時根本沒有時間。即使有最好的意圖和動機,生活也會使事情變得複雜。

你看,我十月份編程計劃的完成狀況相當令人失望

但是,也正如上圖顯示的,我一直在嘗試,在努力。我不斷地想要擠出時間,哪怕是一個小時也好。我做了所有能做的事情,希望自己不要失去動力,希望自己咬牙堅持。我希望這對你有啟示作用:因為一旦你離開某樣東西的時間足夠長,要想再撿起來的難度就相當大了。

然後,事件逐漸推移,12月慢慢近了。眼看着新的一年就要來臨了,我的最後期限也臨近了,我又振作了起來,整個生活也開始有了計劃。我開始努力工作,不管我有多累,也不管我的時間有多少。我把所有的空閑時間都投入到了編程的學習中,有時候我會早起,有時候我會熬夜,但都是想盡辦法多擠出一些時間。

這就意味着我的生活幾乎淪落到只有工作和學習——而且工作也只是到薪酬能付房租就行,剩下的時間全給了編程。我基本上一直保持着這種節奏,直到我開始收拾行裝去馬德里的那一天。那是在2018年春天,離我當時定下的最後期限還有幾個月。

工具和資源

說實話,現在回過頭看去,我當時真的是全身心投入到與編程相關的一切事情中。我在Twitter上最常被問到的問題是我當時學習用的是什麼資源。雖然這個就又得開一篇文章仔細講講了,但是我覺得有必要列出一些最重要的工具和資源給大家。

課程

  • freeCodeCamp.org

  • Cassidy Williams 和 Colt Steele 的 Udemy 課程

  • Wes Bos』 JavaScript 30 以及其他課程

  • YouTube:Traversy Media,LevelUpTuts

  • Christina Truong』s Lynda.com的課程

  • Udacity Front-End Nanodegree(付費課程,但說出來你可能不信,我再谷歌上還獲得了一個學位)

但這些課程還不夠,所以我又補充了一些課程,這些課程不僅能拓展你的學習深度和廣度,還能在你找工作的時候助你一臂之力。

  • Twitter:這是奠定了我學習基礎的地方。我從這裡獲得了令人難以置信的支持,強烈推薦#100DaysOfCode社區,非常暖人。

  • GitHub:這是個非常重要的學習之處,而且僱主通常首先在這兒看到你的作品。

  • Portfolio:我在這裡通過各種自主項目學會了最重要的開發技能。

找到工作

令人驚訝的是,這個過程比我想象中要簡單很多。我沒有四處投簡歷,每天把大量的時間花在篩選上。相反,我選擇了專註於幾家公司。

最後我收到了五家公司的面試通知。很不幸,我被其中的兩家拒絕了。但另外三家都被我拿下了。三家公司的offer中,我覺得有一個完全不合適我,而且也沒有什麼吸引力。另外兩個offer的工作崗位都挺有意思。後來,我在這兩個中選擇了一個。

但我並不是說當時找工作的時候我真的心如止水。現在想來,當時確實是段很緊張的時光。我其實並不清楚自己的技能是否達到了市場的要求。我甚至不確定自己是否會因為經驗不足而被各方嘲笑。雖然當時挺傷腦筋的,但我不得不說,整個找工作的過程其實還是很激動人心而且充滿希望的。當我終於發現自己有兩份真正適合的offer擺在桌上時,我欣喜若狂,差點以為自己在做夢。

我會永遠感激那些給我機會決定錄取我的人。

這兩家公司的面試流程完全不同。其中一家是通過視頻電話與公司里各種各樣的人進行交談。這家公司是一家規模雖小但信譽卓著的公司,希望建立一個全新的前端網頁開發團隊。幾個星期來來回回下來,他們給了我第一次真正實現夢想的機會。

另一家公司是一家處於高速增長中的年輕創業企業。在一次電話面試后,我收到了一份技能考核(需要在幾天內完成),這份考核涉及到組件構建、進行API調用和顯示正確的信息。然後又是視頻面試,內容是關於我的編程結果。然後我被邀請和技術團隊見個面,喝杯下午茶。在那之後,我被告知,可以作為前端網頁開發初級人員加入公司。

最後我不得不做出選擇,我知道自己想要什麼,所以我接受了這家創業公司的邀請。為什麼呢,因為我在這家公司能夠獲得成長和學習的機會,這是關鍵所在。我堅信這絕對是正確的選擇。

就這樣,在馬德里的那個雨天,喝完咖啡后,我走進一間辦公室,向大家介紹自己是新來的的前端網頁開發人員,然後開始了自己新的職業生涯。

編譯組出品,編輯:郝鵬程


想在手機閱讀更多程式設計資訊?下載【香港矽谷】Android應用
分享到Facebook
技術平台: Nasthon Systems