怎样成为优秀的后端工程师

怎样,成为,优秀,后端,工程师 · 浏览次数 : 1523

小编点评

**如何才能成为一名优秀的后端工程师?** **1. 选择一种编程语言并深入了解它** * 了解 Java、Python 和 JavaScript 等编程语言的基本结构、数据容器、算法等。 * 从 Java 入门开始,学习 Python、PHP 和 JavaScript 等语言。 **2. 了解数据结构和算法** * 数据结构:堆栈、队列、链表、树、图、散列、排序和搜索算法。 * 算法:动态规划、贪心算法、分叉算法等。 **3. 深入了解数据库** * 了解关系数据库的规范化、索引、连接、查询优化等。 * 学习 NoSQL 数据库,如 MongoDB 和 Couchbase DB。 **4. 了解框架和库** * Spring 框架:用于 Java 开发。 *其他框架:base64、验证、字符串实用程序等。 **5. 了解容器化** *容器化:将软件代码与运行代码所需的操作系统库和依赖项打包在一起。 **6. 了解 DevOps** * 开发运营:创建基础设施,将它们连接在一起并在基础设施中运行应用程序。 **7. 了解网络** * 学习 Web 服务器、TCP、UDP、HTTP 协议、WebSockets、gRPC、TLS、NAT、代理和反向代理。 **8. 了解异步处理** * 将输入排队等待稍后处理,并在准备就绪后将结果通知给用户。 **9. 了解安全和加密** * 学习 SQL 注入、中间人攻击、身份验证失败等安全风险。 * 通过清理输入数据、传输时加密数据和强身份验证等方式缓解这些风险。 **10. 创建个人项目** * 使用您学到的技能创建个人项目,例如新bee-mall 商城的 Pro 版本。

正文

本文翻译自国外论坛 medium,原文地址:https://medium.com/@pradeesh-kumar/how-to-become-a-good-backend-engineer-9da75202a104

让我们一起看看国外开发者认为优秀后端工程师需要掌握哪些技能。


谁是后端工程师?

本质上,软件开发有两个要素:前端和后端。当访问者登陆网站时,他们会看到 UI 与之交互,即前端。前端与用户交互,收集输入,然后将其传递给后端进行进一步处理。后端处理从前端收到的请求,并将结果返回给前端,显示在UI中。

前端工程师需要 HTML、CSS、Js、设计、图形等 UI/UX 开发知识,而后端开发人员需要 Java、Python 和 Javascript 等编程语言以及框架、工具和数据库的知识。

如何成为一名优秀的后端工程师?

后端开发人员的角色是专注于构建架构等组件,以及编写与网站、数据库、消息代理、安全等其他系统交互的代码。

1. 编程语言

选择一种编程语言并掌握它。学习编程语言的所有基本库和框架。 Java、Python 和 JS 等编程语言现在很流行。深入了解最基本的编程功能,如基本结构、oops、基本数据容器(如列表、队列、堆栈、映射/字典和线程编程等)。

博主作为一名 Java 开发工程师,当然是推荐大家从 Java 入门啦。学习完了 Java 语言后,在学习 Python、Php、JavaScript等都是非常 easy 的😁。

2. 数据结构与算法

大多数人在最初阶段忽略了这一点,后来遭受了损失。永远不要犯这个错误!了解数据结构和算法可以使您的基础更牢固,并帮助您了解其他大型系统的内部工作方式。学习基本的数据结构和算法,例如堆栈、队列、链表、树、图、散列、排序和搜索算法。

数据结构和算法非常重要!数据结构和算法非常重要!数据结构和算法非常重要!(重要的事情说三篇!)

3.数据库

后端系统最基本的功能是保存和检索用户数据。有几种类型的数据库可用于根据需求和领域来持久化数据。学习关系数据库,如 Postgresql、Mysql 或 Oracle。此外,学习数据库概念,如规范化、索引、连接、查询优化、ACID、事务、对象关系映射、缩放等。

