如何學習Fullstack開發。圖表中的路線圖

你是否應該專一於全棧?"_。前端

若是你想把學習做爲你的職業,請關注全棧。react

全棧開發人員將不斷髮展的軟件世界視爲機會,而不是威脅。他們利用現代語言和新框架。他們不斷髮展本身的各類技能。他們就像技術自己同樣前沿。git

全棧開發人員可以適應。每一個公司都有一個獨特的堆棧,在前端和/或後端有不一樣的挑戰。所以,應用多樣化技能組合的能力使得全棧開發人員真正有價值。算法

最後,全棧開發人員利用了軟件中最使人興奮的部分:探索未知。若是你第一百次都在編碼相同的解決方案,工做就會很無聊。但全棧開發者永遠有機會深刻到新的問題空間。數據庫


若是你是一個新人,你從哪裏開始?編程

本文中的圖表追蹤了你如何成爲一名全棧開發者。它列出了你須要學習的技術。請注意,時間估計是基於我的經驗,以及個人同事的經驗。另外,估計值假設你天天投入2-3個小時來學習。若是你能夠投入更多或更少的時間,請調整估計值。後端

即便你頗有經驗,你也會發現這個圖表頗有用。看看你的落腳點並跟蹤你的進度。不管是哪一種方式,不管是新手仍是有經驗的人,在圖表結束時,均可以認爲本身是一個全棧開發者。🏆瀏覽器

前端(約5個月)

HTML/CSS(1周以上)服務器

從學習網絡的構件開始。你必須學習超文本標記語言(HTML)。它是用來構建網站的語法。幸運的是,它是列表中較快學會的技術之一。網絡

接下來,你有層疊樣式表(CSS)。學習這個主要是經過實驗來完成。一旦你學會了基礎知識,包括flexbox,就不要花太多時間進一步挖掘。你能夠在其餘項目中必要的時候學習其餘的CSS細節。

JavaScript (1 month+)

Image for post

你的不少時間將被用來學習JavaScript編程語言。JavaScript可讓你的網站變成動態的網絡應用。

JavaScript是一個必不可少的檢查點。幸運的是,有大量的資源能夠用來加緊學習JavaScript。但仍然要注意專一於基礎知識。將中級和高級概念留到之後再學。隨着學習的深刻,它們會變得不那麼混亂/使人沮喪。

Image for post

框架(2個月以上)

當你使用JavaScript的勢頭愈來愈好的時候,請學習一個JS框架。一個框架可讓你重用經常使用功能,更快地實現大型應用。

有幾個選擇。React,Angular,Vue,等等。在我看來,要學的是React.js.,它既對初學者友好,又受到不少有經驗的開發者的喜好。

這並非說你應該徹底忽略Angular和Vue。至少要讀懂它們,知道它們與React的區別。甚至作一兩個教程。

但你的時間是一種資源。我會把大部分時間用在React上。

Image for post

相關的前端概念(1個月以上)

測試(2周以上)

毋庸置疑,可靠的軟件公司都會測試他們的代碼。所以,一個全棧開發人員應該熟悉測試實踐和庫。既然你懂JavaScript和React,那麼Jest和Enzyme就是不錯的選擇。

Redux (2 weeks+)

Image for post

若是你在學習React,就沒法避免Redux。的確,它們是不一樣的概念。React是呈現層。Redux管理的是內部數據。然而,將Redux與React一塊兒應用已經成爲業界的標準。

Image for post

相關軟件概念(約1個月)

儘可能將如下概念儘快融入到學習過程當中。

HTTP和客戶端-服務器架構(2周以上)

一個全棧開發人員應該知道數據是如何在萬維網上進行通訊的。在HTTP中,函數遵循請求和響應模式。它是這樣的。一臺計算機做爲客戶端。客戶端使用Web瀏覽器向服務器發送HTTP請求。服務器,也就是另外一臺計算機,用HTML和CSS等資源來響應客戶端。

我建議創建一個向公共API發出請求的項目,讓你對HTTP髒手。

Git (1 week+)

Image for post

儘快學習Git。Git是一個版本控制系統,用於跟蹤倉庫(軟件項目)中的變化。你能夠把它當作是有版本的Google Drive。你能夠與他人共享倉庫。文件有多個貢獻者。但在Git中,你能夠擁有項目倉庫的分支,用於替代版本。Commits 記錄了添加、更新或刪除文件的確切時間。而這僅僅是它功能的開始(小貼士:git reflog是一個祕密武器)。

