C++从入门到秃顶?学会这三点让你直接到巅峰!!!

简介: 喜欢这篇文章的朋友可以多多收藏、点赞、关注 一条龙~

C++这门语言从诞生到今天已经经历了将近30个年头

不可否认,它的学习难度都比其它 语言较高

而它的学习难度,主要来自于它的复杂性

现在C++的使用范围比以前已经少了很多,java、C#、python等语言在很多方面已经可以代替 C++

但是也有很多地方是其他语言完全无法替代的,主要集中在需要运行效率比较高的行业,比如游戏、高效的服务器
a6931e61_6066_4a62_bbf2_d4155b79c1b0
现在学习java、C#等语言的人数远远高于C++,主要是C++的入门门槛太高,可能学习了一段时间后还做不了什么东西,导致信心大受打击,进而放弃

我想把我自己的经验分享给大家,希望帮助新人少走些弯路

在此我们不讨论具体的技术细节,只说我们应该学习什么东西

一、技术能力

1.语言

我们要成为一个程序员,学的东西会很多很杂,但是最开始一定要从语言开始学习,而学习语言最关键的莫过于选好一本书,学校的教材就算了,根本没有写 得好的。在此隆重推荐《C++ Primer》,这本书很厚,内容也很丰富,对知识的讲解不仅仅停留在表面

如果这本书能有耐心看完,语言方面基本就没有什么大问题了,对以后的学习也打 下了一个很好的基础


2.GUI

C++方面的GUI库有很多种,比如MFC、WTL、wxWidgets、QT

这些GUI库都各有自己的特点,其实我们只要先了解一种就可以了, 只要深入了解了一种GUI库,需要的时候再学习其他的就够了,本质上都差不多,很快就可以上手了

MFC虽然设计上有很多问题,但是作为入门还是不错的, 而且学习资料很多,碰到问题也好解决


3.数据结构和算法

很多人都忽视了数据结构和算法方面的知识,尤其是一些编程语言的库做得非常好,几乎不需要自己去实现一些数据结构和算法,导致现在很多程序员不重视 甚至忽略这方面的知识

但是,当我们想让我们的程序跑的更快、内存占用更少的时候,这些知识就非常非常重要了

很多程序员都是刚开始的时候不重视这些,但 是工作几年后又来补习这些知识

学习从来不是一个人的事情,要有个相互监督的伙伴,工作需要学习C/C++或者有兴趣学习C/C++的伙伴可以加小编自己的学习裙773649038,一起学习,一起进步,还有免费学习资料可以给各位伙伴

最开始可能不需要学习的太深入,但是基本的数据结构和算法一定要知道

推荐《数据结构(C语言版)》,在数据结构和算法的学习中,最好不要去关心面向对象方面的技巧,就用C语言来实现,这样能更关注于算法本身的内容


4.数据库

学习数据库的基础知识,并且掌握一种数据库使用,推荐使用mysql,而且最好不要用一些封装好的接口,而应该直接用mysql提供的数据库api,可能对数据库了解的会更深入


5.并行

cpu主频已经不能遵循摩尔定律了,现在cpu发展的趋势是多核心

无论是多线程,还是多进程,都是为了更好的利用cpu的性能,提供更好的用户体验

这就要求我们如果要写出高效的应用程序,必然要涉及到并行计算

多花些精力在并行计算上吧,一定会有丰富的回报


6.网络编程

这里所指的网络编程是指socket编程

现在C++的应用很多都是在做服务器开发,如何开发一个高并发、大吞吐量、高稳定性的服务器就是我们要考虑的了


**7.设计模式
**
设计模式不是具体的技术,更多的是如何让代码更容易阅读、更好扩展、更容易使用


8.库的使用

C++标准库仅仅提供了一些很基本的功能,所以我们经常会引入一些第三方库

最著名的恐怕就是被称为准标准库的boost库,它提供了我们编程中用 到的各方面的技术,文本处理、算法、网络、多线程、图像处理等等,几乎无所不包

其它也有一些专著于某一方面的库,比如ACE是网络通信方面 的,TinyXML是解析xml的,OGRE是图形渲染方面的


9.操作系统的知识

程序员需要了解的操作系统知识和普通用户是不一样的,一个高手是需要深入了解操作系统的方方面面,而不是停留在使用层面

至于应该了解哪些知 识,windows上的去看《windows核心编程》,linux的去看《深入理解linux内核》,应该可以知道自己应该学什么了

d2d2

二、项目经验

以上的内容如果都精通了,也算是个比较厉害的程序员了

但是对程序员来说,项目经验更加重要

一个好的项目可以让你把各种技术进行综合运用,并且能学到一些新的知识

比如说做游戏的就需要学习图形方面的知识,做播放器的要学习编解码器方面的知识

很多程序员会忽略项目的经验,而单纯的谈技术能力,这是错误的

其实这就是理论和实践的关系,技术就是理论知识,做项目就是实践,理论对实践有知道作用,实践能加深我们对理论的深入理解
8fd8c733_bf11_48c0_9d26_3f3bdf8bc7ae

三、沟通能力

沟通能力是一个高级程序员要具备的软实力

我这里想说的沟通能力并不是一般说的能说会道,夸夸其谈,说话天花乱坠

而是建立在技术基础之上的沟通能力
acddb2f2_fe4b_4066_8fb2_556d6cec77d6

-

如有侵权,请联系删除

目录
相关文章
|
1月前
|
安全 编译器 程序员
【C++初阶】C++简单入门
【C++初阶】C++简单入门
|
2月前
|
程序员 C++
C++模板元编程入门
【7月更文挑战第9天】C++模板元编程是一项强大而复杂的技术,它允许程序员在编译时进行复杂的计算和操作,从而提高了程序的性能和灵活性。然而,模板元编程的复杂性和抽象性也使其难以掌握和应用。通过本文的介绍,希望能够帮助你初步了解C++模板元编程的基本概念和技术要点,为进一步深入学习和应用打下坚实的基础。在实际开发中,合理运用模板元编程技术,可以极大地提升程序的性能和可维护性。
|
17天前
|
编译器 Linux C语言
C++基础入门
C++基础入门
|
1月前
|
安全 编译器 C++
C++入门 | 函数重载、引用、内联函数
C++入门 | 函数重载、引用、内联函数
25 5
|
1月前
|
存储 安全 编译器
C++入门 | auto关键字、范围for、指针空值nullptr
C++入门 | auto关键字、范围for、指针空值nullptr
49 4
|
1月前
|
编译器 C语言 C++
C++入门 | 命名空间、输入输出、缺省参数
C++入门 | 命名空间、输入输出、缺省参数
33 4
|
1月前
|
编译器 程序员 C语言
C++入门
C++入门
31 5
|
1月前
|
安全 编译器 C语言
C++入门-数组
C++入门-数组
|
1月前
|
存储 编译器 程序员
C++从遗忘到入门
本文主要面向的是曾经学过、了解过C++的同学,旨在帮助这些同学唤醒C++的记忆,提升下自身的技术储备。如果之前完全没接触过C++,也可以整体了解下这门语言。
|
2月前
|
存储 安全 编译器
【C++入门 四】学习C++内联函数 | auto关键字 | 基于范围的for循环(C++11) | 指针空值nullptr(C++11)
【C++入门 四】学习C++内联函数 | auto关键字 | 基于范围的for循环(C++11) | 指针空值nullptr(C++11)