c/c++这么难学,那么学会了究竟有多牛X呢?

CMake入门——从零开始学会C/C++项目构建 本文全面介绍CMake的使用方法,从基础入门到实用技巧,帮助开发者掌握现代C/C++项目的构建管理。 阅读详情

1、C和C++够笨,逼的程序员自己做很多事。

C其实大家都知道,是一门中低级语言,保留了指针等汇编特征,与系统底层结合密切。C++呢,更多的向个Object C,即面向对象的C。但这些,其实并不能够让程序员显得很牛。个人的理解,之所以C和C++程序员显得很牛,其实原因和大家想像的正好相反,不是因为C和C++太强大,而是这两门语言太弱智了。

C和C++,由于设计时,主要针对系统底层,操作系统层面的应用,因此,其提供的核心基本库相对比较简陋,没有提供很多华丽的框架,VC的MFC不算啊,那是针对Windows的,不是C++的基本特性。这直接导致了C和C++程序员,在进行大型开发时,缺乏现成的框架模板可以使用,也没有太多的工具库可以使用,像Java等其他语言,基本都提供了常见的几乎所有数据结构类,或者工具模块,不过,C和C++没有,搞得C和C++程序员,这群可怜的娃,啥事都喜欢自己做。

2、C和C++够通用,逼的程序员广种薄收。

这个通用,分两层意思。

一个是从应用角度,C和C++是目前我见到唯一的可以适应任何应用场合的语言,它对应用通用。起码,除了汇编语言,C和C++大概是唯一用来写操作系统的语言了,很多底层的驱动程序,操作系统内核级模块,只能用C和C++来开发,因此,一个C和C++程序员,他唯一不知道的,可能就是不知道自己以后会去写什么平台的什么程序,这要求他必须努力学习很多语言之外的知识,为下一份工作做好知识储备。

第二个是从跨平台来说,C和C++又不是很通用,虽然从第一天开始,C就吹嘘自己很牛叉,是跨平台语言,但是,就我个人的经验,可以很负责任地告诉大家,它在吹牛。

没错,作为基本语句,C和C++程序可以到大多数平台的编译器下开发,不过,稍微涉及应用一点的库,差异就很大,比如同样的socket编程,Windows下和Linux下就有很大差异,什么线程库啦,很多,差异都很大。不过,日常工程开发,离了这堆库,程序员估计也不用做什么事了,因此,很多C和C++程序员自从被骗得上了贼船,没办法,就得面对无穷无尽的学习,操作系统,任务调度,内存管理,资源管理,很多都得自己来,去理解各个操作系统的差异性,然后自己写程序来适应。

这么弄下来,搞得C和C++的程序员,无形中对于很多语言之外的知识,掌握得就多一点了。

3、C和C++不是一门应用级的语言,其程序员的要求也不是应用程序员的要求

应该说,这已经是很大的市场了,足以让一个程序员吃一辈子的饭,因此,学会了这类语言以及应用开发,一般已经可以再80%~90%的开发市场找到饭碗了。这种事情想多了,不用说大家也知道,对自己的水平无形中,有一点点促进,因此,C和C++程序员往往看问题会深入一点,善于思考。

4、C和C++是高性能应用的唯一选择,这造成程序员必须学习优化

我们知道,虽然很多语言都可以写游戏,不过,作为大型游戏系统,比如暗黑破坏神吧,还有很多网游,出于高性能图形动画的需求,必须使用C和C++来实现,才能保证效率。很多大型网站的后台数据库,为了响应高吞吐量,高并发量的客户请求,也需要使用C和C++进行优化。这就造成了,C和C++程序员一玩就是大的,必须对优化非常熟悉才行。我们知道,优化,有两个要求,一是对各类算法必须很熟悉,可以进行算法比较,另外,也是需求分析的专家,可以根据需求特性,做量身定做的优化。这就要求C和C++程序员,经常陷入算法比对之类的任务,而且,也不能仅仅做一个程序员,还必须时刻思考客户需求,对需求做不断的再分析,才能找出优化之路。

