和题主一样,我也在BAT当后台研发码农,主力语言就是C/C++用了很多年了(目前团队在转Go方向),对于C/C++后台开发这块的经验,有一些可以与大家分享。
虽然是C/C++后台研发开发,但按我的经验,后台开发中更多的是C++,至少接触到的后台开发都是如此,既然是C/C++后台开发,那要点的技能树其实从名字就能看出来,概况起来主要就是两个方面:
1. C/C++语言
2. 后台开发技术
C/C++ 编程语言的学习,在 C++ 后台研发中只占了很小一的部分比例,编程语言只是一个工具,开发人员会使用工具是最低的要求,以我从事后台开发的经验来看,当前符合大部分公司后台岗位要求的技能树,大致是下面这个样子,我画了一张图,你看看:
nerror="javascript:errorimg.call(this);">
图中的技能点看起来挺多(确实挺多的),不要慌,我一个个来讲下需要点哪些技能树。
C++学习
开始之前先来看下,C++需要学习的内容包含:
- 基础:const 限定符号、声明与定义、类型、遍历
- 标准库和算法:string、vector、bitset、map
- 派生类中的构造函数与析构函数,析构函数、构造函数
- 动态数组、多维数组、数组、指针和引用
- 重载 Overloading 和覆盖Overriding
- 表达式、循环、条件判断语句
- 堆和栈的区别,mallocl和 new 的区别
- 面向对象的特性,封装、继承、多态
- 虚函数、虚函数表、派生类虚表,对象内存布局
- 模板与泛型编程:模板定义、实例化、模板编译、模板特化
- 继承:单继承、多继承、菱形继承、虚继承
- 强制类型转换:static_cast, const_cast, reinterpret_cast,dynamic_cast,
- 异常处理、命名空间
- 现代C++:C++1X、C++20 新特性
C++编程语言这块的技能树,是必须要点满的,当然最高效的学习方式是阅读经典书籍。经典书籍我推荐一波,总共 7 本书,基础 3 本,进阶 3 本,现代C++ 1本,带封面,方便你找。
初在学习C++的时候,不是所有的坑都需要亲自踩一遍,阅读经典,前人的经验能让我们少走弯路。
C++基础 3 本
- 《C++ Primer 》豆瓣9.4
nerror="javascript:errorimg.call(this);">
- 《Effective C++》豆瓣9.5
nerror="javascript:errorimg.call(this);">
- 《More Effective C++》 豆瓣9.2
nerror="javascript:errorimg.call(this);">
C++进阶 3 本
- 《Inside the C++ Object Model》 这本书中文版《深度探索C++对象模型》翻译质量也很高, 豆瓣9.1
nerror="javascript:errorimg.call(this);">
nerror="javascript:errorimg.call(this);">
- 《STL源码剖析》 豆瓣 8.7
nerror="javascript:errorimg.call(this);">
- 《C++编程思想》
nerror="javascript:errorimg.call(this);">
现代C++ 1本
什么是现代C++?C++这门语言也一直在发展当中,C++1X 甚至 C++20 引入了很多带来重大改变的新特性,让C++更加现代化。如何快速上手现代 C++ 特性,如果我推荐开源电子书:
- 《现代C++教程:高速上手C++11/14/17/20》
nerror="javascript:errorimg.call(this);">
这本书已在Github开源,离线版下载
至此,C++语言这颗技能树差不多点满了,下面我们来说说「后台开发」技术。
C++后台研发
图中的技能树比较多,下面我来一个个说明:
计算机基础
计算机科学技术 CS(Computer Science),大学计算机专业课,计算机基础是软件开发的基本功,当然也是C++开发的基本功,下面是一份中中科大的计算机技术本科主要课程结构安排。
nerror="javascript:errorimg.call(this);">
计算机基础这块的学习包括
- 计算机组成原理
- 操作系统
- 数据结构与算法
计算机网络
我是@程序员柠檬橙 关注我,学习更多编程知识!若有帮助,请点赞转发支持~
nerror="javascript:errorimg.call(this);">
点击下方「了解更多」下载学习资源
c语言程序设计下载(C-C++后台研发需要点亮哪些技能树?学习路线规划)
