更多课程 选择中心

C/C++培训
达内IT学院

400-996-5531

超详细的C/C++学习路线,拿下offer不在话下!

  • 发布:C++培训
  • 来源:C++资讯
  • 时间:2020-06-11 15:57

语法是一门语言的基础。 C++ 的基础语句和语法和C是很像的,最大的不同在 class 和异常处理机制,还有模板的应用,所以有 C 基础语法学起来是很快,没有 C 基础也没关系,啃完下面推荐的书也差不多,光说不练假把式,看完之后趁热把课后习题敲一遍并且自己编译通过才算看完。

推荐书:《C++ Primer 中文版(第 5 版)》

标准库STL学习

STL 提供了丰富的算法库支持和各种容器。 C++ 标准库提供了包括最基础的标准输入输出iostrem、各种容器vector、set、string ,熟练掌握标准库,不用重复造轮子(练手学习目的的造轮子除外)写出更C++的代码。

推荐书:《C++ Primer 中文版(第 5 版)》《STL源码剖析》

C++进阶

学完了上面的C++基础只是会用,要用好还需要不断学习进阶。站在巨人的肩膀上写出更健壮高效的代码,你没踩过的坑前人已经踩过一遍,关于一些语言细节和更好的编码习惯,有很多优秀的书籍可以学习。

推荐书:《Effective C++》《More Effective C++(中文版)》

C++11新标准

新标准提供了解决现有问题更优雅、更 C++ 的实现。现行的大部分 C++ 软件还是 C++98 的标准,C++98 是 C++ 的第一个标准,经历这么多年的发展,从前你需要从Boost库(一个在 C++98 年代的准 C++ 标准)获得的对 C++ 的扩充支持的大部分功能已经纳入了 C++11 和甚至 C++2X 更新的标准当中,与时俱进拿起更先进的生产工具,工具就是效率。

推荐书:《深入理解C++11》

Linux 系统基础和 shell script

如今几乎所有的互联网服务都是跑在linux系统上面的。对 Linux 系统一无所知那更加谈不上后台开发了,所以要先学习 linux 系统操作,比如文件管理,系统命令,文件系统,权限管理,系统服务等。

推荐书:《鸟哥的Linux私房菜基础学习篇》《Linux Shell脚本攻略》《Shell脚本学习指南》

Linux环境高级编程

普通用户只需懂系统操作,软件开发人员还要懂编程接口。上一阶段你已经能够完成熟练操作 Linux 系统,知道一些常规的系统命令和服务,并且能够利用 shell script 写一些小工具提高日常开发效率。

我们的目标是星辰大海,作为软件工程师,还需要更加深入的掌握 linux 系统编程技巧,学习系统编程接口、系统调用 API 、内存管理、进程间通信( IPC ),这是本阶段的学习目的。

推荐书:《UNIX环境高级编程》《Linux/UNIX系统编程手册》

TCP/IP协议

目前网络通信中应用最广泛的协议就是 IP TCP 协议,后面 Unix 提供的 TCP 套接字也是基于协议实现,所以很有必要系统的学习 TCP/IP 协议。

推荐书:《TCP/IP详解 卷1:协议》《TCP/IP详解 卷2:实现》《TCP/IP详解 卷3:TCP事务协议、HTTP、NNTP和UNIX域协议》

Linux网络编程套接字

在同一台机器上进程间的通信(IPC)有多种方式,可以是通过消息队列、FIFO、共享内存等方式。网络编程套接字是指:分布在不同机器上的程序通过系统提供的网络通信接口,跨越网络将不同机器上的进程连接起来,实现跨机器的网络通信。一般有UDP套接字、TCP套接字,当然,如果你是通信从业者对 SCTP 套接字肯定也不会陌生。

推荐书:《UNIX网络编程 卷1:套接字联网API(第3版)》《UNIX网络编程 卷2:进程间通信(第2版)》

数据库和存储

程序运行数据都在易失性的内存中,需要持久化存储时就需要数据库。一个后台服务系统一般来说都需要考虑数据落地和持久性存储的问题,这时就会涉及到数据库选型和应用,数据库分为关系型数据库和非关系型数据库。

关系型数据库:指采用了关系模型来组织数据的数据库,代表是 MySql。

关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。

非关系型数据库:以键值对存储,且结构不固定,每一个元组可以有不一样的字段,每个元组可以根据需要增加一些自己的键值对,不局限于固定的结构,可以减少一些时间和空间的开销。代表有redis、memcached,腾讯内部组件 ckv 也是非关系型数据库。

推荐书:《SQL必知必会》《高性能MySQL》

算法基础

计算机算法就是利用编程语言编写出计算机能理解的解决问题的方法。

好的算法能更简洁高效的解决问题,如今不论是校招还是社招,大厂笔试都会考察算法,即使不是为了笔试作为软件从业者也应该经常练习算法,保持手感。学习算法是学习解决问题的通用性方法有助于提高逻辑思维能力。

学习方法

就我个人经验来说,不推荐直接啃书的方式学习算法,建议看书的同时结合刷在线编程算法题的方式。

具体的:边看数据结构或算法导论,同时刷题,因为看书太枯燥很容易失去耐心,在线刷题的好处是你可以每天定目标,享受每个题目通过的快感,有正向反馈更容易坚持下来。

说了这么多,最最重要的还是练习练习练习。理论知识储备是必要条件,移动互联网时代大家接触到的碎片化信息太杂太乱,我个人经验,高浓度的知识精华还是需要在大师的书本中汲取,所以看书是最正确和快速的学习路径,没有捷径可走。

所以要用技术做自己感兴趣的东西和带趣味性的编程,比如写个爬虫小程序抓取网站数据或者写个小游戏,再或者自己造轮子给自己用,并乐此不疲的优化轮子。这样每走一步都能获得一点成就感,激励自己继续走下去,慢慢的一定会有质的飞跃。

版权声明:转载文章来自公开网络,版权归作者本人所有,推送文章除非无法确认,我们都会注明作者和来源。如果出处有误或侵犯到原作者权益,请与我们联系删除或授权事宜。

预约申请免费试听课

填写下面表单即可预约申请免费试听!怕钱不够?可就业挣钱后再付学费! 怕学不会?助教全程陪读,随时解惑!担心就业?一地学习,可全国推荐就业!

上一篇:C语言避坑宝典,说说C语言中的坑
下一篇:C语言秘籍:推荐几本实实在在的书籍

C语言宏定义的几种使用方法

C与C++内存管理避坑指南

C/C++代码规范注释有哪些讲究?

C语言中,全局变量滥用的后果竟如此严重?

Copyright © 2023 Tedu.cn All Rights Reserved 京ICP备08000853号-56 京公网安备 11010802029508号 达内时代科技集团有限公司 版权所有

选择城市和中心
黑龙江省

吉林省

河北省

湖南省

贵州省

云南省

广西省

海南省