作为一名 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 地址:
同时,有一份中文版的,但更新的有些脱节,你也可以参考下: