2024年C++学习指南:从入门到精通

发表时间: 2024-04-17 15:32

想必大家都晓得,C++可谓是所有语言的基石!犹记得大学毕业后,从事过 C++的后端开发,当然也包括一些嵌入式相关的工作。直至现今更换工作,工作机遇依旧繁多。到了某个特定阶段,我觉得并非是你在寻觅工作,而是工作在找寻你!


C 语言充当系统设计语言,用以编写工作系统应用程序,然而伴随标准版本的逐步演进,C++所涵盖的内容也愈发丰富。像是你需要去学习的 C++技术栈包括:C/C++、Linux、Nginx、ZeroMQ、MySQL、Redis、fastdfs、MongoDB、ZK、流媒体、CDN、P2P、K8S、Docker、TCP/IP、协程、DPDK 等众多知识点。

如何学习C++呢?

第一阶段,语法基础

诸如变量、数据类型、运算符等等。知晓控制流语句,像条件语句、循环语句之类。在学习变量之时,极为重要的当属 volatile、mutable、unique_ptr,再者还有函数的定义与调用,尤其是实参和参数的传递,举个例子:

倘若在函数调用期间,展开参数的传递,要是属于不可变对象,那么函数体的修改就不会对实参的值产生影响,而若是可变对象,在函数体内的修改则会影响到实参的值,这同样也是面试里经常询问的一个问题!

第二阶段,C++核心

类、对象、继承、多态之类。在进行学习时,务必要去把控 C++的标准库,例如输入输出流、容器、算法等等。学习异常处理以及模板编程。比如说,智能指针:shared_ptr、weak_ptr、std::exception、try/throw/catch、noexcept,短时间的话,能够去知悉遍历算法、排序算法、查找算法。

你能够每日持续地使用 C++编写一个小算法,像是快排、倒叙、Tree 算法等。倘若有需要的话,还可以为自己设定一个小目标,每天完成一个算法的练习。我每天也都在坚持写一篇算法,去到大公司时,这是极为必要的一个考点!

第三阶段,高级特性

其实个人觉得高级特性还是蛮多的,比如内存管理,包括动态内存分配和智能指针,文件操作和异常处理机制。学习C++的多线程编程和并发控制,这个时候可以写一些小程序了,向文本中做个打印机的效果,写个五子棋的小游戏之类的!

第四阶段,网络通信和脚本以及性能优化

在使用C++开发网络通信功能时,首先需要选择一个合适的网络库。一个好的网络库不仅能提供丰富的网络功能,还能提供高性能的网络通信。

一些常用的C++网络库有Asio,Boost.Asio,POCO个人建议是使用POCO。毕竟是一个轻量级的C++类库,其中包含了许多工具和组件,包括网络通信。POCO的网络库提供了一组简单易用的类,支持TCP、UDP和HTTP等网络协议。

根据不同的需求和使用场景,可以选择合适的网络库来开发高性能的网络通信功能。

比用C++30行代码就可以实现编写一个简单的聊天程序

第五阶段Mysql数据库

数据库对于以后工作是肯定会用到的,如果有时间建议将基础打好,可以先看数据库系统概念,了解数据库的基础知识 ,Mysql服务器的安装与配置 、数据表的的新建、查询等CRUD、事物的使用以及其ACID特性,特别是作为C++开发者来讲,常用的sql语言,ddl语言,数据的优化,建索引,视图,触发器,存储过程啊,数据库备份啊,游标啊,等等,很多要会的。

C++学习书籍推荐

在学校书籍的时候,当然可以一边阅读一边敲代码,照着书本的实例或者习题撸一遍代码。

入门级书籍

《C++ Primer》

《C Primer Plus(第6版)中文版》详细讲解了C语言的基本概念和编程技巧。

《C Primer Plus(第6版)中文版》共17章。第1、2章介绍了C语言编程的预备知识。第3~15章详细讲解了C语言的相关知识,包括数据类型、格式化输入/输出、运算符、表达式、语句、循环、字符输入和输出、函数、数组和指针、字符和字符串函数、内存管理、文件输入输出、结构、位操作等。第16章、17章介绍C预处理器、C库和高级数据表示。本书以完整的程序为例,讲解C语言的知识要点和注意事项。每章末设计了大量复习题和编程练习,帮助读者巩固所学知识和提高实际编程能力。附录给出了各章复习题的参考答案和丰富的参考资料。

《C Primer Plus(第6版)中文版》可作为C语言的教材,适用于需要系统学习C语言的初学者,也适用于巩固C语言知识或希望进一步提高编程技术的程序员。

C++编程规范(C++ Coding Standards) 》

良好的编程规范可以改善软件质量,缩短上市时间,提升团队效率,简化维护工作。在本书中,两位全世界最受尊敬的C++专家将全球C++社区的集体智慧和经验凝结成一整套编程规范。这些规范可以作为每一个开发团队制定实际开发规范的基础,更是每一位C++程序员应该遵循的行事准则。

本书涵盖了C++程序设计的每一个方面,包括设计和编码风格、函数、操作符、类的设计、继承、构造与析构、赋值、名字空间、模块、模板、泛型、异常、STL容器和算法等。书中对每一条规范都给出了言简意赅的叙述,并辅以实例说明;另外还给出了从类型定义到错误处理等方面的大量C++ 最佳实践,包括许多最新总结和标准化的技术,即使使用C++多年的程序员也会从中受益匪浅。

《大规模C++程序设计》

本书是专为有经验的C++软件的开发者、系统设计师、软件质量保证人员编写的。适合从事大型软件开发工作(如数据库、操作系统、编译程序和框架)的人员阅读。本书将高层设计概念与特定的C++编程细节结合起来,满足下面两个要求:1、一本面向对象设计的书,尤其侧重于C++编程语言实现方面。2、一本c++程序设计的书,描述如何使用C++编程语言来开发非常大型的系统。

《C++性能优化指南》

本书是一本C++代码优化指南。作者精选了他在近30年编程生涯中最频繁使用的技术和能够带来最大性能提升效果的技术,旨在让读者在提升C++程序的同时,思考软件优化之美。书中主要内容有:代码优化的意义和总原则,与优化有关的计算机硬件背景知识,能行分析方法及工具,优化字符串的使用,算法、查找和排序等等。

最后

对初学者的新手而言,则是应当静下来,不必心浮气躁。C++是一门啃着最有滋味的编程语言,痛苦并快乐着。要变成C++的开发人员,必须要坚持不懈的去学习和实践项目,只要你行动起来,就一定能学好!