欧易

欧易(OKX)

国内用户最喜爱的合约交易所

火币

火币(HTX )

全球知名的比特币交易所

币安

币安(Binance)

全球用户最多的交易所

为什么要学C++?其实这门语言比你想象的更强大,不信你看

2022-10-09 18:11:28 2822

摘要:想必刚接触编程的很多同学心中一定有疑惑:“各种新语言层出不穷,Python、Java、C#,今天学习 C++ 的意义何在?”其实这个问题在笔者看来并不能轻易做决断,一个编程语言的价值应该从多个角度去看。C++ 可以说是 C 语言的继承,20...

想必刚接触编程的很多同学心中一定有疑惑:“各种新语言层出不穷,Python、Java、C#,今天学习 C++ 的意义何在?”其实这个问题在笔者看来并不能轻易做决断,一个编程语言的价值应该从多个角度去看。

C++ 可以说是 C 语言的继承,20 世纪 70 年代中期,Bjarne Stroustrup 希望有一门语言既要编程简单、正确可靠,又要运行高效、可移植。1979 年,Bjame Sgoustrup 到了 Bell 实验室,开始从事将 C 改良为带类的 C(C with classes)的工作。1983 年该语言被正式命名为 C++。它既可以进行 C 语言的过程化程序设计,又可以进行以抽象数据类型为特点的基于对象的程序设计,还可以进行以继承和多态为特点的面向对象的程序设计。



自从 C++ 被发明以来,它经历了 3 次主要的修订,每一次修订都为 C++ 增加了新的特征并作了一些修改。C++ 擅长面向对象程序设计的同时,还可以进行基于过程的程序设计,因而 C++ 就适应的问题规模而论,大小由之。C++ 不仅拥有计算机高效运行的实用性特征,同时还致力于提高大规模程序的编程质量与程序设计语言的问题描述能力。

C++ 能做什么?

在每年的 TIOBE 编程语言排行榜中,我们可以看到 C++ 一直保持在该榜单的前五名,为什么 C++ 的生命力一直这么旺盛?

因为 C++ 有一个最重要的特性,就是在某些领域具有不可替代的作用。驱动是要用 C++、启动代码是要用 C++、就连 Android 的的底层也和 C++ 脱不了关系。虽然 C++ 在很多专业应用中,无法施展拳脚;但在不少领域,却如同巨人一般又是不可或缺的顶梁柱。在游戏、HPC、编译器、金融财务领域等领域中,C++ 一直保持着唯我独尊的状态。

游戏行业:几乎所有 3A 游戏都是使用 C++ 编写的。大众公认电子游戏的开发者是软件行业里回报最高的工作之一,也是需求量最大的领域之一。因为速度非常重要,所以编写高效的代码就是最基本的要求。

HPC:以极限速度处理数据,要求对底层硬件有深刻的理解,这类知识可以直接应用在语言中。通用图形处理器及 CUDA、OpenCL 之类的并行计算框架的出现,引发了对有这类技术的 C++ 程序员的需求。

编译器:LLVM 项目如此成功,以致于很难找到一种既未使用 LLVM 库编写前端,也没有使用 LLVM 生成字节码的流行语言,而这些全都离不开 C++。

除此之外,金融领域也有很多工作需要有能力编写低延迟代码的程序员。在这个领域,数学背景也是一大加分亮点。

如何学好 C++?

C++ 作为一个三十多岁的编程语言,网络上关于它的课程已经非常多了,你可以选择一些适合你的课程进行学习。如果你目前没有计算机,那么阅读一些 C++ 书籍也是不错的选择,笔者推荐你可以试着读一读《C++ Primer(第6版)》。

C++ 需要不断地练习。——vczh

笔者一直提倡实践是第一位,一边学习,一边练习是非常好的学习方式。在看懂教材后及时着手去写代码,千万不要停留在阅读后的满足。计算机是一门注重实践的学科,学习任何编程语言都需要不断地练习,有时间陶醉于阅读后的满足不如去写两行代码。



其次你可以利用你的兴趣,比如你看到一个好玩的游戏,你可以想想:“我怎么能做一个功能相似的小玩意出来?做不到的话我能不能做个简化版的?”用自己所学到的知识尝试实现一下,不管有没有结果,有尝试有思考就是进步。



当然,你也可以找一些开源项目进行练习。找一些小项目进行练习不仅能够提高你的编码能力,还可以在实践中发现自己的不足。通过不断地练习,你一定会成为你想变成的大神。另外,你如果感觉自学C/C++语言有困难的话,笔者是一个C/C++出身的程序员,整理了一些学习C语言的视频在扣裙,大家有兴趣可以一起来学习,C/C++编程学习,--先784;1,43-后-133。



除了编程语言,还要学什么?

如果你想成为一位计算机大神,仅仅学懂一门编程语言当然是不够的。

如果你还是一名中小学生或大学生,笔者建议你可以走竞赛路线。中小学生参加 NOIP(信息学奥赛)不仅能够培养自身的编程思维,对升学考试也是有非常大的帮助;大学生可以选择参加 ACM-ICPC 或蓝桥杯等竞赛,这些竞赛除了能够锻炼自己的算法能力,对毕业后找工作的帮助也是极大的。



算法竞赛类课程推荐:

入门程序语言课

C++ 程序设计

竞赛基础

快速提升代码能力 基础数据结构

搜索入门 动态规划基础

树状数组和线段树 数论和基础数学

图和树基础 最短路

图论基础算法

竞赛进阶

匹配和网络流基础 字符串算法

后缀数组 动态规划进阶

组合数学

如果你已经工作或将要工作,在工程中的工程协作技能、运用数据结构解决工程问题,熟悉操作系统的内在机制的能力非常重要。笔者推荐你可以学的求职套餐:

工程能力准备

C++ 程序设计 数据结构(C++ 版)

面向对象的程序设计(C++)

工程实践基础 数据库系统概论

操作系统入门与系统编程

笔试/面试准备

计算机专业求职导引 二分法

分治算法 动态规划

链表 栈和队列

版权声明:本站所有文章皆是来自互联网,如内容侵权可以联系我们( 微信:bisheco )删除!

相关推荐

    友情链接
    币圈社群欧易官网