我们知道,任何事情,做多了,就成熟练工了,自然也就来得快,C和C++程序员就是这个样子。可能还有很多其他理由,不过,我匆忙间,也就想出这几条。不过,大家可以看到,日久天长,C和C++程序员,不管是否自愿,但工作和学习中,确实比别语言的程序员在多想,多看,多学,自然而然,就显得很牛叉了。

所谓功夫在诗外,又所谓穷人孩子早当家,C和C++之所以显得牛人多,并不是这两门语言有多好,其实恰恰相反,是这两门语言没有给程序员提供太多帮助,而其应用环境又太多太广太深,逼的程序员在自我不断的学习,几年,十几年下来,自然显得比小日子过的还算不错的其他语言程序员,要深入一点。

“作为一名从事了10年开发的老程序员,最近我花了一些时间整理关于C语言、C++,自己有做的材料的整合,一个完整的学习C语言、C++的路线,学习材料和工具。C/C++、编程爱好者的聚集地!欢迎初学和进阶中的小伙伴。希望你也能凭自己的努力,成为下一个优秀的程序员。工作需要、感兴趣、为了入行、转行需要学习C/C++的伙伴可以跟我一起学习!”

最后分享一张C/C++学习路线图给爱学习的小伙伴们

为 Compose MultiPlatform 添加 C/C++ 支持(3):实战 Desktop、Android、iOS 调用同一个 C/C++ 代码 通过上面两个小节的讲解,相信读者也看出问题来了,这时候如果我再说调用 C 的运算速度实际上比直接使用 kotlin 还慢读者应该也恍然大悟知道什么原因了吧。其实并不是 C 本身慢,而在于我为了在调用 C 的同时复用 C 代码,做了大量的数据转换工作,而每次数据转换的代价都是极其昂贵的,这就导致运算时间反而相比于直接使用 kt 计算还要慢了。这也是我说的使用这个项目举例是不恰当的原因,因为这就相当于为了这碗醋还特意去大张旗鼓的包了顿饺子一样。 阅读详情

相关推荐

C/C++新手入门项目合集:GitHub资源库0voice/introduce_c-cpp_manual详解

