热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

为什么要继续学习C/C++的7个理由

由于以下原因,许多程序员对CC编程语言感到沮丧并倾向于:(1)非常陡峭的学习曲线许多人通过学习C或C进入了编程世界ÿ

由于以下原因,许多程序员对C / C ++编程语言感到沮丧并倾向于:

(1)非常陡峭的学习曲线

许多人通过学习C或C ++进入了编程世界,但这是
对于他们而言,很难很好地学习和掌握这两种语言
因为他们在处理底层编程时感到沮丧
元素,例如指针,内存存储模型,地址对齐,
模板扩展,多线程数据争用等等。 如果这些
元素处理不当,应用程序将很有可能
崩溃的问题,这会使新程序员感到沮丧。

(2)很少用于现代应用程序开发

如今,我们拥有许多高级编程语言,例如Java,C#,
Python,Javascript,Go等用于应用程序开发,看来
如果有人想开发Web应用程序或后端服务,那将很疯狂
在纯C / C ++中。 共同的应用领域已由
更高级的编程语言,例如:

  • Web前端开发: Javascript / Typescript统治一切,前端中三个流行的框架是Angular,React和Vue。
  • Web后端服务开发: Javascript(节点),Python(Flask,Django),Java和PHP是常用的技术。
  • 桌面应用程序开发: QT(PyQT,C ++),Electron(Javascript),WPF(C#)。
  • 移动应用程序开发: iOS(Objective-C,Swift),Android(Java)。
  • 分布式系统,大数据,云计算: Java,Go,Groovy,Scala。
  • 数据科学,人工智能(人工智能),机器学习(机器学习): Python。

看起来C / C ++在这些现代应用程序中很少使用
开发区。 那么为什么我们还要学习C / C ++呢? 这是7
您应该这样做的原因:

1.更快地掌握其他高级编程语言。

几乎所有其他现代编程语言和流行的库都是由C / C ++构建的。 以下是一些典型示例:

– Java:Java虚拟机热点的核心是用C ++实现的。

– Python:Python解释器是用C实现的。

– Javascript:最受欢迎的Javascript引擎V8是用C ++实现的。

– Numpy:Python最受欢迎的科学图书馆之一
在AI和ML中被广泛使用,但其核心模块在C中实现。

如果您只记得编程语言的语法或可以使用
通用库很好,这并不意味着您真正掌握了
编程语言。 了解语言背后的理论可以有所帮助
您可以更有效地使用该语言开发应用程序,然后
表示您真正掌握了该语言。 但是所有的前提
那就是您必须非常了解C / C ++。

2.带来表现。

在使用高级编程语言进行编程时,我们主要关注
关于功能的实施。 我们通常使用以下准则
避免愚蠢错误的最佳实践,但当这种情况不足时
您需要获得更好的性能。 更好的性能需要谨慎
进行分析和分析以找出哪些代码是性能热点
以及如何以更有效的方式重写它们。

如果您足够了解C / C ++,那么它将帮助您获得更好的成绩
性能,因为您知道这些高级编程语言的方式
以最低级别运行。 您将能够更快地发现问题
这可能是性能下降,昂贵的CPU指令,
缓存未命中,上下文切换的权衡或其他原因。

3.很好地理解计算机的基本理论。

计算机网络,操作系统,计算机体系结构和
编译器理论是最重要的四个基本计算机
理论和我们几乎所有的新技术都基于这些
四。

如果您只是使用高级编程语言进行编程,
这些机器级别的详细信息通常对您是隐藏的。 但是这些
如果您想跳出现有技术,技术真的很重要
框架并开发更多内容。

例如,当网络状态不稳定且您需要
可靠的连接,您将无法解决TCP问题,因为TCP
由于重传超时较大,因此带来较大的延迟。 又怎样
你应该这样做吗?

如果您很了解计算机网络,则可以构建自己的计算机网络。
可靠的协议,具有更积极,更有效的重传
计划。 然后,您需要将其集成到网络的SDK中,
您可能需要了解如何在
操作系统。 您的实施应该高效,因此您必须
也非常了解计算机架构,例如使用CPU缓存,
内存和网络适配器。 最后,如果你想
提供其他高级语言(如Python)的API接口,
Javascript等,您需要了解语言绑定的工作原理以及
编译器理论对此有所帮助。

最重要的是,所有这些关键技术都基于C / C ++。

4. C / C ++为世界提供动力

C / C ++无处不在。 特别是,它们提供的技术比我们认为的要多。

大多数操作系统内核都是用C编写的,包括但不限于Windows,Linux,Mac,iOS,Android等。

现代浏览器也是用C / C ++编写的。 例如Chrome,Firefox等。

现代游戏引擎是用C / C ++编写的,例如Unity3D,虚幻引擎,cocos2d-x等。

如上所述,编程语言的编译器和解释器也都在C / C ++中实现。

根据2018年3月的TIOBE指数,C / C ++仍然是最
流行语言。 所以不要犹豫,继续学习这两个
仍在为世界提供动力的语言。

5.语言接口

这里的问题是C ++接口和ABI(应用
二进制接口)不是标准化的,并且取决于您使用的编译器
用过的。 如果该库是使用其他编译器(甚至是
其他版本),则可能无法调用它。

对于定义和标准化接口并且也被许多其他语言使用的C而言并非如此。

6. C ++编译器产生的高效机器代码

嗯不 C ++不仅遭受与C相同的问题(
语言基本上无法对代码做出任何保证),
它的语法极其复杂,阻止了编译器对其进行编译
正确!

OCaml编译器可以产生比C更快的代码是有原因的
编译器,以及为什么C ++程序在编译时如此庞大。

7.如果您不懂C ++,您几乎不会被视为黑客。

这是产生火焰战争的极好点,因为它依赖
完全取决于您对黑客的定义以及您对C ++的看法。

就我个人而言,我知道C ++,并且我想回去度过一生
使用该语言。 C ++不必要地复杂,“ OO”是
开玩笑,它有这么多隐藏的陷阱,我很惊讶没有人
被C ++编译器吃掉了。

而且C ++是C的几乎完整的超集这一事实可能具有
赢得C程序员是一个好主意,但这也意味着您
得到所有Cs问题,例如预处理器和转换等。

一个热衷于编程语言的人可能知道C ++,但我无法想象他们真的喜欢它。


因此,开始使用C / C ++并继续学习。 不要被吓到
它的难度和陡峭的学习曲线。 一旦掌握了它们,
您将获得比您预期更多的知识!

摘要

计算机不是关于计算,它们是关于
信息-组织,检索和操纵它。 你想要
写高效的程序? 然后,您需要了解和学习工作
与数据结构。 数据结构和算法告诉您如何
可以充分利用您精通的编程语言。 拿起C
和C ++并实现和试用数据结构,并了解如何
令人兴奋的是。 尽管出现了新贵,但可靠的C和C ++
继续成为几种编程语言的选择
应用程序。

From: https://hackernoon.com/7-reasons-why-you-should-keep-learning-cc-cl423zgx



推荐阅读
  • TCP长连接设备管理平台:架构与功能概览
    本文介绍了基于TCP长连接的设备管理平台的设计理念、技术选型及主要功能模块。最初,项目旨在实现简单的协议测试,但随着需求扩展,逐步演变为一个完整的前后端分离系统。 ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • 本文将介绍网易NEC CSS框架的规范及其在实际项目中的应用。通过详细解析其分类和命名规则,探讨如何编写高效、可维护的CSS代码,并分享一些实用的学习心得。 ... [详细]
  • 本文详细探讨了如何通过分析单个或多个线程在瓶颈情况下的表现,来了解处理器资源的消耗。无论是单进程还是多进程环境,监控关键指标如线程数量、占用时间及调度优先级等,有助于揭示潜在的性能问题。 ... [详细]
  • 根据最新发布的《互联网人才趋势报告》,尽管大量IT从业者已转向Python开发,但随着人工智能和大数据领域的迅猛发展,仍存在巨大的人才缺口。本文将详细介绍如何使用Python编写一个简单的爬虫程序,并提供完整的代码示例。 ... [详细]
  • 本文介绍如何使用Python进行文本处理,包括分词和生成词云图。通过整合多个文本文件、去除停用词并生成词云图,展示文本数据的可视化分析方法。 ... [详细]
  • 本文详细介绍了中央电视台电影频道的节目预告,并通过专业工具分析了其加载方式,确保用户能够获取最准确的电视节目信息。 ... [详细]
  • 本文详细探讨了JDBC(Java数据库连接)的内部机制,重点分析其作为服务提供者接口(SPI)框架的应用。通过类图和代码示例,展示了JDBC如何注册驱动程序、建立数据库连接以及执行SQL查询的过程。 ... [详细]
  • MySQL索引详解与优化
    本文深入探讨了MySQL中的索引机制,包括索引的基本概念、优势与劣势、分类及其实现原理,并详细介绍了索引的使用场景和优化技巧。通过具体示例,帮助读者更好地理解和应用索引以提升数据库性能。 ... [详细]
  • 本文探讨了《魔兽世界》中红蓝两方阵营在备战阶段的策略与实现方法,通过代码展示了双方如何根据资源和兵种特性进行战士生产。 ... [详细]
  • 装饰器是一种用于在不修改原函数代码的情况下,动态地添加功能的工具。它允许你在函数执行前后插入额外的逻辑,从而增强或改变函数的行为。 ... [详细]
  • 本文将深入探讨PHP编程语言的基本概念,并解释PHP概念股的含义。通过详细解析,帮助读者理解PHP在Web开发和股票市场中的重要性。 ... [详细]
  • 本文介绍如何在现有网络中部署基于Linux系统的透明防火墙(网桥模式),以实现灵活的时间段控制、流量限制等功能。通过详细的步骤和配置说明,确保内部网络的安全性和稳定性。 ... [详细]
  • 本文详细介绍了Python编程语言的学习路径,涵盖基础语法、常用组件、开发工具、数据库管理、Web服务开发、大数据分析、人工智能、爬虫开发及办公自动化等多个方向。通过系统化的学习计划,帮助初学者快速掌握Python的核心技能。 ... [详细]
  • 作为一名专业的Web前端工程师,掌握HTML和CSS的命名规范是至关重要的。良好的命名习惯不仅有助于提高代码的可读性和维护性,还能促进团队协作。本文将详细介绍Web前端开发中常用的HTML和CSS命名规范,并提供实用的建议。 ... [详细]
author-avatar
泥泥的春天_565_576
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有