是學習編程或轉行從事軟件工程的最佳時機。業界對Web開發人員的需求達到了歷史最高水平,而且目前還在不斷增長。互聯網上有一些免費教程和收費的高級教程,本文將學習路線圖分解開,詳細介紹了有效學習各部分所需的技能以及相應的教程,大家可以根據自己的需要,選擇最適合自己的方式,學到自己所需的知識和技能。
現在是學習編程或轉行從事軟件工程的最佳時機。業界對Web開發人員的需求達到了歷史最高水平,而且目前還在不斷增長。互聯網上有一些免費的教程和收費的高級教程,教授你作為開發人員得到一份工作所需的技能,不需要計算機科學學位哦。
本文詳細介紹了有效學習所需的技能以及相應的教程。這份配圖指南由KamranAhmed提供,可以在roadmaps.sh或GitHubrepo上找到,Kamran做得很棒,請大家一定要多多支持,在repo上點個星,并訂閱他的時事通訊。大家千萬別被這份路線圖嚇倒,它乍一看可能含有很多內容,讓我將它分解開來,使你可以一步一步地學習每一部分。
本文將在各部分給出一些學習資源的鏈接,其中有免費的,也有收費的,大家可以根據自己的需要,選擇最適合自己的方式,學到自己所需的知識和技能。
本文將分為以下幾個部分:
必經之路,即任何路徑都需要學習的內容:每個開發人員都需要知道的編程概念。
編程入門:如果你完全是一個新手,要從這里開始學起。
前端開發:學習如何構建用戶界面(UI)。
后端開發:學習如何構建API和編寫服務器端代碼。
DevOps工程:學習如何管理基礎設施、部署和系統。
JavaScript和深入編碼:由入門到精通全面學習JS。
軟件工程書籍:在這一部分我將推薦一些書籍,我認為這些書籍對提高我對編程的整體理解很有幫助,并能對工作產生積極的影響。
求職建議:最后奉上一些作為一名開發人員如何找工作和如何不斷發展的小技巧。
每位開發者都需要學習的內容
我們將從每個開發人員都需要學習的技能開始,這些是所有路徑的必經之路,無論是前端、后端還是DevOps。
要成為一名高效的開發人員,你就必須要精通命令行,知道如何使用Git對代碼進行版本控制,并了解Web的基本原理。
命令行是一種運行代碼的方式。你必須能會瀏覽和執行所需的命令。你對命令行掌握得越好,作為開發人員的效率就越高。
VSCode是Web開發人員的首選,這使它成為一個很好上手的工具,我個人用的就是它。它是免費開源的,有大量可以幫你提升效率的插件。除此之外,還有許多其他不錯的選擇,如Atom、WebStorm或Vim(對于硬核用戶來說)。
文本編輯器是編寫代碼的地方,終端是執行代碼的地方。作為一名開發人員,這些地方就是你主要開展工作的地方了。所以,值得花些時間選擇合適的編輯器,設置插件,學習熱鍵。擁有正確的工作流程可以極大地提高你的工作效率。
Git是用于保存代碼和創建不同版本的工具,使你能夠與其他開發人員協作。GitHub是存儲代碼和在開源軟件上進行協作的首選。
在深入探索任何一條路徑之前,你都應該具有堅實的編程基礎。對于新開發人員來說,我強烈建議學習JavaScript作為你的第一語言。JS可以用于前端和后端開發人員,這意味著你可以成為一個全棧開發人員,同時能夠專注于掌握一種語言。JavaScript的好處有:
JavaScript是一種相對容易學習的語言;
構建Web應用程序需要用到JavaScript,因為它是一款在瀏覽器中運行的編程語言;
JavaScript既可用于前端,也可用于后端,它使你能夠使用單獨的一門語言編寫全棧應用程序;
有大量的工作需要JavaScript開發人員來做。
如果很清楚自己要么只想處理數據,要么只處理后端,那么學習Python是另一個適合初學者的選擇。
有許多又免費質量又高的網站可以幫你入門編程,freeCodeCamp和Codecademy是很好的選擇,可以幫你打下基礎。
freecodecamp.org,通過免費在線課程學習代碼、編程項目,以及面試準備……
codecademy.com,學習編程開發所需的基礎技術技能。
一旦你掌握了基礎知識,下一步可以考慮免費的JavaScript30課程或BeginnerJavaScript高級課程。WebBos通過構建真實的項目來教授JavaScript的核心概念。你應該盡可能快地動手去做真正的項目。項目是學習工作技能的最佳途徑,也能讓你在開始準備面試時為自己建立一個作品集。
如果你正在找一門從初學者到專業人士的課程,那么Pluralsight是一個不錯的選擇。如需訂閱,你必須首先注冊一個賬號(免費試用),它們幾乎涵蓋了所有的優質內容。
我們是通過前端開發為網站構建用戶界面的。若要學習前端開發,你必須有堅實的JavaScript基礎,并理解HTML/CSS是如何工作的。
流行的客戶端庫(React、Angular和Vue)都是用JavaScript編寫的。認真了解VanillaJavaScript對于提升水平掌握構建復雜應用程序所需的技能是至關重要的。一旦你有了堅實的JavaScript基礎,就應該學習HTML和CSS了。盡管UI是用JS編寫的,但它在本質上仍然是生成HTML并由CSS定義樣式。
以下學習資源可供選擇:
2020年Web開發訓練營中有完備的網絡開發課程,從HTML和CSS開始入門,學習JavaScript以及它如何與DOM交互,最終構建一個全棧web應用程序。
Web開發人員訓練營中有你需要學習Web開發的HTML、CSS、JS、Node等課程。
如果需要了解JavaScript方面的更多內容,請參閱"編程入門"部分給出的資源。
HTML和CSS
大家通常會把HTML和CSS放在一起學習。HTML是給出結構化頁面骨架的語言,而CSS則是用來定義樣式的語言。
以下學習資源可供選擇:
為初學者準備的HTML和CSS課程,這是為初學者準備的循序漸進的課程,如果想要學習如何創建網頁,但又害怕學不會HTML和CSS,不知道從哪里開始,可以考慮學習一下這個課程。
使用HTML5和CSS3構建快速響應的真實網站,這是一門非常實用、易學的課程。
CSS:完全指南(CSS進階),如果是第一次學習CSS,或者想要復習一下CSS然后深入學習,可以考慮這個課程。
UI類庫(React、Vue、Angular)
現代UI開發越來越趨向于變為一個組件模型,具有3個由專業前端工程師使用的主要類庫——React、Vue和Angular。你最好能有所側重,能夠深入了解這些類庫中的其中一個即可,而不是試圖把這3個都學全。在之后的工作中,如果公司使用了你沒有學過的框架,你能夠借機再去學一些不同的東西。React目前是最流行的,但是Vue和Angular都在被迅速地采用。
以下學習資源可供選擇:
React官方介紹,在里面有一個React的入門教程,本教程假設你不具備任何React知識,通過構建一個小游戲來幫你入門。
React完全指南,這是一門完備的React16的課程(包括鉤子、React路由、Redux),你可以從零開發深入學習React,包括Reactjs、鉤子、Redux、React路由、動畫、Next.js等等。
另外還有ModernReactwithRedux、ReactforBeginners、AdvancedReact+GraphQL等課程可供選擇。
以下學習資源可供選擇:
Vue官方介紹
VueJS2-完備指南(包括Vue路由器和Vuex)
VueJS2終極開發課程,通過使用Vue構建3個專業的、真實的web應用程序來學習和掌握VueJS
VueJS基礎與Vuex和Vue路由,11個小時掌握Vue、Vuex和Vue路由
以下學習資源可供選擇:
Angular8完備指南,掌握Angular(Angular2+,包括Angular8),并使用Angular.js來構建出色的、快速響應的Web應用程序。
完備的Angular課程:初學者進階,全面的Angular4(Angular2+)課程。用Angular、Firebase和Bootstrap構建一個真正的電子商務應用。
學習后端開發
后端,是你與數據庫通信、處理業務邏輯并將必要的數據發送到前端的地方。
你的后端/服務器端可以用任何語言編寫。我的建議是從Node/JavaScript開始,因為它相對容易學習,同時也非常強大。此外,這樣你也可以更容易地在前后端之間進行轉換,因為你的前后端使用的是相同的語言。我還將詳細介紹其他可以用于后端開發的語言的學習——Python、Go、RubyonRails。
使用數據庫是后端工程師的核心工作,我還將概述學習SQL、NoSQL和GraphQL的教程。雖然NoSQL已經變得越來越流行,但到目前為止,SQL仍然是應用最多的數據庫類型,是學習的基礎。
以下學習資源可供選擇:
Node.js開發教程大全(第三版)
NodeJS完全指南(包括MVC,RESTAPI,GraphQL),精通NodeJS,學會用Node.js、GraphQLAPI構建RESTAPI,添加認證,使用MongoDB、SQL,以及更多內容。
學習Node,學習使用Node.js、Express、MongoDB構建應用程序的高級培訓課程。
數據庫
數據庫用于永久保存應用程序的數據。通常,后端會在API調用期間對數據庫進行查詢。SQL和NoSQL是兩種常見的數據庫類型。
PostgreSQL/MySQL
這是兩種最常用的SQL實現,你可能會看到在大多數公司中都使用了它們。
GraphQL
GraphQL本身不是數據庫,而是數據庫之上的查詢語言。許多人認為它將徹底改變應用程序的開發,徹底改變我們構建API的方式。它正在迅速被科技巨頭和頂尖初創公司采用和大力利用。
你可以試試Hasura。它讓你能夠使用Web界面生成GraphQL,并自動為你構建Postgres數據庫。
MongoDB
Mongo是與Node一起使用的最流行的NoSQL數據庫。它將數據存儲在一些很容易映射為JSON和JavaScript對象鍵/值對的文檔中。
以下學習資源可供選擇:
Python
Python對于初學者來說很容易掌握,而技術巨頭和初創公司也廣泛地將它用于后端、數據科學和腳本。
以下學習資源可供選擇:
Python完全訓練營:Python3從菜鳥到大蝦,像專業人士一樣學習Python!從基礎開始,最終創建自己的應用程序和游戲!
Python和Django全棧Web開發人員訓練營,歡迎來到Python和Django全棧Web開發人員訓練營!在這門課程中,把你需要知道的一切都涵蓋進來了。
Go(Golang)
Go相對較新,但迅速得到了廣泛地采用。它是一種靜態類型的語言,但對開發人員也非常友好。這使得它成為構建服務的理想選擇。
使用谷歌的Go編程語言進行Web開發
RubyonRails
RubyonRails曾是多年來首選的創業語言。它的易用性和約定驅動的語言使得快速構建產品變得很容易。
以下學習資源可供選擇:
學習DevOps工程
DevOps管理公司的基礎設施。它們設立了部署Web應用程序和管理站點流量的流程。DevOps工程師的重點是讓其他團隊盡可能快地將代碼發布到生產環境,并確保服務器始終處于正常運行狀態,同時盡可能快地獲得最終用戶的認可。
DevOps的領域非常廣泛,它們所做的選擇影響著每個工程團隊。作為DevOps工程師需要學習的一些基本主題包括:
Linux:現在67%以上的服務器上都在使用Linux,很可能DevOps工程師會要用到的系統。深入理解它非常重要。
安全性:確保你的整個云是安全的和加密的。還要設置API,使所有內容都通過HTTPS提供,并不受常見攻擊的影響。
命令行/終端:我們在第一部分中介紹了命令行,而它對于DevOps工程師來說則更為重要。你必須徹底理解它是如何工作的,以及主要的Linux命令,并能夠SSH到遠程服務器上進行工作。你還將為整個公司編寫腳本和自動化程序。
自動化測試:建立一個自動化測試系統,從而使所有發布生產的代碼都經過徹底的檢查,從而減少引入bug或回歸的可能性。
持續集成和持續交付(CI/CD):設置一條用于部署的流水線,以便代碼自動合入到生產環境中,同時減少個體開發人員的手動接觸點。自動化測試在CI/CD中扮演著重要的角色。
容器:容器是基礎設施的核心部分,大多數初創公司和科技巨頭都以某種形式使用Docker和或Kubernetes。容器確保你的代碼總是在一個干凈的、可復制的環境中執行。
云提供商:了解如何使用AWS、GCP或Azure等流行提供商管理云中的服務器。
日志管理:必須有適當的日志記錄。它使你可以診斷bug,查找應用程序中任一問題的根本原因。
JavaScript及深入編碼
一方面,我建議你盡快開始動手做真正的項目。而另一方面,你在某種程度上會希望深入研究JavaScript并了解它是如何工作的。此外,了解數據結構、算法和其他常規的計算機科學知識也很重要。
以下學習資源可供選擇:
你不知道的JavaScript(YDKJS),這本JavaScript書非常非常棒。如果你完全掌握了書中的內容,你就會了解JS整個核心語言。你可以在GitHub上免費閱讀,也可以在亞馬遜上購買實體書或Kindle電子書。
TypeScript——這對初學者來說不是必需的(除非你使用Angular),但是TypeScript的應用正在快速增長,并且已經在占領JS的市場。許多人認為它是JavaScript的未來。
JavaScript中的數據結構——從頭開始在JavaScript中構建最常見的數據結構。該系列視頻是一個很好的擴展,你可以藉此梳理構建你已經學到的知識體系,來建立你已經獲得的知識,同時它也是一個很不錯的面試資源。
EloquentJavaScript——另一本很受JavaScript工程師歡迎的書。它涵蓋的主題比YDKJS更加廣泛,包括瀏覽器和Node。可以在線免費閱讀,也可以在亞馬遜上購買實體書或Kindle電子書。
算法介紹——雖然這本書對于初學者不那么友好,但它很深入。到了你真的覺得是時候要深入理解算法了,就該讀讀它了。
算法——這門課是用Java教的,但并不影響理解學習。你將全面了解計算機科學中最重要的算法。該課程由普林斯頓大學在Coursera平臺上教授。
以下5本書將使你成為更好的程序員,或者,在你的職業生涯的某些時刻(比如面試)提供必要的幫助。如果有更多的需要,可以看看完整的編程書籍推薦列表:
《代碼整潔之道》,RobertCMartin著
《程序員修煉之道》,AndrewHunt和DavidThomas合著
《高效的工程師》,EdmundLau著
《程序員面試金典》,GayleLaakmannMcDowell著
《計算機編程藝術》,DonaldKnuth著
如果你正在學習網絡開發,你也很有可能對創業感興趣。以下是一些創業和成功哲學相關的頂級書籍。
《精益創業》,EricRies
《從0到1》,PeterThiel著
《Hooked:HowtoBuildHabit-FormingProducts》,NirEyal著
《牽引:創業如何快速吸引客戶》,GabrielWeinberg和JustinMares合著
《創業維艱》,BenHorowitz著
程序員web前端分享常見html5語義化標簽,我們知道,創建結構清晰的頁面可以建立良好的語義化基礎,也降低了使用css的難度,下面總結了一些常用的語義化標簽,有空慢慢更新,歡迎大家補充
語義化HTML:用最恰當的HTML元素標記的內容。
優點:1 提升可訪問性; 2 SEO; 3 結構清晰,利于維護;
(HTML5舊的行內元素都被歸類為短語內容)
通用容器:div——塊級通用容器;span——短語內容無語義容器。
如果語義不合適,也不要霸王硬上弓,=。。=老實的用div吧。
< title></title>:簡短、描述性、唯一(提升搜索引擎排名)。
搜索引擎會將title作為判斷頁面主要內容的指標,有效的title應該包含幾個與頁面內容密切相關的關鍵字,建議將title核心內容放在前60個字符中。
<hn></hn>:h1~h6分級標題,用于創建頁面信息的層級關系。
對于搜索引擎而言,如果標題與搜索詞匹配,這些標題就會被賦予很高的權重,尤其是h1。
<header></header>:頁眉通常包括網站標志、主導航、全站鏈接以及搜索框。
也適合對頁面內部一組介紹性或導航性內容進行標記。
<nav></nav>:標記導航,僅對文檔中重要的鏈接群使用。
Html5規范不推薦對輔助性頁腳鏈接使用nav,除非頁腳再次顯示頂級全局導航、或者包含招聘信息等重要鏈接。
<main></main>:頁面主要內容,一個頁面只能使用一次。如果是web應用,則包圍其主要功能。
<article></article>:包含像報紙一樣的內容==||是這么理解的,表示文檔、頁面、應用或一個獨立的容器。
article可以嵌套article,只要里面的article與外面的是部分與整體的關系。
<section></section>:具有相似主題的一組內容,比如網站的主頁可以分成介紹、新聞條目、聯系信息等條塊。
如果只是為了添加樣式,請用div!
<aside></aside>:指定附注欄,包括引述、側欄、指向文章的一組鏈接、廣告、友情鏈接、相關產品列表等。
如果放在main內,應該與所在內容密切相關。
<footer></footer>:頁腳,只有當父級是body時,才是整個頁面的頁腳。
<small></small>:指定細則,輸入免責聲明、注解、署名、版權。
只適用于短語,不要用來標記“使用條款”、“隱私政策”等長的法律聲明。
<strong></strong>:表示內容重要性。
<em></em>:標記內容著重點(大量用于提升段落文本語義)。
<mark></mark>:突出顯示文本(yellow),提醒讀者。
在HTML5中em是表示強調的唯一元素,而strong則表示重要程度。
<b></b>:出于實用目的提醒讀者的一塊文字,不傳達任何額外的重要性
<i></i>:不同于其他文字的文字==|||這個翻譯真的是······
<figure></figure>:創建圖(默認有40px左右margin)。
<figcaption></figcaption>:figure的標題,必須是figure內嵌的第一個或者最后一個元素。
<cite></cite>:指明引用或者參考,如圖書的標題,歌曲、電影、等的名稱,演唱會、音樂會、規范、報紙、或法律文件等。
只用于參考源本身,而不是從中引述。
<blockquoto></blockquoto>:引述文本,默認新的一行顯示。
<q></q>:短的引述(跨瀏覽器問題,盡量避免使用)。
可以對blockquoto和q元素使用cite屬性(不是cite元素!),對搜索引擎自動化工具有用。cite=“URL”引述來源地址。
<time></time>:標記時間。datetime屬性遵循特定格式,如果忽略此屬性,文本內容必須是合法的日期或者時間格式。
不再相關的時間用s標簽。
<abbr></abbr>:解釋縮寫詞。使用title屬性可提供全稱,只在第一次出現時使用就ok。
abbr[title]{ border-bottom:1px dotted #000; }
<dfn></dfn>:定義術語元素,與定義必須緊挨著,可以在描述列表dl元素中使用。
<address></address>:作者、相關人士或組織的聯系信息(電子郵件地址、指向聯系信息頁的鏈接)。
如果提供整個頁面的作者聯系信息,一般放在頁面級footer里。不能包含文檔或者文檔等其他內容。
<del></del>:移除的內容。
<ins></ins>:添加的內容。
少有的既可以包圍塊級,又可以包圍短語內容的元素。
<code></code>:標記代碼。包含示例代碼或者文件名 (< < > >)
<pre></pre>:預格式化文本。保留文本固有的換行和空格。
<meter></meter>:表示分數的值或者已知范圍的測量結果。如投票結果。
例如:<meter value="0.2" title=”Miles“>20%completed</meter>
<progress></progress>:完成進度。可通過js動態更新value。
如今,企業擁有屬于自己的網站已經不是什么新鮮事了,網絡時代給企業帶來了更多的營銷渠道,除了實體之外,也必須要在虛擬網絡里開發出更多的潛在客戶。那對于企業網站來說,它代表的是企業在網絡當中的整體形象,因此企業網站設計對于網站本身有非常關鍵的作用,只有將企業網站設計出特色,才能在第一時間內抓住用戶的眼球,吸引到更多的用戶。
那有的時候,觀察網站的設計趨勢,最有趣的部分就是當你開始注意到趨勢中微妙的變化,從而創造出新的設計模式。但是經典的潮流,深受用戶喜愛也是經久不衰的,可以一直沿用下去。那下面就和數字商圈一起看看企業網站建設的三大趨勢。
1.精準化、類型化
前幾年客戶會說我要做個網站,不在意美丑,有就行。現在這種聲音幾乎快消失了。遇到的客戶基本上都是我要做個xxxx樣的網站,我要一個有效果的網站,能帶來訂單的網站,一個超高轉化率的網站,能強烈樹立我企業品牌形象的網站。現在客戶對自家想要的網站類型越來越清晰透明,那么就需要建站服務商根據客戶需求建相應類型的網站。以助君網絡為例:企業建站類型分為5種。
首頁定制:小微企業制造業首選性價比高,
全站定制:全站全新設計,為企業量身定制,適應于傳統中型企業。
自適應全站定制:全站全新設計,才用HTML5技術標準,適應于臺式電腦、筆記本、平板、手機等通吃一切設備,客戶體驗良好。適應于設計公司,廣告公司、大型企業、集團上市公司
官方商城:獨立網店系統,會員,訂單,購物車,支付等一應俱全。適應于服裝,貿易公司等想做電子商務的公司
大型平臺開發:電商+社區,電商+培訓,培訓+交友等各種創意模式的定制化大型網站建設。適應于想拿融資或者想做一番大事業的創業者又或者大型想開拓新大陸的企業。五大類型網站滿足客戶精準要求
2.全方位
以前單一的pc站會漏掉很多客戶,到后面的手機站,客戶前年的時候大多數還只想著手機站有就行,不在意美丑,到了去年不但要有,還要美。再發展到了幾年,越來越多的客戶都要求了自適應網站,還需要與微信進行對接。盡量不漏掉一個客戶。畢竟現在競爭太激烈,有時候一個客戶數就是企業的命根。
3.高品質
現在個性化的定制需求越來越多,以前的時候都是一個網站差不多就行,技術也不需要太高的門檻,基本上學一兩個月的編程就可以直接做網站了,什么美工、前端通通不需要,一個后臺程序員通吃所有工作。現在是精益求精,策劃、設計、前端、后臺開發、客服、項目經理等分工越來越明細,客戶對網絡公司要求也越來越高,需要也是越來越明確,知道自己到底要做什么。
高品質的網站有利于推廣,樹立企業品牌形象、增強客戶粘性,提高網站轉化率、體現企業文化魅力,這是低端網站無法實現的。
順勢者昌,逆勢者亡。企業選擇服務商的時候,建議選擇迎合趨勢的服務商,喜歡接觸新事物的服務商,一起進步與成長。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。