C/C++作为系统级编程语言,其核心价值在于对计算机底层原理的深入理解和高效控制。从内存管理、指针操作到数据结构与算法,掌握这些基础概念是构建高性能应用的关键。在工程实践中,理论学习之后往往面临“如何将知识转化为实际项目”的痛点。开源社区为此提供了丰富的练手资源,其中GitHub上的项目合集成为开发者从入门到进阶的重要桥梁。这些资源覆盖了网络编程、并发处理、图形界面等核心应用场景,通过阅读和修改真实代码,能够有效提升工程思维和调试能力。本文聚焦的 `0voice/introduce_c-cpp_manual

weixin_30546189的博客 334

学会C/C++的人到底有多厉害呢?

喜欢的可以收藏转发加关注 1、C和C++够笨,逼的程序员自己做很多事。 C其实大家都知道,是一门中低级语言,保留了指针等汇编特征,与系统底层结合密切。C++呢,更多的向个Object C,即面向对象的C。但这些,其实并不能够让程序员显得很牛。 个人的理解,之所以C和C++程序员显得很牛,其实原因和大家想像的正好相反,不是因为C和C++太强大,而是这两门语言太弱智了。 C和C++,由于...

weixin_45249120的博客 3696

在Windows上用VSCode和w64devkit搭建C/C++开发环境

在Windows上配置C/C++开发环境,核心在于区分编辑器与编译器。VSCode作为编辑器,仅提供代码编辑与提示,真正的编译和调试依赖GCC、GDB等工具链。w64devkit作为一款便携式MinGW-w64工具集,包含gcc、g++、gdb,解压即用,无需管理员权限,适合快速搭建学习环境。通过配置tasks.json和launch.json,即可在VSCode中实现一键编译、运行和断点调试。本环境适用于课程练习与小型项目,为后续学习Makefile或CMake打下基础。本文以w64devkit为工具链,

cigang4063的博客 607

【踩坑日记】double的精度还是不够啊!-> decimal

这样的话 Round返回的是decimal,这样的话精度够高,就没有出现精度丢失的情况了。

songhuangong123的博客 1040

2023年12月 C/C++(五级)真题解析#中国电子学会#全国青少年软件编程等级考试

题目包括:书架、抓牛、鸣人和佐助、献给阿尔吉侬的花束

人生就是一个不断学习的过程 1642

2021年09月 C/C++(五级)真题解析#中国电子学会#全国青少年软件编程等级考试

农夫知道一头牛的位置,想要抓住它。农夫和牛都位于数轴上,农夫起始位于点N(0

人生就是一个不断学习的过程 1006

C语言基础~看这篇文章就足够了(一)

C语言基础~基本语法编译型语言和解释型语言的区别编译型语言解释型语言使用vscode编写c语言编写c语言第一个程序helloWorldC语言基本语法一、基本数据类型关于puts和printf从键盘输入数据C语言中的正负数强制类型转换二、基本分支和循环结构if、else if 、else分支以及switch注意关系运算符逻辑运算符三元运算基本循环语句while循环for循环三、数组的基本使用二维数组字符数组四、函数的基本使用函数声明和定义局部变量和全局变量五、关于指针指针变量字符串声明的第二种方式指针函数六、

pycharm_k的博客 7910

VASPKIT绘制平面平均电荷差分密度

平面平均密度差(planar-averaged electron density difference)是密度差的衍生。密度差是个三维空间函数,经常通过绘制平面图、等值面图方式图形化考察。虽然这两种图很直观,但平面图会受到截面选取的影响,而等值面图会受到等值面数值(isovalue)选取的影响,因此都有一定任意性,也不容易定量讨论。对于电子转移有比较明确方向的情况,可以绘制平面平均密度差曲线,由此可以清楚地考察垂直于选取的方向上每个截面上的密度差积分值,在定量讨论、对比上比较便利。

weixin_43948934的博客 1万+

计算机考研面试汇总

数据结构 数据三要素----数据的:逻辑结构,存储结构,运算 时间复杂度–将算法中基本运算的执行次数的数量级作为时间复杂度。 顺序表有哪些缺点?(逻辑上相邻的元素,在物理位置上也相邻) 优点:顺序表支持随机存取,存储密度大 缺点:插入和删除元素需要移动大量的元素(近一半) 注意:动态分配内存并不是链式存储结构,依然属于顺序存储结构,支持随机存取方式,只是分配的空间大小在运行时动态决定。 链表有哪些缺点?(逻辑上相邻的元素,在物理位置上不一定相邻) 优点:便于插入删除等操作,只要改变指针就行。不用考虑溢出问题

this is my house 4768

大数据之VIP(Virtual IP,虚拟IP)负载均衡

VIP(Virtual IP,虚拟IP)负载均衡是一种在计算机网络中常用的技术,用于将网络请求流量均匀地分散到多个服务器上,以提高系统的可扩展性、可靠性和性能。

赵玉的专栏 4122

星网锐捷语音网关密码重置全攻略:两种高效恢复出厂设置方法详解

本文详细解析了星网锐捷语音网关密码重置的两种高效方法,包括通过eth1通用口和eth0管理口的操作步骤。针对不同型号设备,提供硬件连接、Web控制台登录及CRT工具使用的具体指南,帮助用户快速恢复出厂设置并重建语音环境配置。

weixin_28698059的博客 527

C++底层机制(一)——开篇

   很少有人质疑C语言生成代码的高效和精悍,然而C++究竟能多么接近C语言的水平呢?   相信长期以来存在这样的共识,核心算法为了效率常常抛弃C++而使用C,他们认为C++庞大又迟缓,比如他们拒绝使用C++编写数据库引擎,他们说:“继承和重载降低效率,并且C++背着你做很多事情”   我相信通过之后的一系列文章,会帮助您破除围绕在C++周围的迷信和传说。   除此之外,了解C++底层机制还能帮助您调试代码,同时避免将C语言的技巧移植到C++时,陷入险境。   另外,对于一些某些只提供C语言接口的平台,比如

蛛丝 2320

Workbench下列车转向架随机振动疲劳分析

结果中添加功率谱响应工具(Response PSD Tool),可以查看几何体以及远程点上的功率谱密度,如下图11所示,这里查看几何体上某一硬点的加速度功率谱密度响应曲线,如下图12所示。结果中添加疲劳工具(Fatigue Tool),查看列车转向架的疲劳寿命情况,这里采用窄带的寿命假设理论,曝光时间为1s指明计算出的疲劳寿命的基本单位是秒,寿命结果如下图14所示,可以看到最大寿命为1e35s,最小寿命为2.3542e18s,注意单位制,可再次基础上将其转换为小时或天。频域上的统计计算,软件很快计算完成。

ansysxuexizhe的博客 2602

学汇编语言再学C容易,c/c++这么难学那么学会了究竟有多牛X呢(唯一适应任何应用的语言通用除了汇编语言是唯一用来写操作系统的语言)...

1、C和C 够笨,逼的程序员自己做很多事。C其实大家都知道,是一门中低级语言,保留了指针等汇编特征,与系统底层结合密切。C 呢,更多的向个Object C,即面向对象的C。但这些,其实并不能够让程序员显得很牛。个人的理解,之所以C和C 程序员显得很牛,其实原因和大家想像的正好相反,不是因为C和C 太强大,而是这两门语言太弱智了。C和C ,由于设计时,主要针对系统底层,操作系统层面的应用,因此,其提...

weixin_42443651的博客 2250

window下移动设备/硬盘报错位置不可用

移动硬盘指示灯亮,但电脑上不显示 报错信息 : 无法访问E:\。参数错误。 报错原因: 移动硬盘打不开提示参数错误,是因为这个H盘的文件系统内部结构损坏导致的。要怎么恢复里面的数据呢? https://jingyan.baidu.com/article/cb5d6105a80242005c2fe0c3.html 解决办法 : 不用格式化修复方法 方法一: 1、单击–开始–运行–输入cmd; 2、...

qq_40907977的博客 4928

【同等学力】01-逻辑符号表达

F(x): x是确诊者,G(x):x有症状F(x): x是老人,G(x):x是宠物,L(x,y): x喜欢y。

super_mochi1 1880

C/C++这么难,那学会C/C++的人到底有多牛X呢?

1、C和C++够笨,逼的程序员自己做很多事。 C其实大家都知道,是一门中低级语言,保留了指针等汇编特征,与系统底层结合密切。C++呢,更多的向个Object C,即面向对象的C。但这些,其实并不能够让程序员显得很牛。 个人的理解,之所以C和C++程序员显得很牛,其实原因和大家想像的正好相反,不是因为C和C++太强大,而是这两门语言太弱智了。 C和C++,由于设计时,主要针对系统底层,操作系统...

小白的逆袭 724

区块链技术与应用 【全国职业院校技能大赛国赛题目解析】Caliper从0到使用

技能大赛样题解析,caliper题目从0到使用

weixin_52865146的博客 2076

C/C++这么难,学会了C/C++的人到底有多牛X呢?

1、C和C++够笨,逼的程序员自己做很多事。 C其实大家都知道,是一门中低级语言,保留了指针等汇编特征,与系统底层结合密切。C++呢,更多的向个Object C,即面向对象的C。但这些,其实并不能够让程序员显得很牛。 个人的理解,之所以C和C++程序员显得很牛,其实原因和大家想像的正好相反,不是因为C和C++太强大,而是这两门语言太弱智了。 C和C++,由于设计时,主要针对系统底层,操作系统层面的应用,因此,其提供的核心基本库相对比较简陋,没有提供很多华...

南风fahaxiki 648

AI智算-K8s如何利用IB RDMA网络加速大模型分布式训练

在AI人工智能领域,大模型的微调是提升性能不可或缺的一环。通过结合InfiniBand RDMA网络的高速互联、Kubernetes的云原生容器化部署,以及智能算力调度平台,可以打造一个高效、灵活且可扩展的分布式训练环境。

Kason_iWiki 815

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

推荐一些适合新手练手的C/C++项目

最好的编程语言是什么?一千个程序员或许会有一千零一种答案:Python在人工智能时代的风头正盛、Java依旧是市场上的香饽饽、当然还有PHP;JavaScript、C#、Ruby以及Objective-C……每一种编程语言,都有由其打造的顶级应用成果呈现。根据TIOBE 刚刚发布了 5 月编程语言排行榜,排名前三的依旧有C/C++。而且都出现了不同幅度的增长,C语言增长幅度最高达到7%,C++增长...

stone15165的博客 3万+

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

VScode C/C++环境配置及CMake工程搭建

VScode C/C++环境配置及CMake工程搭建 文章目录VScode C/C++环境配置及CMake工程搭建@[toc]1. 下载所需文件1.1 MinGw1.2 CMake2. 添加环境变量3. 配置C/C++环境3.1 安装c/c++插件3.2 配置相关文件4. 配置CMake环境4.1 安装Cmake和Cmake tools插件4.2 CMake配置5. 工程文件 1. 下载所需文件 ​ 可以下载免安装版或安装版 1.1 MinGw 配置C/C++编译环境需要 官方下载地址 https://

小尾巴的博客 1759

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Windows下置emacs编译C/C++程序

<br />先记下来,以免日后需要<br /> <br />先是设置home<br />Win+R  regedit打开注册表<br />software-GNU-Emacs 在右边新建字符串值 右击修改把你想要home在的目录进去,例如我的是D:/Emacs/emacs-23.2<br />安装cedet和ecb<br />下载cedet-1.0  ecb-2.40目前是最新的<br /> <br /><br />Windows 下编译安装,在命令行下,进入到 cedit 的目录,输入命令:<br />>

6624

Java转C之快速上手理解C/C++项目

在.h// utils.h1024MAX_BUF为常量宏,在utils.c里使用该宏限制缓冲大小。条件编译(fprintfstderr#else如果编译时使用-DDEBUG选项,则启用调试日志。这种代码不在Java中常见,但在C/C++中很普遍。从构建文件看整体编译过程Makefile或CMakeLists.txt中列出源文件清单(.c、.cpp)和编译器参数,可推断项目结构和语言特性混用情况。明确不同文件类型角色.h:声明接口和数据结构(像Java接口/头信息).c。

pumpkin84514的博客 1541

轻松学会 GDB:调试 C/C++ 程序的必备技能

GDB(GNU Debugger)是用于调试 C、C++ 等语言的强大工具。它允许开发者执行以下操作:启动程序并按照预期条件暂停(如断点处)。检查程序中的变量和内存状态。单步执行代码,观察每一步的变化。修改运行中的变量值以测试不同的假设。调试程序崩溃、段错误等问题。GDB 是一个功能强大且灵活的调试工具,即使在现代 IDE 广泛集成调试器的情况下,它仍然具备不可替代的价值。通过这篇博客,我们了解了 GDB 的基础用法、优缺点以及如何在 Windows 系统下安装和验证。

海&的博客 2099
上一篇: C语言这么难,为何大家都如飞蛾扑火般学习?现在带你揭秘
下一篇: C/C++基础语法复习(二):C++ 面向对象编程,你需要知道的点
CodingPs
博客等级 码龄7年 182粉丝 253原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值