经历了网络互联的Wb1.0时代、社交的Wb2.0时代、基于移动的Wb3.0时代,如今的我们正逐步迈向知识分配的Wb4.0时代。与此同时,随着人工智能的兴起,聊天机器人和会话式UI也开始渗透Wb领域,所以说,现在的Wb开发已经和几年前完全不一样了。
当面对日新月异的技术、错综复杂的网站时,新入行的开发者很容迷失方向。以下这篇指南,展示了后端开发的全景、运维的趋势,希望给从事Wb开发的程序员们一个清晰的概念,去其糟粕取其精华。
以前,后端的路线图只是一些平铺的技术介绍,而无法给出任何有关趋势的方向。而在这篇文章中,有详细的后端学习路线图,可助前行路上的开发者一臂之力。废话不多说,现在就开始吧。
接下来,我们将一步步来解释一下这张图。
开始之前要说明一点,虽然我们在图中没有列出HTML/CSS的知识,但建议你至少懂得一点,并会写一些基本的HTML/CSS。
▌学一门语言
选择语言时总是会遇到无数种选择。我把语言按照类别分开,以便你作出决定。对于刚刚进入后端开发的初学者,我建议选任何一种脚本语言,它们的市场需求都很大,因此你可以迅速进步。如果你有前端知识,Nod.js会很容易,而且工作机会也很多。
如果你已经在从事后端开发,并且会某种脚本语言,我建议你不要再选另一种脚本语言,而是从“函数式”(Functional)或“多重编程”(Multiparadigm)中选择一种。例如,如果你会PHP或Nod.js,那就别再学Python或Ruby,而是尝试下Erlang或Golang。这样能开阔你的思维和视野。
▌练习学到的知识
学习知识的最佳途径就是练习。选好语言并了解一些基本概念之后,就应该学以致用,用它多做一些小应用。下面是一些建议:
实现一些常用的bash命令,例如实现ls的功能;
写个命令从rddit的/r/programming上以JSON格式获取并保存文章;
写个命令以JSON格式返回目录结构,例如jsonifydir-nam,返回一个JSON文件,内容是dir-nam下的目录结构;
写个命令读取上一条的JSON文件并创建目录结构;
想一想每天要做的任务,并尝试自动化。
▌学习包管理器
理解语言的基础知识并做了一些简单的应用后,可以学一下那门语言的包管理器如何使用。包管理器可以帮你在应用中使用第三方库,还可以把你的库发布给其他人使用。
如果你选了PHP,可以学一学Composr;
选了Nod.js可以学习NPM或Yarn;
选了Python可以学一学Pip;
选了Ruby可以学一学RubyGms。
不论你选和种语言,都应该去学学相应的包管理器。
▌标准做法和最佳实践
每种语言都有标准做法和最佳实践。学一学你选择的语言的这些知识。例如,PHP有PHP-FIG和PSR。Nod.js和其他语言都有许多社区主导的规范。
▌安全性
务必要读一读有关安全性的最佳实践。阅读OWASP(