0%

五個月成為 JavaScript 工程師的完整攻略,每個月要幹嘛都寫出來讓你照著做!

"TAll mankind are beholden to him that is kind to the good。行善者,人人銘記之。"

轉載

如果你是一個初學者,初級開發人員,或者對這個行業很好奇,這篇文章就是為你準備的。如果你是一個成熟的開發者​​,你可能會在這裡找到一些有用的連結,因為我列出了最好的資源,能給你的技能提升帶來巨大好處。

利用在線課程和大多數免費工具,你可以獲得一項有價值的技能,讓你在一個有回報、充滿挑戰的行業中工作。未來,需要有技術素養的人的工作領域將會越來越多。這也是我第一次進入這個行業的原因。我想要控制自己的生活,並對自己從事什麼類型的工作有發言權。直到今天,我還在堅持自己的觀點:如果這是你的目標,這是一個最好的行業。

1
重要提示:這篇文章看起來可能像是指導你一步一步成為開發者的指南,但如果你仔細觀察,這背後有一種你可以應用於任何領域學習的策略。

為什麼要學 coding?

在我們進入真正成為一名開發者的步驟之前,必須要先了解一下為什麼你要沿著這條路走下去。每一個需要你付出生命中重要時間的決定都應該是合理。畢竟,時間是我們擁有的最重要的資源:

A、你想要在這個行業中工作,在這個行業裡,對技能的需求很大,而且有很多機會成為食物鏈頂端的非常重要的角色。

B、你喜歡獨立。你想要一種能讓你在世界上任何地方都能輕鬆找到工作的技能。如果你決定明天搬到冰島去,你想確保在找工作方面不會遇到麻煩。

C、你已經注意到了 2003 年和 2020 年之間的區別,以及我們在短短 17 年裡取得的技術進步有多大。你想處於一個影響世界進程的行業的最前沿。

D、過去幾年,最大的行業增長是在加密貨幣(比特幣)和人工智能(機器學習)領域。我們不希望在這些事情在未來佔據主流的時候被拋在身後。你想要了解並且能夠掌握這些技能。

E、你認為改變是好的,學習永無止境。那麼為什麼不做點新東西呢?

但我沒有計算機科學學位,我甚至不知道互聯網是如何運作的!別擔心,我們會考慮到這一點的。

當你選擇一條新的職業道路時,這裡有一些不錯/必須的衡量指標:

1、在接下來的 10 多年裡,它必須是有用的。這項技能在未來的許多年裡都應該被重視,來保證你的工作是安全的。

2、對有這種技能的人的需求必須多於供給。行業中技能熟練從業者的數量越少,你對你的工作和你所工作的公司的控制力就會越強。

3、無論你在行業中有多少年的工作經驗,都能獲得高薪。你肯定不希望在過上體面的生活之前,還要在公司的職位晉升上花幾年的時間。

4、一個不需要大學專業學位的行業。你不會想要在開始賺錢之前去讀研究生課程,然後在接下來的 4 年裡負債累累。是的,我認為有比更昂貴的編程訓練營更好的選擇。

5、能夠在最短的時間內趕上行業中表現最好的人。沒有什麼經驗能幫你快速就業?你能以最快的速度縮小與該領域的資深專家之間的差距嗎?

6、它必須能夠給你提供基礎技能。無論未來如何,你都有多種職業可以選擇。例如,通過學習編程,你就能更好地理解新的或即將到來的技術,比如分佈式應用、區塊鍊和雲計算,然後選擇你想要進入的領域。

7、要開心。最重要的是,你每週都要工作 40 個小時。你當然不希望是枯燥乏味的。

根據我的經驗,coding 符合上面的每一個要點。你的經歷可能會有所不同。我最喜歡的一本書是《太好了,他們不能忽視你》(So Good They Can’t Ignore You)。在書中,他們認為你不應該因為喜歡旅遊就去從事旅行行業。大多數人都是通過奮鬥和努力去掌握一項技能來找到激情的。一旦人們開始承認你的技能有價值,並且你能夠因為這些技能而感到受尊重,那就是你對你所做的事情產生激情的時候。

你想自己評估一下,看看它是否適合你。

重要的一點是:記住,前 2 個月你會覺得自己在攀登一座無法翻越的高山。你學習的每一門教程或課程都會讓你覺得自己是世界上唯一一個不懂這些東西的人。保持堅強。隨著時間的推移,你會有越來越多的「會心」時刻。我們稱之為冒名頂替綜合徵(Imposter Syndrome):你覺得自己是唯一一個不知道這個信息的人,你被自我懷疑所包圍。請放心,當我們學習新東西時,我們都會有這樣的感覺。

你會學到的是,成為一個優秀的開發人員並不一定要記住一大堆文檔。這是關於如何使用所有可用的工具來解決問題。這是一個解決問題的方法,從不知道的狀態變為可能。

我是誰,你為什麼要聽我的?

這個問題非常直接,但我想這是公平的。首先,我是一名資深的軟件開發人員,曾在包括矽谷在內的一些頂尖科技公司工作過。在我的職業生涯中,我一直很幸運,今年,我將幫助其他人學習軟件技能。但我並不是天生的電腦奇才。我沒有獲得計算機科學專業的學位。

這一切都是在多年前開始的 .. …我想要轉行,於是決定自學計算機編程。

第一個月,我迴避了所有的教程或書籍。相反,我用這個月的時間來尋找我怎麼去學習以及怎麼有可能獲得工作的最佳方式。我想要高效率,不浪費時間去學習過時的技術,或者學習一些我在一個月後就會忘記的東西。我研究了其他人的經歷,看了招聘啟事,與知名的開發者交流,查閱了在線課程,研究了訓練營,甚至閱讀了未來學家介紹 20 年後我們將會使用哪些技術的文章。基於這些,我為自己制定了一個專注於效率的課程:在最短的時間內能被雇傭的關鍵學習量。

課程的重點不在於做最少的工作。相反,它的重點是在最重要的事情上努力工作,以便以最優的方式進行工作。這並不意味者要做最低限度的工作,也不意味著要為成為一名初級開發人員而努力。如果你能夠通過努力工作,跳過這個過程,直接進入中級開發者的角色,那將是一個更好的結果。幸運的是,我已經篩選過了所有的東西。

儘管我花了一個月的時間來對我的學習進行規劃,而不是直接開始學習,但從長遠來看,這是非常有用的,因為我並沒有盲目。我知道我要去哪裡,我有一張通往終點的線路圖。你也會有。

所以,是的,我一直都能理解你的處境,也知道你真正需要些什麼。當我開始學習的時候,我希望能有這樣的東西給我提供幫助。我還發現,許多教程都是由行業內的資深人士來教授的,他們擁有大量的技術知識,但卻無法正確地把這些知識教授給新手。我對當前市面上存在的大量的教學課程與視頻進行了研究,而且還在進行中。

從那以後,我開始為財富 500 強科技公司提供諮詢,召開編程研討會,為即將出版的科技書籍提供諮詢,並出席技術交流活動。我現在不需要為任何人工作。我熱愛這個職業,我想很多人會喜歡它,也會從中受益。因此,我的使命就是幫助那些想要實現這一飛躍的人。

好吧,最後一句話有點戲劇性 ……。

我們要學什麼語言?

1
JS

對,上面這個。

你將會成為一個 Javascript「忍者」的原因如下:

Javascript 無處不在。每個擁有網站或應用程序的公司都需要具備 Javascript 知識的人。這種語言是大量招聘信息的必備條件(如果你不信,可以在 LinkedIn 上搜索 Javascript 看看)。

通過引入 Node.js,你可以使用 Javascript 創建一個完整的應用程序(你可以使用 Javascript 來構建整個項目)。使用 ElectronReact Native 等工具,Javascript 可以讓你創建桌面應用程序,移動應用程序,Web 應用程序甚至 VR 應用程序。你可以通過使用像 Jonny-Five 這樣的東西來控制機器人。你可以建立自己的區塊鏈Lisk 是一個類似於以太坊的平台,使用的就是 JavaScript。

如果您沒有閱讀第一個要點,並且正在考慮其他問題,請允許我再重申一遍:行業中對 Javascript 專家的需求是巨大的。每週都會有招聘人員和獵頭與相關開發人員進行聯繫,這種情況並不少見。

Javascript 社區正以驚人的速度增長。這個社區有很多新的發展。有些人抱怨 Javascript 疲勞,因為每天都有越來越多的新工具被開發出來。然而,我們可以利用這一點,使其變成你的優勢。你將會和那些在這個行業工作多年的人同時學習這些新技術。

相信我,這是一個很棒的技術,有很多需求,也有一個偉大的社區。如果你不相信我,這裡有一個趨勢開發者技能分析

夠了,讓我們開始吧。在下面,你會找到我認為的最適合你的東西,讓你能夠充分利用自己的時間。在 5 個月後,你應該能夠獲得第一個真正的非入門級的編程工作。這個過程,不需要參加編程訓練營。只有你和你的決心。

5 個月,一步一個腳印

我們將專注於在 2018 年最被人需要且最有可能找到工作的技能。像 PHP 或 jQuery 這樣的技術已經過時了。它們沒有任何問題,我完全尊重它們,但根據這些年我收到的一些電子郵件,很多使用這些技術的人都在經濟上遇到了困難,而且有家人需要他們支持。時間對他們來說很重要,他們也希望盡快找到工作。

第一個月:大場面

要回答的一個大問題是:電腦、互聯網和網站是如何運作的?我怎樣才能建立一個網站?

一、理解費曼技巧(Feynman technique),這樣你在接下來的 5 個月裡就能真正學到東西,而不是只使用短期記憶。

二、互聯網是如何運作的:這個來自LearnCode.academy,這個來自thenewboston。

三、計算機科學的最佳概述:計算機科學速成課

四、你可以在 Youtube 上關注這門哈佛課程。這可能是最有含金量的計算機科學課程。不需要做練習。

五、如何使用命令行:這個來自於 Zed Shaw

六、如何建立一個網站/獲得一個域/並讓它運行: LearnCode.academy 視頻

七、HTML、CSS 和 Javascript 是如何組合在一起的:FrontendMasters 的網頁開發課程。只涉及到 Javascript 的部分。

八、學會用 Bootstrap 建立網站。先從這個開始,然後轉到 Bootstrap 4文檔,並添加你在樣板網站上看到的組件。了解它提供的好處 vs.自己編寫 CSS。

九、了解如何使用模板來使用免費主題和模板來構建網站。

十、如果你有時間,你可以在 freeCodeCamp 上參加一些關於 HTML 和 CSS 部分的課程。

第二個月:Javascript

要回答的一個大問題是:Javascript 如何讓機器做你想做的事情?

一、這是你在接下來的幾個月里關注的重點。Javascript 解決了什麼問題?開始用 Javascript 編寫小的程序,讓你的網站以某種方式運行。這種語言能讓你的網站除了看起來漂亮之外,還能做其他事情。從這兩門課程開始:

二、閱讀 Eloquent Javascript 書。

三、了解DOM(Document Object Model,文檔對像模型)操作。

四、閱讀這篇關於編程的好文章

五、了解如何使用 Chrome 開發者控制台編寫 javascript。做這個 CodeSchool 課程(只有控制台部分)。然後學習在 html 中註入