2023全棧開發(fā)人員職業(yè)路線圖

0. 全棧開發(fā)人員職業(yè)路線圖

全棧開發(fā)人員
全棧開發(fā)人員是IT行業(yè)中薪資最高的職業(yè)之一。
如果您想成為一名全棧開發(fā)人員,以下是2023年全棧開發(fā)人員路線圖上的十一個(gè)步驟:
掌握敏捷開發(fā)和Scrum
學(xué)習(xí)瀏覽器技術(shù),如HTML和CSS
熟練掌握J(rèn)avaScript或TypeScript
了解Git及其CI/CD生態(tài)系統(tǒng)
具備移動(dòng)應(yīng)用程序開發(fā)能力
使用RESTful API交換JSON數(shù)據(jù)
使用SQL管理超大型數(shù)據(jù)庫
掌握中間層技術(shù)
學(xué)習(xí)用于云原生配置的YAML語言
使用Rust或C++與底層技術(shù)打交道
致力于12因素應(yīng)用程序開發(fā)
2. 敏捷開發(fā)
所有全棧開發(fā)人員都具備敏捷性這一特質(zhì)。
每個(gè)技術(shù)組織都知道,條件變化太快,無法提前數(shù)月進(jìn)行適當(dāng)?shù)挠?jì)劃。這就是為什么每個(gè)全棧開發(fā)人員都必須具備敏捷性,并理解快速“響應(yīng)變化比遵循計(jì)劃更重要”這一點(diǎn)。
這是敏捷開發(fā)的一個(gè)原則。其他三個(gè)是什么呢?
個(gè)人與互動(dòng)高于流程和工具
能工作的軟件高于詳盡的文檔
與客戶的協(xié)作高于合同的談判
無論您使用哪種軟件堆棧,精通哪些開發(fā)工具或部署到哪個(gè)云平臺(tái),如果您不是一名敏捷的全棧開發(fā)人員,這些都是無關(guān)緊要的。
閱讀敏捷宣言并將其12個(gè)敏捷軟件開發(fā)原則銘記于心。
在學(xué)習(xí)過程中,學(xué)習(xí)敏捷框架,如Scrum或Kanban。
Scrum指南只有13頁長(zhǎng)。閱讀它以便了解敏捷軟件開發(fā)的全部?jī)?nèi)容。

一名全棧開發(fā)人員必須擁抱敏捷開發(fā)的理念,并精通敏捷框架,如Scrum。
3. 需要具備HTML和CSS的核心能力
HTML和CSS是網(wǎng)站開發(fā)的基石。
一名全棧開發(fā)人員可能不會(huì)花費(fèi)大量時(shí)間開發(fā)網(wǎng)站的落地頁面,但需要深入了解HTML,以便:
修復(fù)網(wǎng)站錯(cuò)誤
更新WordPress模板
瀏覽PHP代碼片段
修復(fù)響應(yīng)式網(wǎng)站
進(jìn)行SEO優(yōu)化
一名全棧開發(fā)人員需要了解和掌握的第一種編程語言是HTML。如果沒有HTML知識(shí),您不可能成為一名全棧開發(fā)人員。

全棧開發(fā)人員需要了解HTML和CSS,才能使用響應(yīng)式Web框架,如Bootstrap。
4. 需要熟練掌握J(rèn)avaScript
想成為一名全棧開發(fā)人員嗎?那么您必須掌握J(rèn)avaScript或TypeScript中的一種。
JavaScript是Web瀏覽器的四種W3C標(biāo)準(zhǔn)編程語言之一,也是唯一一種可以對(duì)WebAssembly組件進(jìn)行基于瀏覽器的調(diào)用的語言。
此外,JavaScript在服務(wù)器端也得到了廣泛的支持,如Node.js,因此當(dāng)需要與數(shù)據(jù)庫或消息隊(duì)列集成時(shí),可以輕松地將基于瀏覽器的JavaScript技能轉(zhuǎn)移到后端。
全棧開發(fā)人員必須在前端和后端都具備能力。了解JavaScript可以讓全棧開發(fā)人員進(jìn)入前后端兩個(gè)領(lǐng)域。
5. 掌握Git
全棧開發(fā)人員編寫的所有代碼都必須存儲(chǔ)在某個(gè)地方。
如今,絕大多數(shù)代碼都存儲(chǔ)在基于Git的存儲(chǔ)庫中,如GitHub、GitLab或BitBucket。
全棧開發(fā)人員需要知道如何提交代碼、合并分支、變基歷史和壓縮提交。
Git是一項(xiàng)必要的全棧開發(fā)人員技能。

