做后端开发需要学什么?标梵看到了一条小白的发展之路

it2023-02-01  48

在去年结束的秋季招聘中,后台开发或者服务器开发的岗位需求一度火爆,甚至超过了算法的岗位。很多同学在诸神黄昏从算法岗战场退下来,转到了更偏向工程能力的后台开发岗,导致后台开发岗竞争大爆发。 后台开发工程师使用的主流编程语言是C++、Java、PHP、Golang,目前慢慢流行起来。本文将从C++的角度谈谈如何学习和准备后台开发的岗位。 第一,语言基础。 无论是C++开发还是Java开发,对于一个代码农民来说,最重要的是熟悉编程语言。同样,无论从事什么样的岗位,首先要做的就是掌握语言基础。 C++是一种深奥的编程语言,它既有继承自C语言的过程化编程思想,又包含了OOP的设计思想。强大而复杂。相对来说,学习C++的成本高,语言有很多漏洞。语言基础的学习路线如下: 1语法基础。 重点:(一定要熟悉底层机制原理) 指针和引用的概念。 指针与内存的关系。 程序编译过程。 static、const和#define的用法和区别。 C和C++的区别。 记忆模型。 内存中的堆栈和堆分配。 2面向对象基础。 (熟悉底层机制原理) 面向对象的理解。 析构函数。 构造函数。 复制构造。 多态性。 纯虚函数和虚函数。 虚拟函数的实现机制。 虚函数表。 访问限定符是公共的、私有的和受保护的。 传承原理,虚拟传承,钻石传承。 静态绑定和动态绑定。 新建/删除和malloc/免费。 重载、重写和隐藏。 高级语法。 (熟悉底层机制原理) 智能指针。 左值、右值引用和移动语义。 类型转换方法。 常见的设计模式。 线程安全的单一模式。 内存溢出和内存泄漏。 C++11新特性。 静态链接库和动态链接库。 4STL标准模板库。 (一定要分析源代码) 迭代器和空间配置器理解。 常见的容器特征,用法和底层实现的向量,列表,deque,set,map,unorderedmap。 5推荐书籍。 做后端开发需要学什么?标梵看到了一条小白的发展之路 C++Primer可以作为参考书。 effecteC++对c++编程标准有很深的理解。 《STL源代码分析》分析STL源代码底层,很有学习价值。 有精力的话还可以看《C++对象模型深度探索》和《更有效》C++ 第二,算法和数据结构。 对于普通人来说,学习算法最重要的是形成基本的算法思维,知道如何从编程的角度优化高度重复的操作。掌握基本的算法思想,了解常用的数据结构是必不可少的。这方面的学习倾向于多看,多思考,多实践。 1常见算法类型。 (一定要手撕代码) 排序算法(冒泡、插入、选择、快速队列、希尔、堆队列、合并、桶队列、基数、计数)、字符串运算、数组运算、递归、回溯、分治、动态编程等。 如何准备算法可见历史文章? 输入BAT和字节跳动最难的等级,手撕代码! 2常见的数据结构。 (一定要熟悉底层原理和实现) 链表、栈、队列、树(二叉树、平衡二叉树、红黑树、B树、B+树、霍夫曼树、字典树)、跳转表、图。 推荐书籍。 大话数据结构适合入门学习。 “剑指献”必刷66题。 试试看《算法导论》,能啃出来的就是大神。 第三,计算机网络。 网络相关的东西不多,关键在于对常见网络协议簇的了解和理解,以及对一些基本设计和日常操作实现的分析。例如: 当你进入www.baidu.com时会发生什么。 |微信扫描登录会怎样。 1重点掌握知识点。 OSI七层模型。 TCP/IP五层模型。 TCP/IP协议概述。 TCP和UDP的区别。 TCP三次握手,四波。 TCP状态转换。 TCP状态下的TIME_WAIT。 TCP连接建立为什么不需要两次握手。 TCP第一次三次握手失败会怎么样。 TCP长短链路及其优缺点。 TCP拥塞控制——慢启动、拥塞避免、快重传、快启动。 如何通过TCP保证可靠传输? 如何解决TCP粘拆包的问题? TCP为什么可靠。 如何通过UDP实现TCP的可靠传输? IP地址和子网掩码。 ARP解析过程。 DNS原理。 HTTP状态代码。 HTTP1.0、HTTP1.1和HTTP2.0的区别。 HTTP和HTTPS的区别。 HTTPS加密过程。 不对称加密和对称加密算法。 Nagle算法。 推荐书籍。 教材《计算机网络自上而下方法》可免费查阅。 《TCP/IP详解》重点介绍TCP、IP、UDP协议的实现。 4.数据库。 数据库的一般使用并不困难,但在不同数据库的特点、实现机制、应用场景、性能优化等方面都可以击败大量面试官。同样,数据库本身也是一个非常好的项目例子,从中可以学到很多编程思想和模式。所以要了解数据库怎么用,为什么要用,怎么用好。 1专注掌握。 数据库类别。 关系数据库和非关系数据库的区别。 MySQL: 常见的SQL语句。 MySQL内部链接,外部链接(左链接,右链接,全链接) MySQL索引的类型和原理。 MySQL事务实现原理ACID。 MySQL数据存储引擎。 MySQL主从复制的原理、功能及实现。 MySQL日志系统redolog、binlog和undolog。 MVCC实施原则。 Sql优化的思考。 范式理论。 数据库高并发解决方案。 Redis: Redis支持的数据类型。 Redis坚持。 Redis架构。 主从复制。 一致性哈希算法。 推荐书籍。 “高性能Mysql”可以加深对Mysql的理解和使用。 《Redis设计与实现》是一本综合性的书,可以多看。 V.操作系统。 操作系统问题会集中在进程和线程上,但这些问题往往以开放性问题的形式出现。主要侧重于对操作系统组件和运行过程的理解。例如: |你启动登录系统的时候发生了什么? |复制粘贴是如何工作的? 1专注掌握。 物理内存和虚拟内存。 缓存IO和直接IO。 作业调度算法。 线程和进程。 进程和线程的调度。 线程的创建和终止。 线程状态。 线程间通信和线程同步机制。 互斥锁和信号量。 线程池。 消费者和生产者。 僵局。 并发和并行。 推荐书籍。 《计算机系统深度理解》是一本综合性的书,这本就够了。 六、Linux系统 对Linux系统的熟练使用是后台开发/服务器开发的必备技能点。这年头,不会几个Linux指令都不好意思说自己是敲代码的。(客户端和前端的同学表示不服)不管怎样,对于Linux系统的掌握无论在哪个方向上,都会有用武之地的。 1 Linux系统操作和命令 top命令 ps命令 netstat命令 awk命令 find命令 grep命令 wc命令 sed命令 head和tail命令 正则表达式 如何查找出现频率最高的100个IP地址 linux如何统计文件中某个字符串出现的频率 linux启动的第一个进程 linux查看端口占用 linux查看CPU和内存使用 Linux查看系统负载命令 Linux调试程序 Linux硬链接和软连接 core dump cmake和makefile Shell脚本基本语法和使用 2 推荐书籍 《鸟哥私房菜》入门足够了,多敲多写才能更快掌握 七、Linux网络编程 后台开发是离不开网络编程的,甚至简单来说,后台开发就是用厉害点的电脑去处理大规模的网络请求。所以作为一名合格的后端开发人员,对Linux网络编程的熟悉是必不可少的。 1 重点掌握 孤儿进程、僵尸进程和守护进程 进程间通信方式signal、file、pipe、shm、sem、msg、socket 线程同步机制线程:互斥量、锁机制、条件变量、信号量、读写锁 fork返回值 五大IO模型:阻塞I/O、非阻塞I/O、I/O复用、信号驱动I/O、异步I/O IO复用机制 epoll与select/poll LT水平触发和ET边缘触发 Reactor和Proactor模式 反向代理、负载均衡 2 推荐书籍 《UNIX环境高级编程》APUE 比较难啃,可以挑着看 《Unix网络编程》UNP 同样比较难啃,可以挑着看 《Linux多线程服务器端编程》Muduo网络库,推荐看看源码实现 《深入理解Nginx》深入了解基于C的web服务器实现 八、项目准备 如果以上的东西你都已经准备好了,那么相信你已经了具备C++后台开发能力。但是要记得,一个大型线上项目的开发,从来都不纯粹是单一语言的设计和实现。 因此用C++或者用Java或者用Golang或者用Python的区别或许没那么大,它们都有擅长的地方,毕竟存在即真理。所以,如果你真的有精力的话,不妨还可以了解一下更深层次的技术: 海量日志处理和并行计算开发 分布式技术框架、中间件等 Dubbo、Spring Cloud 、Zookeeper 、Kfaka 流媒体分发技术CDN … 当然,这些都不是非常必要的。但是绝对是亮点!此外,你可以准备一些基础向的相关项目: 网络库,可参考Muduo或者Nginx实现 web服务器/http服务器,可实现基本的http响应请求和处理 简易版STL库,展现C++的综合代码能力 局域网聊天室开发,涉及到网络编程实现在线群聊 分布式日志系统 简易版数据库设计 可参考一些C++常用库,造一些轮子或者做些有趣的小工具。

本文摘自:标梵互动(www.biaofun.com)

标梵互动 互联网营销专家 标梵互动(www.biaofun.com)成立于2013年,是一家为企事业单位提供互联网营销解决方案的公司。公司业务范围包括品牌设计、网站建设、h5互动开发、小程序设计开发、微信功能开发、app设计开发、百度推广运营服务、google推广运营服务等。  标梵互动通过对国内外互联网营销解决方案的不断探索,在该领域积累了丰富的经验,成立六年多以来,已为山东高速路桥集团、建邦集团、中健健身集团、佳怡供应链集团、鲁商置业、山东一卡通、杰瑞集团、山东农业大学、齐鲁工业大学、青年政治学院、中国检测科学院等百余家企事业单位提供互联网营销解决方案,赢得了客户的赞誉和信任。
最新回复(0)