后端开发人员路线图、技能、资源
后端开发人员主要处理数据、业务逻辑以及从各种来源高效检索数据。这还远远不够。优秀的后端开发人员需要精通许多技能。本路线图尝试涵盖其中的一些技能。本文将尝试列出相关资源。
互联网和基本的前端知识
如果您正在尝试踏上 Web 开发之路,Mozilla 开发者网络 (MDN) 文档是一个很好的起点。我在下面提供了一些重要的链接,但您可以浏览全部内容,其中有大量切中要点且解释清晰的信息。
网络工作原理
HTTP 协议
浏览器语言 (HTML-CSS-Javascript)
Javascript,一切
虽然以下资源不适用于后端开发人员,但你们中的一些人可能对公司正在使用的某些前端框架感兴趣。
操作系统和基本机器使用技能
操作系统的一般工作原理
线程和并发
Linux 命令列表
进程间通信
编程语言和框架
虽然你不必学习世界上所有的语言,但至少掌握一门编译型脚本语言,并选择其中一种作为范式是很好的。语言是程序员必备的工具,它们应该在后端开发人员路线图和资源列表中占据一席之地。
Ruby on Rails
Node.js
Django
React - 可选
版本控制
大多数情况下,你不会在第一次迭代时就写出干净的代码。此外,如果你碰巧因为各种原因丢失了代码,那么版本控制系统可以帮你解决。Git
和Mercurial是目前最流行的版本控制系统之一。你绝对应该学习 Git。以下是一些可以作为入门参考的资源。
数据库(关系型)和 ORM
正如我们之前讨论过的,后端开发人员主要处理数据。因此,学习几种处理数据的方法至关重要。关系数据库曾经是所有用例的首选。但是,这种情况多年来发生了变化,一些专用数据库取而代之。最初,您应该能够使用 SQL 或 ORM 与关系数据库进行交互。但是,随着您更加熟练,您应该探索数据库的内部机制,例如索引的工作原理、连接如何影响性能、事务、隔离级别以及可用性和一致性的设计等等。
SQL 教程
n+1 选择
MySQL 架构和历史
Aurora 深度探究
Rick Houlihan 关于将工作负载与 DB
Rails ActiveRecord - ORM匹配的演讲
Django Queryset - ORM
数据库(NoSQL)
NoSQL 数据库的出现是为了解决关系数据库的几个问题,例如模式刚性、可扩展性、伸缩性等等。这个领域有很多数据库。我将列出其中一些,并提供一些学习它们的资源。
MongoDB 的 CTO 介绍
DynamoDB(或任何 NoSQL)的高级设计模式
单表设计 - DynamoDB
为什么 Dynamo 可以在关系数据库无法扩展的地方扩展
NoSQL 与 SQL 的不同看法
数据库(图)
还有一类专门构建的数据库,它们将关系置于数据的最前沿。这些数据库利用数据的关联性,帮助用户轻松回答复杂的查询。当你想高效地回答诸如“朋友的朋友”、“我的朋友喜欢什么”之类的问题时,这些数据库是你的首选。以下是一些可以了解这些数据库的资源。
图形数据库初学者系列
Amazon Neptune
Cypher 简介
Cypher 参考卡
大数据(选修)
您需要了解的有关
Netflix 大数据分析的一切
Netflix Metacat
API 和身份验证
REST 食谱
REST 维基
Roy fielding 的
RPC 与 REST
REST over RPC
gRPC 讲座
最近,越来越多的公司发现了 GraphQL 的价值。您可以在下面了解相关信息。GraphQL
GraphQL
与 REST
Web 安全基础知识
Web 应用程序安全不应事后才考虑。许多开发人员过于关注应用程序逻辑,因为代码通常在初始版本发布时就由安全研究人员进行审核。但是,开发人员应该始终从安全角度编写代码。下面的第一个链接与 Rails 生态系统更相关,但它涵盖了一些通用的安全最佳实践。请务必查看。
保护 Rails 应用程序
SSL 和 TLS
SSL 和 TLS 讨论
虚拟私有云解释
跨站点请求伪造
Django、CSRF
OWASP 攻击列表
跨源资源共享 (CORS)
内容安全策略
HTTP 基本身份验证
Cookie 和安全
DOS 攻击
如果您正在使用node.js
,您可以利用来npm audit
查找并修复 npm 模块中的已知漏洞。
如果您喜欢该博客,请关注@distributedmonk以获取更多后端技术内容并查看该博客。
文章来源:https://dev.to/santhoshrt/backend-developer-roadmap-skills-resources-2bpd