C++开发的学习路线
⽬录
前⾔
了解C++开发的学习路线和推荐基础内容。需要明确认识的是,语⾔学习仅仅是⼀⼩部分,与项⽬实际开发之间有着很⼤的鸿沟。下⽂将详细介绍。
C++/C与Java的区别
C++/C的语⾔粒度⾮常细,机制很多。性能确实⾼,但语⾔本⾝的包袱重,称为”造轮⼦“的语⾔,什么都能做。Java相⽐有着明显“⽣态圈”的概念,本⾝服务于互联⽹软件开发,主要⽤作后端开发、客户端开发居多,学习和应⽤领域相对⾮常清楚。
C++偏向底层,⽐Java难⼀些
C++做通信公司或者互联⽹公司的后台开发居多(也包括部分游戏公司),也就是服务端开发,当然其也有很多细分的⼯作岗位:做数据处理和分析;做基础协议和通信;做服务端底层应⽤优化;做后台系统的驱动和内核。免费开源代码网站java
C++语⾔学习路线
C语⾔最重要的就是指针和内存管理。C++是对C语⾔的扩充和延申,可以理解为在C语⾔⾥加⼊⼀些⾯向对象的特性,使得代码能更好的复⽤、扩展和⼯程化,这是⼤型项⽬必备的要素。⽐如C++新加⼊的⾯向对象的特性:封装、继承与多态,更⾼级的主题类似泛型和模板、STL库等等。
linux操作系统书籍语⾔学习不要脱太久,⾼强度压下来
推荐书籍
《Essential C++》(侯捷译):适合从C语⾔过渡到C++的学习
《C++ Primer》
《Effective C++》
《More Effective C++》
《C++标准程序库》
《深度探索C++对象模型》(内容很深,进阶内容)
基础四⼤件
四⼤件包括数据结构预算法、计算机⽹络、操作系统、设计模式。只要未来想从事变成岗位,这4个理论基础都必须掌握。基础四⼤件⽐编程语⾔本⾝要重要的多!
数据结构与算法
直接决定能否拿到offer。
常见的数据结构需要掌握,⽐如字符串、链表、⼆叉树、堆、栈、队列、哈希表。
常见算法需要掌握,⽐如查、排序、动态规划,多刷题。
推荐书籍:
《⼤话数据结构》
《算法》(Java语⾔)
《剑指offer》(⼯作必看)
其余精⼒建议全部⽤来刷题。
计算机⽹络
可以狭义理解为TCP/IP协议栈,其可以说是当下互联⽹通信的基⽯。
主要要做到对于协议栈原理的了解,包括⾥⾯的具体协议:ARP协议、IP协议、ICMP协议、TCP、UDP协议、DNS协议、HTTP协议、HTTPS协议。
推荐书籍:
《TCP/IP详解》
操作系统
该领域在⾯试时频次⽐较⾼的问题:
进程和线程
天气预报接口api
由此引发多线程的⼀些问题,⽐如原⼦性、并发、锁
内存
包括内存分布、内存调度的算法
通信协议
推荐书籍:
《深⼊理解操作系统》
设计模式
倒不是说23种设计模式都要熟悉,常见的需要掌握,⽐如单例、⼯⼚、代理、策略模式、模板⽅法。
推荐书籍:
《⼤话设计模式》
应⽤和编程实践格式工厂format
涉及到⼯具和编程环境。
Linux操作系统学习
实际企业级开发中,尤其是后端开发或者服务端开发⼏乎都是使⽤Linux操作系统:
常见的Linux系统操作指令要掌握。
基本的shell编程要熟悉
⽣产⼒⼯具,⼀些批处理和⾃动化的脚本
推荐书籍:
《鸟哥的Linux私房菜》
《Linux就该这么学》(通俗易懂)
编译和调试⼯具
Win10上的VS基于微软的MS编译器,有可视化的界⾯。但在公司⼯作中,Linux平台的编译器必须掌握,最重要的就是GCC。
有些公司有定制过的交叉编译⼯具
实际项⽬的编译动作叫 make ,编译动作过程是写在makefile⽂件中。因此需要会写makefile⽂件,⾥⾯的规则要求掌握,学会设计和编写整个编译过程。
Win10⽤vs调试:打断点、运⾏。在通信公司和互联⽹公司中的后台开发中,也是使⽤Linux操作系统,
主要使⽤GBD调试⼯具,借助进⾏代码调试。
推荐书籍:
《debugging with gdb》中⽂版
(对英⽂有⼀定要求)
(对英⽂有⼀定要求)
《跟我⼀起写makefile》陈皓
Linux编程环境
这部分主要学习Linux平台具体的编程。
学习Linux操作系统API的使⽤
多线程编程
服务端任务量⼤,多线程相关的东西⽆法避免。包括线程、资源、信号、同步、互斥、锁的编程实践
⽹络编程
操作系统上的⼀些⽹络编程的API,包括⼀些IO函数的代码编程
推荐书籍:
《Unix环境⾼级编程》(必看)
《Linux⾼性能服务器编程》
《POSIX多线程程序设计》织梦模板网页用什么软件打开

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。