如今,由于 NoSQL 的简单性和扩展能力,大多数项目都使用 NoSQL 而不是 RDBMS。学习一种或多种NoSql数据库,如MongoDB、Couchbase DB等。

NoSql 数据库中流行的还有 Redis,博主这里补一句。

4.框架和库

根据您选择的语言学习流行的框架。 Java 最流行的框架是 Spring 框架。有一些流行的库可用于执行最常见的操作和实用程序。例如,base64 编码、验证、字符串实用程序等。不要重新发明轮子。库可帮助您避免使用大量样板代码,并让您只专注于使用较少代码的业务逻辑。

5.容器化

容器化就是将您的软件代码与运行代码所需的操作系统库和依赖项打包在一起,以创建一个称为容器的单一轻量级可执行文件,该容器可在任何基础架构上一致运行。学习 Docker 和 Kubernetes。它们是用于容器化应用程序的最流行的工具。

容器化已经成为了应用程序发布部署的新技术。多学习容器相关的知识才能适应当前技术发展趋势。

6. 开发运营

DevOps 是当今必备的一项技能。 DevOps 就是创建基础设施,例如计算机、基础设施、网络、服务器和数据库,将它们连接在一起并在基础设施中运行您的应用程序。

以下是百度对于 DevOps 的说明:

DevOps(Development和Operations的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

它是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。透过自动化“软件交付”和“架构变更”的流程,来使得构建、测试、发布软件能够更加地快捷、频繁和可靠。

它的出现是由于软件行业日益清晰地认识到:为了按时交付软件产品和服务,开发和运维工作必须紧密合作。

简答来说 DevOps 帮助软件开发部署更加自动化,提升交付效率。

7.网络

对网络的了解使您可以创建有效且安全的通信渠道来在系统之间传输数据。学习 Web 服务器、TCP 与 UDP、HTTP 协议、WebSockets、gRPC、TLS、NAT、代理和反向代理以及负载平衡器。

网络编程相比系统编程而言,博主觉得是更有意思的。在分布式系统中,如果了解网络编程相关知识,那么对于分布式系统之间如何进行协调通信、实现原理也就更加容易理解。

8.异步处理

有时用户不需要立即对输入数据执行操作。我们可以将输入排队等待稍后处理,并在准备就绪后将结果通知给用户。这种处理称为异步处理。了解基本的发布者-订阅者模型、队列和主题、apache active-MQ、Kafka 等。

队列除了异步处理的作用,还有流量削峰峰、代码解耦的作用。

9. 安全和加密

随着网络攻击和恶意软件风险的增加,安全编码实践是开发人员必须了解的关键。学习和了解最常见的安全风险,例如 SQL 注入、中间人攻击、身份验证失败等。此外,了解如何通过清理输入数据、传输时加密数据和强身份验证来保护您的应用程序来缓解这些风险和授权。

10. GitHub 上的个人项目

使用您学到的技能创建个人项目将帮助您更深入地了解它。学习框架/技术堆栈不同于通过组合所有技术堆栈来构建实际应用程序。您可能会遇到错误,并有机会了解并修复此类错误。它还将使您随时了解最新技术。继续开发个人项目并在您的 LinkedIn 个人资料和简历中提及它们,这有助于招聘经理了解您的编码标准和技术技能。

说到 GitHub 博主就有话要说了,作为开源时代的参与者,个人项目能提升自我价值,深度参与开源世界,也有助于他人了解自己。这里推荐一波博主的开源项目😁,感兴趣的朋友关注博主,点个 Star:

最后感谢大家阅读,希望这篇文章能为你提供价值。公众号【waynblog】每周分享技术干货、开源项目、实战经验、高效开发工具等,您的关注将是我的更新动力😘。

与怎样成为优秀的后端工程师相似的内容:

怎样成为优秀的后端工程师

本文翻译自国外论坛 medium,原文地址:https://medium.com/@pradeesh-kumar/how-to-become-a-good-backend-engineer-9da75202a104 让我们一起看看国外开发者认为优秀后端工程师需要掌握哪些技能。 谁是后端工程师? 本质

《优化接口设计的思路》系列:第十篇—网站的静态资源怎么获取?

一、前言 大家好!我是sum墨,一个一线的底层码农,平时喜欢研究和思考一些技术相关的问题并整理成文,限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。 作为一名从业已达六年的老码农,我的工作主要是开发后端Java业务系统,包括各种管理后台和小程序等。在这些项目中,我设计过单/多租户体系系统,

Python 潮流周刊#53:我辈楷模,一个约见诺奖得主,一个成为核心开发者

本周刊由 Python猫 出品,精心筛选国内外的 250+ 信息源,为你挑选最值得分享的文章、教程、开源项目、软件工具、播客和视频、热门话题等内容。愿景:帮助所有读者精进 Python 技术,并增长职业和副业的收入。 本期周刊分享了 12 篇文章,12 个开源项目,赠书 5 本《程序是怎样跑起来的(

基础知识小结

为什么会存在这个 大概在2021年中左右,我决定未来5-8年还是在搞技术,所以我就在想我该如何完善自己的知识体系,要怎么样才能成为一个合格的、专业的前端工程师,如果后面不止于前端,我要怎么样才能在这个行业走的更远。所以就有了先提升基础的知识点的想法,虽然专业是软件工程,但是这些基础真的基本都还给书本

【BI 可视化插件】怎么做? 手把手教你实现

背景 对于现在的用户来说,插件已经成为一个熟悉的概念。无论是在使用软件、 IDE 还是浏览器时,插件都是为了在原有产品基础上提供更多更便利的操作。在 BI 领域,图表的丰富性和对接各种场景的自定义是最吸引人的特点。虽然市面上现有的 BI 软件内置了许多图表组件和自定义属性设置,但对于多元化的需求来说

看我如何连夜自建网站背刺我的求职对手们

摘要:在竞争如此激烈的当下,作为一名IT新人,怎么才能让HR眼前一亮,从万千简历中脱颖而出成为最亮的那个崽呢? 本文分享自华为云社区《【一行代码秒上云】连夜自建网站背刺我的求职对手们 !》,作者:AppCloud小助手。 前言 在竞争如此激烈的当下,作为一名IT新人,怎么才能让HR眼前一亮,从万千简

使用第一性原理思维思考如何打造提高生产力的平台

数字化转型会带来大量的研发需求,如何更好更快的交付这些需求成为一个突出问题,该怎么打造一个平台去解决该问题?能不能用第一性原理思维去推导出发展方向?

程序员天天 CURD,怎么才能成长,职业发展的思考(3)

公司赚钱流程中,你在哪一个环节 思考你在哪一个环节 在一家提供互联网产品或服务的公司中,开发出产品或提供服务,卖产品卖服务给客户,赚取金钱获得利润,有了利润这家公司就能给员工发工资,公司才能存活下去,才能继续向前发展。 这是一个循环:产品-销售-利润-再投入开发产品。这个循环构成一个整体,只有这个整

华为的成功,你也可以复制

记得很久之前,听朋友说过一次出差“奇”旅:他当时在北京出差,需要从地铁站中转一下再去机场。 在转站的过程中,就跑呀跑,一边跑一边想:北京的地铁,怎么台阶这么高、这么长。最重要的是,完全没有扶梯! 他后来转念一想,这么大的地铁站,不装扶梯完全不合理,于是开始给12345打电话,反映这个情况。 惊喜的是

记录荒废了三年的四年.net开发的第一次面试

对象 身在成都小微企业,前两天面试深圳老牌金蝶公司。对我这个荒废了三年光影的人来说,怎一个跨度之大了得?作为人我生第一次面试的,整个面试过程,只能用诡异来形容这次感受。而结尾也是迷迷糊糊中草草收场。 不是很好的开局 我我毕业就进了国企。毕业前,在我想象中,他是一个伟光正的形象。所以我抱着人生值得,未