2018最新后端开发人员的路线图

简介: 简评:之前,后端开发路线图仅仅是一个技术推荐,且没有明确的方向指明应该遵循的顺序,这份重新制作的指南将会给你一个更好的方向。现在的 Web 开发与几年前完全不同了,有很多不同的东西可以轻易地把人拒之门外,这也是我们决定制作这个循序渐进指南的原因之一,并让任何人可以清楚地了解他们在 web 开发中扮演的角色。可以在下面的图片中找到详细的路线图,而我也将在下面的描述中解释每一个步骤。

简评:之前,后端开发路线图仅仅是一个技术推荐,且没有明确的方向指明应该遵循的顺序,这份重新制作的指南将会给你一个更好的方向。

现在的 Web 开发与几年前完全不同了,有很多不同的东西可以轻易地把人拒之门外,这也是我们决定制作这个循序渐进指南的原因之一,并让任何人可以清楚地了解他们在 web 开发中扮演的角色。

可以在下面的图片中找到详细的路线图,而我也将在下面的描述中解释每一个步骤。

在开始之前,虽然我们没有在下面的路线图中列出 HTML / CSS 的知识,但建议读者至少要了解一些基本的 HTML / CSS 知识。


Step 1 —— 学习一门语言(Learn a Language)

语言有很多选择,我已经将它们分成几类,以便更容易做出决定。对于刚开始进入后端开发的初学者,我建议你选择任何脚本语言,因为它们有很多功能,可以让你快速起步。如果你有一些前端知识,你可能会发现 Node.js 更容易(还有一个很大的就业市场)。

如果你已经是后端开发并了解一些脚本语言,我建议不要选择其他脚本语言,而是从「函数式(Functional)」或「多范式(Multiparadigm)」中选择。例如,如果你已经在使用 PHP 或Node.js,请不要使用 Python 或 Ruby,而应该尝试使用 Erlang 或 Golang。它一定会帮助你延伸思维,并将你的思想带到新的视野。


Step 2 —— 练习你学到的东西(Practice what you have Learnt)

没有比实践更好的学习方式了。一旦你选择了语言,并且对这些概念有了基本的了解,就可以使用它们,尽你所能制作尽可能多的小应用。下面是一些让你开始的 Idea:

  • 在 bash 中实现一些你自己使用的命令,比如尝试实现 ls;
  • 编写一个获取和保存 reddit 上 /r/programming 文章的命令,并保存为 JSON;
  • 编写一个以 JSON 格式列出目录结构的命令,例如 jsonify dir-name 返回一个带有 dir-name 内部结构的 JSON 文件;
  • 编写一个读取从上面的步骤得到的 JSON 的命令,并创建目录结构;
  • 考虑将每天做的一些任务,并尝试将其自动化。


Step 3 —— 学习软件包管理器(Learn Package Manager)

了解该语言的基础知识并制作了一些示例应用之后,需要了解如何使用该语言的软件包管理器,包管理器可帮助在应用程序中使用外部库,并分发你自己的库供其他人使用。

如果你选择了 PHP,你将学习的是 Composer,Node.js 有 NPM 或 Yarn,Python 有 Pip,Ruby 有 RubyGems。无论选择什么,请继续学习如何使用其包管理器。


Step 4 —— 标准和最佳实践 ( Standards and Best Practices)

每种语言都有自己的标准和开发的最佳实践,例如 PHP 有 PHP-FIG 和 PSR,使用 Node.js 有许多不同的社区驱动指南,其他语言也有相同的指导。


Step 5 —— 安全(Security)

请务必阅读有关安全的最佳实践,阅读 OWASP 指南并了解不同的安全问题以及如何以选择的语言避免它们。


Step 6 —— 实践(Practice)

你已经掌握了语言、标准和最佳实践的基础知识,安全性以及如何使用软件包管理器。现在开始创建一个包并分发给其他人使用,并确保遵循迄今为止学到的标准和最佳实践。例如,如果您选择了 PHP,那么可以在 Packagist 上发布,如果选择了Node.js,那么可以在 Npm 上发布,等等。

如果完成了,在 Github 上搜索一些项目,并在某些项目中提一些 PR。下面是一些 Idea:

  • 重构并实现学到的最佳实践
  • 查看未解决的 issue 并尝试解决
  • 添加任何附加功能


Step 7 —— 了解测试(Learn about Testing)

了解如何在应用程序中编写单元测试和集成测试,另外,了解不同的测试术语,如mocks, stubs


Step 8 —— 练习(Practical)

为目前为止所做的实际任务编写单元测试,尤其是步骤 6 中所做的练习。还要学习和计算编写的测试的覆盖率。


Step 9 —— 了解关系数据库(Learn about the Relational Databases)

