本文最初发表于Level Up Coding Blog。
掌握 C++ 可不容易,但一旦你掌握了,就会获得丰厚的回报。
程序员在其编程生涯中通常会使用多种编程语言。然而,我们也发现一些程序员总是使用相同的编程语言。例如,我们经常会遇到具有数十年经验的Java专家和C#专家。然而,学习多种语言可以帮助你在软件开发生涯中变得更加自信和熟练。例如,掌握Go语言将帮助您理解一些伟大的语言设计概念并提高您的一般编程技能。
学习Python 也是一个好主意,因为Python 知识可以让你编写自动化脚本,这会非常高效。学习一门新的编程语言肯定会给你带来独特的经验和新的技术专业知识。与其他流行的编程语言相比,C++ 语言具有许多优点。与其他现代语言不同,学习C++ 绝非易事,而且需要时间。因此,现在大多数程序员都跳过学习C++,转而学习提供更抽象开发环境的现代语言。
了解为什么学习C++ 对于想要成为编程专家的程序员至关重要。
C++ 激励你学习计算机科学基础知识
任何技术上可靠的软件程序背后都有一些核心计算机科学理论。例如,Git 程序使用图论、哈希和许多基本的计算机科学算法。例如,以下是Git 存储库的合并排序的实现:
Git中的合并排序实现,作者截图
如今,每个商业实体通常都会转向云计算生态系统,并努力实现业务流程自动化。因此,当今大多数程序员通过编程来解决业务问题,而不是与计算机科学相关的问题。
但即使在从事面向业务的软件开发项目时,我们也经常应用计算机科学理论来编写更好的代码并使软件更高效。因此,计算机科学的理论知识对于每个程序员来说都是必不可少的。
毫无疑问,C++ 是一种高级语言,它提供了比C 更高级别的人类友好抽象。然而,C++ 和C 语言一样,鼓励使用指针和手动内存管理。此外,C++ 标准库的设计重点是计算机科学概念、性能、灵活性以及开发的简易性。因此,当您学习C++ 时,您就在不知不觉中学习了计算机科学的基础知识。
使用 C++ 构建轻量级、高性能、简单的解决方案
大多数现代编程语言都专注于使用类似伪代码的语法来隐藏底层技术细节,很少考虑性能、轻量级或灵活性。然而,C++ 仍然可以生成轻量级二进制文件,使其成为创建面向性能的软件系统的理想选择。
像Golang 这样的现代编程语言通过提供最小的类似C 的语法和自动内存管理(通过垃圾收集)来与C++ 竞争。然而,Go 生成的二进制文件非常大,不适合轻量级场景。大多数程序员使用Go 来构建高性能云工具,因为二进制大小在云环境中不是问题。在高性能、轻量级软件开发方面,程序员更喜欢C++ 而不是Go。
Go 通常是静态链接的标准库实现,导入fmt 会将Go 的最小二进制文件从1.2MB 增加到1.8MB。 C++ 通常是动态链接的,并且包含iostream 会将最小二进制文件从16.5 KB 增加到17.3 KB。在GNU/Linux 平台上,Go 二进制文件大小增加了50%,而C++ 二进制文件大小增加了不到5%。
上面的简单实验证明C++适合高性能、轻量级的软件开发。 C++ 是一种功能齐全且复杂的语言,但您可以通过选择您喜欢的功能来编写最少的代码。以下文章将帮助您练习用编程语言编写最少的代码:帮助您编写更好代码的5 个编程原则。
C++ 技巧能让你更快地学习其他编程
语言程序员根据自己的喜好学习不同的编程语言。一些程序员在开始从事企业级软件开发项目时学习编程语言。同时,一些程序员倾向于将学习编程语言作为一种爱好。有些语言很容易学习,而另一些语言则需要反复试验才能获得更多经验。
由于C++ 语法复杂(C++ 有60 个关键字)、通用标准库、面向硬件的开发环境以及鲜为人知的最佳实践,因此获得C++ 的专业实践经验将需要更多时间。 C++ 是一种多范式、多功能的编程语言。这意味着您在使用C++ 编写代码时可以开发自己的编程风格和最佳实践。
学习C++标准库和开发模式需要扎实的计算机科学知识和技术技能。因此,一旦熟悉了C++,学习一门新语言就很容易了。
与操作系统 API 交互的最佳语言
每个操作系统都为开发人员提供了一个可编程接口,用于处理操作系统级操作,例如进程管理、文件处理、GUI 渲染和网络请求处理(通过套接字)。所有操作系统都是用C/C++ 编写的,因此所有这些API 都公开基于C/C++ 的接口。
GNU/Linux系统以C语言头文件的形式提供Unix风格的API和GTK GUI库。 MacOS 还通过Apple Clang LLVM 编译器提供了Objective-C 接口。因此,C++是C的超集,Apple编译器允许开发人员混合C++和Objective-C,允许他们使用C++直接访问任何操作系统级API。例如,查看Electron 如何在C++ 源文件中使用GTK C 头文件。
Electron文件选择对话框源代码,作者截图
另一方面,所有其他编程语言都需要特定于语言的绑定才能访问操作系统的API。因此,几乎所有操作系统级框架都是用C++编写的。查看这些基于C++ 的框架。
ElectronReact NativeFlutterNeutralinojs
此外,Chromium、Firefox、Tensorflow、LLVM 和V8 等大型软件项目也使用C++ 作为主要开发语言。
C++ 知识有助于你做出更好的技术决策
程序员不仅要按照规范编写代码,还要设计软件系统和组织项目结构。设计阶段在软件开发中非常重要,因为它为整个软件系统奠定了基础。技术决策通常需要在设计和开发阶段做出。
C++ 是一种复杂的语言。 —— 解决同一编程问题有多种方法。此外,尽管C++ 被设计为一种快速语言,但程序员可以完全控制程序的执行,并可以根据自己的意愿优化代码。因此,您应该根据自己的喜好做出谨慎的技术决策,并选择最适合您需求的C++ 功能。
虽然C++是一种多范式语言,但我们都知道它是一种基于OOP的语言。一些程序员在使用C++ 进行编程时遵循传统的OOP 范例。同时,一些程序员在使用C++ 进行编程时使用过程式编程范例和函数式编程范例。在某些情况下,您可能需要避免使用某些C++ 功能来简化源代码。例如,Google 的C++ 风格指南建议不要使用C++ 异常。所有这些情况都可以提高你的技术决策能力。
小结
了解在编程职业生涯中学习C++ 的好处。目前有超过20 种稳定、功能齐全且流行的编程语言。没有一种编程语言被称为“最好的编程语言” —— 所有编程语言都在特定领域表现良好。所以学习五种你最喜欢的编程语言并称它们为“我最好的编程语言”是一个明智的决定。
如果我们仔细挑选五种编程语言,从各方面考虑,C/C++肯定会榜上有名。在这篇文章中,我将讨论我最喜欢的编程语言:每个开发人员都应该学习的5 种编程语言。
学习C++ 而不学习C 就像学习React.js 应用程序开发而不尝试原生JavaScript 和DOM—— 一样。因此,先学习C,然后再学习C++ 可以为您的编程生涯带来上述所有好处。
感谢您的阅读。
显示英文原文。
https://levelup.gitconnected.com/why-every-programmer-Should-learn-c-during-their-careers-959e1bc2ea68
如果您想了解更多软件开发及相关领域的知识,请点击访问InfoQ官网(https://www.infoq.cn/)了解更多精彩内容。
版权声明:本文转载于网络,版权归作者所有。如有侵权,请联系本站编辑删除。