概述
对于计算机相关专业的大学生或者新入职的后端开发新人来说,学习Linux后端开发可能会感到有些困扰。后端开发的领域广阔且深入,每个主题都足以写成一本厚重的专业书籍,这让人们常常感到无从下手。
然而,我们首先需要做的是「澄清概念」。只有当我们清楚地理解了“后端研发”是什么,我们才能更有效地进行学习和工作,做到「有的放矢,事半功倍」。我坚信,这对于那些希望进入Linux后端研发领域的人来说,是至关重要的一步。
Linux后端研发是什么
我已经在后端研发领域工作了超过10年,根据我的理解,我会这样描述后端研发。
-
后端研发是一种专注于服务端程序开发的职业,它通过编程语言操作服务器上的资源(如CPU、内存、磁盘IO、带宽等),为B端(浏览器)和C端(APP或PC应用)用户提供「高可靠」和「高性能」的网络服务。我们经常听到的B/S架构、C/S架构中的S(server)就是指后端,这是对后端服务的一个广泛的称呼。目前,最常见且应用最广的后端服务就是HTTP/HTTPS服务,许多开放平台都是通过HTTP/HTTPS协议对外提供服务,例如快递查询、股票查询、天气查询等网络服务。
-
尽管后端服务可能看起来只是一个网络服务,但为100个用户提供服务与「为上百万、上千万甚至上亿用户提供服务」的差异是巨大的。你的服务请求数据可能需要经过十几个服务器、多个不同的子系统进行协同处理。据国内最大的电商互联网公司统计,「10笔交易消耗的能源可以煮熟一个鸡蛋」。一笔电商交易涉及到的服务器数量和复杂程度可见一斑。
-
在为大规模(千万或者亿级别)用户提供服务时,后端需要整合大量的服务器资源,对外提供「高可靠」、「高并发」和「高性能」的服务。这对编码、设计和架构能力的考验是巨大的,而这些能力并非一朝一夕就能获得,而是需要通过实际工程项目的历练和锤炼。头部互联网公司的研发人员都是在用户和业务规模持续快速发展的过程中,通过解决一个又一个技术难题而逐渐成长起来的。
该如何学呢
现在,我们已经对后端研发有了清晰的理解。那么,下一步我们应该思考的是,我们应该如何去学习和掌握它呢?
避开误区
对于刚入门的新手来说,他们常常会陷入一些误区,无法将学习的精力投入到最需要的地方,无法快速感受到学习的成就,最终可能过早地放弃。我在这里总结了一些常见的误区。
- 过于纠结于 Linux 系统的复杂安装过程。
- 一开始就深陷于命令的海洋,希望能熟悉每一个命令以及每个命令选项的含义。
- 过度关注 Linux 系统函数和库函数的细节,生怕错过任何一个细节。
正确的方式
那么,正确的学习方式应该是什么呢?我总结如下。
- 没有必要过于纠结于系统的安装,这就像程序员不必过于关注电脑的维修和安装技能一样,因为在现实中,服务器出现问题通常都有专门的IT运维人员来处理。「在云原生的云计算时代,云主机基本上不需要我们自己维护」。如果你加入的是头部互联网公司,他们通常会为每个研发人员分配一台高性能的云主机。
- 尽管Linux系统下的命令和命令选项众多,但最实用、最常用的命令和选项只有几个。因此,「我们应该专注于掌握最核心、最实用的命令和选项,而不是浪费精力去试图记住所有的命令」。即使遇到特殊需求,查阅命令的帮助手册也能解决问题。
- Linux系统的API庞大且复杂,但我们在开发中常用的API其实并不多,因此没有必要把所有的API都详细学习一遍。「只有在实际问题的上下文环境中,我们才能深化对相关API的理解和认知,知道在什么场景下使用什么API,做到有的放矢,提高学习效率」。否则,你可能会在几天后就忘记了。只有在必要的时候,我们才需要学习其他相关的API。
学习指南
在前面的讨论中,我们提到了很多内容,那么是否有好的学习指南可以参考呢?我的答案是肯定的。我推荐一本新书——《Linux后端开发工程实践》。这本书从基础到进阶,再从进阶到高级,通过循序渐进的方式合理地安排各项内容,使读者能够快速掌握Linux后端开发的核心技能,同时大大降低了学习Linux后端开发的门槛,让你能够事半功倍。
这本书以实践为出发点,提供了许多详细的案例和代码,例如「自己实现shell、make命令、arp查询、ping命令、traceroute命令」等,这些都能帮助你了解后端研发的实际工作流程和常用工具,以及如何在实践中掌握 Linux C/C++ 后端研发的核心技能。
《Linux后端开发工程实践》不仅是一本教科书,更是一本实战指南。它不仅告诉你“这是什么”,更重要的是告诉你“为什么是这样”和“怎么做”。每一章都包含了丰富的示例和实践,让你可以在实践中学习和进步,真正做到学以致用。
与许多其他技术书籍不同,本书在最后总结了贯穿全书的6种思维模式,感觉非常实用:
• 不要被编程语言所限制。
• 掌握多种编程语言是必然。
• 计算机本身就是一个状态机。
• 动手的最好的实践。
• 依靠工具提高效率和质量。
• 像工匠一样为自己创造工具。
该书还有一大特色:它使用C++,从编写第一行代码开始,从零开始帮助读者构建高并发模型,设计并实现自定义的应用层协议MySvr,设计并实现MyRPC的微服务框架,最终通过MyRPC框架构建一个简单的微服务集群。
1024程序员节-专属福利
『点赞、关注博主、并发表评论』,谈谈你对Linux后端研发学习的看法!!!我们将选取3名粉丝的评论,各送出《Linux后端开发工程实践》一本。10月29日开奖。