對(duì)于全棧開發(fā)人員來說,Git和了解基于Git的SaaS提供商,如GitHub和GitLab,是必需的。
6. 移動(dòng)應(yīng)用程序開發(fā)
全棧開發(fā)人員需要了解移動(dòng)應(yīng)用程序開發(fā)。
如果您想成為一名全棧開發(fā)人員,您需要知道如何使用以下語言開發(fā)iPhone和Android設(shè)備的應(yīng)用程序:
iPhone使用Swift
Android使用Kotlin
兩者都可以使用React Native
您還需要了解發(fā)布到Apple Store或Google Play Store的復(fù)雜性。
如果您不知道如何將移動(dòng)應(yīng)用程序分發(fā)給客戶,那么開發(fā)移動(dòng)應(yīng)用程序就沒有意義了。
7. 使用JSON構(gòu)建RESTful API
客戶端和服務(wù)器之間發(fā)生的絕大部分通信都是通過交換JSON數(shù)據(jù)的RESTful API進(jìn)行的。全棧開發(fā)人員需要了解兩者。
全棧開發(fā)人員需要知道:
如何構(gòu)建RESTful API網(wǎng)關(guān)以供客戶端訪問
如何從客戶端應(yīng)用程序連接到RESTful API
如何通過認(rèn)證和加密保護(hù)RESTful API
如何創(chuàng)建可靠的可擴(kuò)展的RESTful API
作為學(xué)習(xí)RESTful API的一部分,還要學(xué)習(xí)如何將JSON存儲(chǔ)在NoSQL數(shù)據(jù)庫中。NoSQL數(shù)據(jù)庫是Facebook和Twitter實(shí)現(xiàn)大規(guī)模擴(kuò)展的方式,它們大大簡(jiǎn)化了RESTful數(shù)據(jù)持久性。
開始學(xué)習(xí)RESTful API的旅程,可以閱讀Roy Fielding關(guān)于RESTful API是什么以及為什么互聯(lián)網(wǎng)需要它們的2001年論文。這是一篇值得閱讀的論文。

RESTful API是將客戶端和服務(wù)器端應(yīng)用程序集成的關(guān)鍵。
8. SQL和關(guān)系型數(shù)據(jù)庫技術(shù)
NoSQL數(shù)據(jù)庫很重要,但關(guān)系型數(shù)據(jù)庫更重要。
全棧開發(fā)人員需要了解結(jié)構(gòu)化查詢語言(SQL)的基礎(chǔ)知識(shí),以便處理存儲(chǔ)數(shù)十億行和數(shù)TB數(shù)據(jù)的大型企業(yè)級(jí)關(guān)系型數(shù)據(jù)庫。
SQL和關(guān)系型數(shù)據(jù)庫技術(shù)的知識(shí)對(duì)于全棧開發(fā)人員非常重要,以便:
管理、修改和查詢大型數(shù)據(jù)庫系統(tǒng)
為外部工具、客戶端和API提供后端集成
調(diào)整和優(yōu)化數(shù)據(jù)庫性能
在出現(xiàn)問題時(shí)解決生產(chǎn)問題
9. 中間層技術(shù)
全棧開發(fā)人員需要知道如何將客戶端層和后端數(shù)據(jù)庫層連接起來。
如果需要與應(yīng)用程序服務(wù)器和云API交互,則Java非常適合。
如果您的堆棧包括機(jī)器學(xué)習(xí)或人工智能,則Python非常適合。
如果要使用跨越堆棧多個(gè)層的單一語言,則JavaScript非常適合。
全棧開發(fā)人員需要了解中間層編程語言,以及與該語言堆棧相關(guān)的中間層技術(shù)的知識(shí)。
例如,一個(gè)以Java為重點(diǎn)的全棧開發(fā)人員還應(yīng)該對(duì)Java中間層技術(shù)有深入的了解,例如:
Tomcat
WebSphere
Kafka
Jenkins
CouchDB
Hadoop
中間層對(duì)于全棧開發(fā)人員來說非常重要。

全棧開發(fā)人員應(yīng)該了解n層軟件堆棧的工作原理。
10. 使用YAML進(jìn)入云原生
YAML是云原生技術(shù)的標(biāo)準(zhǔn)“應(yīng)用程序配置”語言。
想要使用Terraform進(jìn)行基礎(chǔ)設(shè)施即代碼管理嗎?
想要使用GitHub Actions進(jìn)行持續(xù)集成和部署嗎?
想要使用Docker和Kubernetes部署應(yīng)用程序嗎?
想要在AWS上配置網(wǎng)絡(luò)網(wǎng)關(guān)嗎?
您可以使用YAML對(duì)它們進(jìn)行配置。YAML是全棧開發(fā)人員的必備技能。

YAML是云原生部署和軟件配置的關(guān)鍵。
11. 靠近硬件
不是所有開發(fā)人員都需要“靠近硬件”。
但如果您需要,您需要了解編程語言,如Rust、Go或C。
這些語言使全棧開發(fā)人員可以為以下組件編寫代碼:
操作系統(tǒng),如Linux和Windows
制造和汽車領(lǐng)域中使用的嵌入式系統(tǒng)
云計(jì)算中使用的虛擬化程序
密碼和安全組件
了解類似Rust或C++的語言,可以讓全棧開發(fā)人員編寫編譯為二進(jìn)制代碼的代碼,而不需要像Java和Python一樣運(yùn)行在抽象層之上。這就是為什么這些語言被稱為“靠近硬件”的原因。
12. 致力于12個(gè)要素
“12因素應(yīng)用程序”原則描述了開發(fā)云原生應(yīng)用程序的最佳實(shí)踐。
學(xué)習(xí)如何創(chuàng)建12因素應(yīng)用程序,并承諾按照這些原則編寫您的應(yīng)用程序。
任何部署為微服務(wù)、Lambda過程或無服務(wù)器函數(shù)的應(yīng)用程序都必須符合12因素要求。
了解這12個(gè)因素,并承諾遵守它們。
如果您掌握了所有這些技能,您將完成2023年全棧開發(fā)人員的路線圖,并將在IT領(lǐng)域獲得可觀的職業(yè)生涯。

對(duì)于云原生開發(fā),全棧開發(fā)人員必須致力于12因素應(yīng)用程序。
【注】本文譯自?2023 full-stack developer roadmap