了解如何将数据保存在关系数据库中。在选择要学习的工具之前,请先了解不同的数据库术语,例如键,索引,规范化,元组等。

这里有几个选项,但如果你学习一个,其的应该也是相当容易去学。你想学习的应该是 MySQL,MariaDB 和 PostgreSQL。可以选择 MySQL。


Step 10 —— Practical Time

现在是时候把学到的东西拿来用了,使用迄今为止学到的所有内容创建一个简单的应用程序。选择任何一个 idea,可以是创建一个简单的博客,并实现其中的以下功能:

  • 用户帐户 —— 注册和登录
  • 注册用户可以创建博客文章
  • 用户应该能够查看他创建的所有博客文章
  • 用户应该能够删除他们的博客文章
  • 确保用户只能看到他的个人博客文章(而不能看其他人的)
  • 编写单元/集成测试
  • 应该为查询应用索引,分析查询以确保索引有作用。


Step 11 —— 学习框架( Learn a Framework)

根据选择的项目和语言,可能需要也可能不需要框架。每种语言都有几个不同的选项,继续看看选择的语言有哪些选项可供选择,然后选择一个。

如果选择了 PHP,我会建议使用 Laravel 或 Symfony 以及微架构(Lumen 或 Slim),如果你选择 Node.js,有几种不同的选择,但突出的是 Express.js。


Step 12 ——  Practical Time

将 step10 中创建的应用程序转换为使用选择的框架,还要确保移植包括测试在内的所有内容。


Step 13 —— 学习 NoSQL 数据库(Learn a NoSQL Database)

首先了解它们是什么,它们与关系数据库有什么不同以及为什么需要它们。 有几种不同的选择,稍微研究下看看,并比较它们的特点和差异。 可以选择的一些常用选项有 MongoDB,Cassandra,RethinkDB 和 Couchbase,如果必须选择一个,请使用 MongoDB。


Step 14 —— 缓存(Caching)

了解如何在应用程序中实现应用程序级缓存,了解如何使用 Redis 或 Memcached,并在 step 12 中创建的应用程序中使用缓存。


Step 15 —— 创建 RESTful API(Creating RESTful APIs)

了解 REST 并学习如何制作 RESTful API,在 Roy Fielding 的文章中阅读关于 REST 的部分,如果他们说 REST 只适用于 HTTP API,那么确保你能够与他人争论。


Step 16  —— 了解不同的认证方法(Learn about Different Auth Methods)

了解不同的认证和认证方法,你应该知道他们是什么,有什么不同以及什么时候使用偏好。

  • OAuth — Open Authentication
  • Basic Authentication
  • Token Authentication
  • JWT — JSON Web Tokens
  • OpenID


Step 17  ——  消息代理(Message Brokers)

了解消息代理并了解何时以及为何使用它们。同样有多种选择,但突出的是 RabbitMQ 和Kafka,如果你想选择一个的话,可以先从 RabbitMQ 开始。


Step 18 —— 搜索引擎(Search Engines)

随着应用程序的增长,关系数据库或 NoSQL 数据库的简单查询不能够满足要求,而不得不求助于搜索引擎。


Step 19 —— 了解如何使用Docker( Learn how to use Docker)

无论是在复制与生产环境相同的环境,保持操作系统清洁或加快编码、测试或部署,Docker 可以在开发过程中大大方便工作,学习如何使用 Docker。


Step 20 —— Web 服务器知识(Knowledge of Web Servers)

如果你已经走到这么远了,你可能已经在前面的步骤中使用了服务器,这一步主要是找出不同Web 服务器之间的差异,了解限制和不同的可用配置选项,以及如何最好地利用这些限制编写应用程序。


Step 21 —— 了解如何使用Web Scoket(Learn how to use Web Sockets)

虽然不是必需的,但在工具带中有这些知识是有益的,学习如何使用 web-sockets 编写实时Web 应用程序并使用它创建一些示例应用程序。可以在上面制作的博客应用程序中使用它来实现博客文章列表中的实时更新。


Step 22 —— 学习 GraphQL(Learn GraphQL)

学习如何使用 GraphQL 制作 API,了解它与 REST 的不同之处,以及它为什么被称为 REST 2.0。


Step 23 —— 看看图数据库(Look into Graph Databases)

图模型代表了一种非常灵活的处理数据关系的方式,图数据库为其提供了快速高效的存储、检索和查询方式,学习如何使用 Neo4j 或 OrientDB。


Step 24 —— 继续探索(Keep Exploring)

一旦你开始学习和练习,你一定会遇到我们在这个路线图中没有涉及的东西,只要保持开放的心态和对新事物的渴望就好。

关键是要尽可能多地练习,起初你可能会觉得你并没有抓住任何东西,但这是正常的,随着时间的推移,你会觉得越来越好。

