作為一名 Android 開發者,伯特畢業後一直在從事相關開發工作,平時接觸最多的也是 Android 技術,但我一直在關注著大前端領域,也就是 Android/iOS + Web 前端。畢竟,大學時期使用 Html + CSS 做過靜態網頁,還會一點 iOS 開發,還是有一點底子的。但都好久沒碰,早已生疏了。
在我看來,技術都是相通的,工作上因各司其職可以分開,但就學習而言,不應該劃分界限。只有平時多接觸,才能提升你的程式設計程式設計思維和看問題的視野,而這,是不分領域和語言的。平時,我會關注其它領域都有什麼新的動態,保證自己緊跟網際網路發展趨勢,擁抱先進生產力,不至於脫節。
接下來,伯特就想與大家分享我在瞭解 Web 開發時看到的一張路線圖。該路線圖來自 Github 開源專案《developer-roadmap》,其早在 2017 年就分享出來了,最近一直在更新且活躍於 Github Trending。路線圖的內容,來自國外一位教授分享給他的學生的。主要包含四個方面:
- Web 開發的基礎技能;
- Web 前端;
- Web 後端;
- DevOps;
下面,分別展開介紹。
1.基礎技能和方向
首先,該路線圖向我們展示了 Web 開發所必需的技能,以及 Web 開發涉及的方向:
必需技能部分(左側),可以理解為通用的、基礎的技能,不管你選擇哪個方向都是通用的,包括但不限於 Git 使用、HTTP/HTTPS、資料結構和演算法等。當然了,學習能力是必須具備的。
方向部分(中間),將 Web 開發分為 Web 前端和 Web 後端,後端往後還衍生出 DevOps。在這裡,我們可以將 Web 前端理解為使用者可見的前端頁面,是使用者直接互動的部分;而 Web 後端,就是提供前端所需的資料和響應邏輯;DevOps 可以理解為運維開發,具體後面再解釋。
2.Web 前端
接下來,就是 Web 前端(Front-end)路線圖。
從圖中可以看出,從一開始,我們就必須具備 HTML + CSS + JavaScript 技能,往後繼續深入,就需要我們圍繞基礎技能繼續深入學習,包括一些開發框架、常用工具和設計模式等。
3.Web 後端
而對於 Web 後端(Back-end),需要掌握的知識體系就更加複雜了:
作者補充說:
For the backend, personally I would prefer Node.js and PHP 7 for the full time. Plus, I have been experimenting lately with Go and I quite like it. Apart from these, if I have to choose another one, I would go for Ruby. However this is just my personal preference, you can choose any of the shown languages and you will be good.
可以看出,作者推薦使用 Node.js 和 PHP 7 作為主線。同時,Go 和 Ruby 也是不錯的選擇。當然,作者表示這只是一家之言,你可以從路線圖中選擇任意一門你喜歡的語言,都可以做得很好。
比如,近期很火的 Python~
4.DevOps
最後,就是 DevOps 路線圖:
對於 DevOps ,大家或許會比較陌生,從字面上看,就是 “開發”與“運維”,一起來看看 Wikipedia 給出的定義:
DevOps(Development和Operations的組合詞)是一種重視“軟體開發人員(Dev)”和“IT運維技術人員(Ops)”之間溝通合作的文化、運動或慣例。透過自動化“軟體交付”和“架構變更”的流程,來使得構建、測試、釋出軟體能夠更加地快捷、頻繁和可靠。
而實際上,可以把 DevOps 看作開發(軟體工程)、技運營和質量保障(QA)三者的交集:
總結
上述路線圖涉及的知識點是非常全面的,通過簡單的介紹,相信你對 Web 開發有了大體的認識,並對其所涉及的方向及基礎知識有所瞭解了。如果你選定了一個方向,並沿著路線圖展開學習,隨著學習的深入,你一定會對路線圖中的知識體系逐漸有自己的見解。
最後,附上 developer-roadmap 地址:
同時,有一份中文版的,但更新的有些脫節,你也可以參考下:
最後,歡迎關注我的公眾號「伯特說」