此外,其餘軟件工程師和招聘人員也會但願在Github上看到你的做品。

後臺(約3個月)

Node.js(1個月以上)

利用你的JavaScript經驗,在後端探索Node.js。將其與 Express.js 中間件一塊兒使用,構建您本身的 API。Node.js在基於聊天的應用和流媒體方面大放異彩。利用這些優點,嘗試構建一個Facebook Messenger/WhatsApp克隆。

就像你第一次接觸JavaScript同樣,Node.js會顯得很龐大。有大量的資源是很好的。但若是你不知道從哪裏開始就不行了。專一於基礎教程,天然而然地提高水平。

SQL和關係型數據庫(1.5個月以上)

你不能忽視SQL和關係模型。後臺的一個基本方面是數據存儲。結構化查詢語言(SQL)是使用最普遍的語言,以協調如何讀取、寫入和更新數據。學習關係模型。這是MySQL、PostgreSQL和Oracle等工業標準關係數據庫系統背後的概念。

當你在學習Node.js的時候,你會遇到不少MongoDB的教程。MongoDB是一個NoSQL數據庫--關係型數據庫系統的替代品。當心,只關注MongoDB可能很誘人。如今,瞭解一下NoSQL數據庫和語言是很好的。也要了解它們的優點/劣勢。但不要跳過SQL,也不要跳過關係模型。它們在行業中的應用如此普遍。你最終會遇到它們。

Image for post

🍾🍾🏆🍾🍾

就這樣,你已經完成了圖表!開香檳吧! 派對就像你5歲生日時同樣熱鬧!那麼,在這種狀況下,香檳多是不合適的... ...

不管如何,蛋糕來一塊吃起來。你是一個全棧開發者。

可是,它並無中止在這裏... ...

超越

一個將全部內容整合在一塊兒的項目(2周以上)

你有全棧技術。但願你一直在積累做品集。可是爲了幫助你,真的很難在網上找到一個將全部全棧概念聯繫在一塊兒的教程。你得本身去拼湊一個項目。

因此我創建了一個課程來解決這個問題。到最後,你的做品集裏會有一個全棧項目。其重點是React.js、Redux、Node.js和PostgreSQL。它還關注那些能讓你脫穎而出的小細節:代碼設計的最佳實踐,以及方法命名。

Master Full-Stack Development | Node, SQL, React, and More

Image for post

計算機科學(5個月以上)

一個全棧開發人員也應該懂計算機科學。是的,從時間估算上看,大學四年的時間確實能夠歸結爲五個月。那是否是說拿到CS學位就沒有意義了呢?固然不是,得到計算機科學學位是一項巨大的投資。你能夠和許多聰明的人創建聯繫。並且你還能夠探索你可能感興趣的其餘工程課題。

但那些在行業中當即適用的東西--數據結構和算法、操做系統和軟件開發原理--能夠在高度集中的五個月內完成。

個人不少同事都是非CS專業畢業的(有的甚至是非科學專業)。他們要麼自學,要麼上過訓練營。

其餘語言/技術全棧(正在進行)

正如一開始提到的,全棧開發者在未知中茁壯成長。學習的過程是持續的。一旦你在一種技術上變得很危險,是時候把它的競爭對手/替代品添加到你的工具箱中了。用另外一個JS框架(如Vue.js)構建一兩個項目。開始探索NoSQL數據庫,好比Redis。

真正讓本身脫穎而出的方法是瞭解每種技術的優點/劣勢。知道何時最好使用Node.js,與何時應該使用Go或Scala。

瞭解語言的哪些部分值得稱讚。_知道哪些部分值得抱怨。

最終,若是你想把學習做爲你的職業,請專一於全棧開發。


David是舊金山Zendesk的全棧開發人員和軟件工程師。他喜歡製做教育內容。他有17門課程,有來自世界各地的約20萬名學生。看看他們吧 https://www.udemy.com/user/54cd8dd54e49b/

Highlights:

Master Full-Stack Development | Node, SQL, React, and More

Build a Blockchain and a Cryptocurrency from Scratch

React — Mastering Test and Behavior Driven Development

Also, feel free to connect with David by finding his social media links on davidtkatz.com

相關文章
相關標籤/搜索