原文:https://medium.com/tech-tajawal/modern-backend-developer-in-2018-6b3f7b5f8b9

译文:https://zhuanlan.zhihu.com/p/35620194

相关实践学习
MySQL数据库快速部署实践
本场景主要介绍如何在一台配置了CentOS 7.7版本的ECS实例(云服务器)上安装mysql,执行mysql的常用操作,学习基本的SQL语句。
相关文章
|
5天前
|
人工智能 定位技术 SEO
我学 GEO 第 15 天:终于知道AI GEO该如何做?
我是暴走的莉莉酱,边旅行边研究AI GEO的数字游民。专注普通人如何提升“AI可见度”——让AI在回答用户问题时准确识别、理解并推荐你。不讲玄学,只做可测、可调、可持续的GEO实践。
406 125
|
7天前
|
机器学习/深度学习 人工智能 调度
🐴 HappyHorse 1.1 现已上线阿里云百炼!快来查收模型使用指南,现在调用享 6 折~
HappyHorse 1.1 是新一代视频生成大模型,全面升级动态表现力、角色一致性、指令遵循、视觉质感与音画协同能力。支持I2V/T2V/R2V三类生成,适配短剧、电商广告、品牌营销等场景,提供高质、流畅、可控的AI视频生产力。
691 5
🐴 HappyHorse 1.1 现已上线阿里云百炼!快来查收模型使用指南,现在调用享 6 折~
|
5天前
|
缓存 人工智能 运维
阿里云618百炼大模型Qwen3.7-Max功能、免费试用、订阅计费、配置接入详解
Qwen3.7-MAX是阿里云百炼平台推出的通义千问3.7系列旗舰大语言模型,专为智能体时代复杂任务打造,依托阿里云全域算力与自研技术,在逻辑推理、长文本处理、代码工程、长周期自主执行等领域达到行业顶尖水平。2026年618期间,该模型推出多重免费试用权益、按量计费5折、订阅套餐优惠等专属福利,覆盖个人开发者、团队与企业全场景需求,以下从核心功能、免费试用、订阅计费、配置接入四方面展开详细解析。
401 123
|
3天前
|
人工智能 自然语言处理 API
阿里云Token Plan团队版解析:功能、三档套餐与省钱订阅指南
阿里云百炼平台推出的Token Plan团队版,是面向企业与团队的AI大模型订阅服务,以Credits为统一计量单位,整合文本与图像生成模型,提供团队管理、数据安全、多工具兼容等核心能力,解决团队零散订阅AI服务的管理混乱、成本失控、数据安全等痛点。本文将从核心定位、套餐详情、计费规则、团队管理、工具兼容、便宜订阅技巧等方面,全面解析Token Plan团队版,帮助企业与团队高效、低成本地使用AI服务。
300 108
|
4天前
|
存储 人工智能 数据可视化
别再手动复制 Skill 了:多 Agent 时代的 Skill 管理方案
多 Agent 场景下 Skill 的统一管理与同步。
237 124
|
18天前
|
缓存 测试技术 API
Qwen 3.7 Plus 与 Max 实测:性价比与多模态能力差异解析(2026)
2026 年 6 月 1 日,阿里悄无声息地发布了 Qwen 3.7 Plus,距 Qwen 3.7 Max 上线刚好 11 天。同样的 1M 上下文,同样的 35 小时自治上限。但价格才是头条:Plus 是 0.40/M输入,Max是 2.50/M——便宜约 6 倍——并且还能看图、看视频。Vision Arena 上 Plus 已经排到 #16。所以这周真正值得讨论的问题不是”要不要为视觉能力买单”,而是”Max 凭什么用 6 倍价格换来 2 个百分点的 benchmark 领先”。
|
11天前
|
缓存 人工智能 运维
GLM 5.2自托管全流程实战:硬件选型、vLLM/SGLang部署与成本盈亏测算
2026年智谱发布GLM 5.2超大混合专家模型,区别于以往仅开放API的闭源大模型,该模型权重以MIT开源协议对外发布,企业与开发者可完整下载、本地审计、私有化部署,实现数据不出环境、自定义微调、自主调度推理资源。GLM 5.2拥有753B总参数,原生支持百万级上下文窗口,在代码生成、长文档推理、数学逻辑等多项基准测试中对标国际顶尖商用模型,是首款可完整自托管的前沿代码向大模型。
892 0
|
13天前
|
Linux 程序员 数据格式
【2026最新】Notepad++下载、安装和使用一篇搞定(附中文版安装包)
Notepad++ 是一款免费开源、轻量高效的 Windows 文本编辑器,支持 C/Python/HTML 等 80+ 语言语法高亮、代码折叠、正则替换、编码转换及插件扩展,专为程序员与文本处理用户打造,完美替代系统记事本。(239字)