多年后再回头看C语言对未来职业的重大意义

以前录制的《C语言,好爽》的视频中都是在写windows上的C语言,昨天突然在linux上写了个C和C++程序,没想到居然收到许多迷惑的朋友在问“这有什么意义”,“直接在windows上用IDE爽多了”之类的话,当时我只能说:等你以后就知道了。这以后可能是5年后,可能是10年后,才会懂得,才会得到印证。但是时间过去了,机遇过去了,懂了又有什么意义?闲白了少年头,空悲切。

现在我根据自己的感觉总结一下原因,听得懂就最好了。

C语言的重大意义不在于它本身能开发多漂亮的东西,也不在于用它来找工作多么的受欢迎,跟不在于它的薪资有多高。很多人被这些表面的东西迷糊了。是以直接得出结论:C语言没什么用。但是,可以告诉你,但凡一个大学的理工科,如果不开C语言,就是不负责任了。

为什么这么说?

C语言是从效率、性能、友好性来说最合适的底层编程语言(除了汇编,但汇编友好性不好),训练的是基础的编程内功心法,认识的是智能世界!

1:对编程思想的学习

虽然C语言只是在阐述面向过程,但是如果没用面向过程思想编程过,没有经过许多代码的练习,没有对C语言学透,你很难体会到模块化编程的优点和缺点,那你学面向对象几乎也体会不到它的优点,因为没有对比性。你直接学习C++或者PHP,可能几天之内背熟了面向对象的语法。但是你却很难体会到面向对象的优点,自然也不知道什么时候该用面向对象去开发(往往只能是听别人说好就好,别人要用面向对象开发你就用)。那么对于更上层的编程思想,如:面向切面,则是更加的摸风了。

知其然不知其所以然,这样的编程境界不足以维持你长久的职业生涯。

2:对上层语言的快速学习指导

C语言精通了,你学C++就比较快,有了C/C++的支撑,你再学比如JAVA,PHP,.NET,C#,MFC,QT,就可以加快速度,如果你够精通,一个星期搞定一门也不是不可能。就像练成了九阳神功,再练乾坤大挪移只要3个小时,而一般人则要练3年,还不一定学会。

更多的其他东西如:MVC设计模式,基于面向对象思想,你也可以快速的搞定。模板解析引擎(如Smarty),你也可以快速搞定,二次开发的开源系统,你也可以快速搞定...

3:对单片机、嵌入式的意义

C语言衍生出来的比如C51编程,AVR编程,PIC编程等单片机系列,有了很好的C语言,这些领域可以快速的理解。同时,C语言在嵌入式(如:ARM)是很强大的应用。这也是你以后可以发展的方向,也就是学C可以为了学嵌入式。嵌入式和互联网结合,就是智能的物联网时代,是未来的发展趋势。

4:对linux的学习很有指导意义

Linux中的很多命令,以及文件系统,以及源码编译,以及驱动等这些处处都可以看到C语言的影子。很难想象一个没学C语言的人会精通Linux。

以后的大趋势有这么几个:移动互联网、物联网、大数据、云计算,这些的深入、高薪基本上都不谋而合的聚焦在了Linux、Unix......

5:让你能更深刻的理解编程本质、智能世界!

C语言由于靠近底层,很多东西都是在写比较原始的东西,比如字符串,比如指针操作,比如堆内存手工释放空间等。由于是让你自己在写,所以你也就有希望能理解的了硬件的东西(不要和直接写硬件IO口和汇编代码来比,因为这是在讨论编程范畴,不是硬件开发范畴)。

硬件上放软件,但是硬件和软件之间的联系就是通过它们的IO口。C语言中的位操作对硬件的IO口编程有很好的类比。不要拿高级语言的IO口来类比,真正意义上如果是要求速度快,那驱动基本上只能是C语言和C++以及汇编,不会用高级语言去写驱动。就像如果你用C#来开发一个大型桌面软件会卡的你想撞墙,此时你得换方案,而不是换语法。换方案就是换到了C/C++。

通过写驱动,你会进一步的认识软硬件之间的结合,你会把编程语言和底层的画PCB电路板结合的了,整个智能系统在你眼里就清晰起来了,当智能变得不智能的时候,你就学懂了智能的世界。

最后:不要以薪资多少来衡量C语言的价值,很多上层语言可能会崩溃,只有把握好这种底层的语言才能让你立于不败之地。而且当你很好的理解了底层,上层语言的深度应用,你也可以轻松搞定了。否则,只能干看干着急。就像前天我在拉钩网和Boss直聘网上随意搜索PHP,结果居然比半年前的需求大许多,而且需要的都是“高手”(长沙薪资12-20K,长沙的房价我周围是7K/平方米哦),另外,我没投递任何公司,却已经收到2个“Offer”了,公司老板亲自查找的,可见公司也在急需的找人,找的是踏踏实实的过来人,我并不是什么高手,但我能踏踏实实的走,一步一个脚印的走,哪怕一个小错误也会纠结半天的那种,可能是这个有点吸引力。同时,这意味着未来的趋势会拉的越来越大,新手或初学者更难找工作,公司找高手也更难。未来需要的是复合型人才。如果大家都浮躁是你浮躁的原因,那大家都难找工作也是你未来的结局。你会喜欢那样的结局吗?

所以:擦亮眼睛、抛弃幼稚、走向成熟、赢得未来。

为了总结更好的C语言,正在策划准备《C语言,好爽》2017年新版,希望能用最新的体会和工作经验去阐述以前没有阐述过的一些东西......

时间: 2024-10-11 21:50:12

多年后再回头看C语言对未来职业的重大意义的相关文章

阿根廷点杀荷兰,24年后再进决赛

阿根廷点杀荷兰,24年后再进决赛 -评2014年巴西世界杯阿根廷和荷兰之战 2014年7月10日凌晨4点进行的这场1/4决赛,双方都非常谨慎,摆出最强阵式,防守如铜墙铁壁,没有给对方多少机会,就连角球任意球也很少.比赛进行到70多分钟的时候,阿根廷9号前锋伊瓜进攻,可惜了,球打在边网上,这是一次漂亮的传球进攻.比赛90分钟后,双方均无建树,不得不进行加时赛,加时30分钟后,双方也无进球,只能罚点球决出胜负了. 点球大战第1轮,荷兰2号球员弗拉尔的点球瞬间被阿根廷门将罗梅罗扑出,阿根廷队长梅西骗过

捷配周邦兵:从制造端看新零售的未来

2019第六届全球互联网经济大会(GIEC)于8月26日-27日在京举办,政商学界精英超过6000人共聚GIEC2019,GIEC旨在打造万物互联时代的行业交流与合作的平台,致力于推进互联网+产业的创新升级,连接互联网+新机遇的合作交流,目前已成为互联网领域规模最大.影响最广.规格最高的行业盛会之一.捷配科技作为"互联网+制造业"的优秀代表受邀参加本次大会. 本次大会围绕"智慧零售 数字商业"主题,同期举办了互联网高峰论坛.社交电商论坛.跨境电商论坛.大数据论坛.金

回头再看C语言-iOS之而今迈步从头越(一)

关于目前比较流行的编程语言的一个情况来看,到2014年8月之前,大体上的结果是: *数据来自网络 名列三甲的分别是:C,Java,Objective-C,从这个表里面可以看出,C语言在编程界还是被普遍的认为非常重要的,并且作为很多大学计算机系的必修基础科目之一,可见C语言还是非常有群众基础的. 话再说回到iOS开发上来,因为苹果系统基本都是使用Objective-C(后面简称为OC)来做第一语言来使用的,但在一些深处的机制(比如运行时runtime)以及图像处理以及通讯录访问方面,还是会经常使用

再看c语言-算法

通常一个程序包括算法.数据结构.程序设计方法及语言工具和环境这四个方面.其中算法是核心,算法就是解决“做什么”和“如何做”的问题.算法是程序的灵魂,项目中如果接到一个模块的设计,重要的就是考虑这个模块的算法,怎么去做,如何去做的问题. 算法的特性:(1)有穷性:一个算法必须在执行有穷步后结束,每一步都在有穷的时间内完成,避免出现死循环. (2)确定性:每一步都应该有确切的定义,对于每一个过程都不能有二义性,将要执行的每一个动作都必须做出严格而清楚的规定. (3)可行性:算法中的每一步都应该能有效

一年后再读《rework》

在kindle里面买的第一本电子书是<rework>,当时难得一气呵成地读完,像找到知音一样的快感.一年后,当我再次把当年kindle上的标注温习一遍的时候,发现读后感与当时大有不同,不知道这是叫成熟还是叫终将成为自己讨厌的那种人. 忘了"现实世界" "这在现实世界中完全行不通."当你向人们介绍一个新创意时,人们总是这么说. 这个"现实世界"听起来如此令人沮丧,貌似所有的新创意,新提案以及外来概念总是会在"现实世界"

GoF设计模式三作者15年后再谈模式

Erich Gamma, Richard Helm, 和 Ralph Johnson在GoF设计模式发表15年以后,再谈模式,另外一位作者,也是四色原型的发明者Peter已经过世. 提问者:如今有85,000 iPhone的小应用遍布全球,使用PHP就能够写一个简单的"Hello, World! The time is X"Web网页,那么,面向对象设计是难的,这句话是否还正确呢? Richard Helm: 软件设计总是很难的,尽管大多数现代开发环境已经降低了复杂性,通过重用库和工具

如何快速掌握一门技术【婴儿最强学习回头看一看】

分享一篇以前看到的文章,也为了以后找着方便. 几周前一个朋友也打算通过跑步来甩一甩脂肪,控制一下自己那已经严重扭曲了的身材 —— 他便求教我从衣服到鞋,从腕表到心率带,都买了什么装备,性能如何,他好照着原样来一套.我告诉他我什么装备都没买,跑了半年多了,我还是随便套上件纯棉的T恤,穿条舒服的运动短裤,蹬着跑鞋,抓着手机,就这么跑将起来.他连连说不信,一个连排汗速干的衣服,臂包,运动腕表都没配的人,怎么也能(配得上)跑步? 这让我想起了我在撰写「程序人生」公众号经常会遇到的一些读者留言: 「我想学

Libgdx框架和主要方法(总有一天你会回头看!)

 既然是学新的游戏引擎,那么首先要对它的框架有所了解,所谓知己知彼,百战不殆嘛!或许,刚开始看完之后你没有任何感受,但是,相信我,总有一天,你会回来再看一遍的! 一.应用的生命周期 游戏应该高效和稳定,特别是对于android平台.目前的开发都是面向手机和平板.如果有效的管理资源,如何高效的运行都是非常重要的.试想一个制作优美,可玩性高的游戏运行于你的android手机上却10秒钟崩溃一次,运行时卡的如同在看漫画,我只能说,孩子,别糟蹋手游了!哈哈 下面是基本生命周期: 图片分享: 二..游

从交换两个变量值看c语言学习历程

在开始你使用这种方法 int tmp; tmp = a; a = b; b = tmp; 后来你知道了模块化编程,你知道这样是不好的,于是你开始使用函数. void swap(int *a, int *b); { int tmp; tmp = *a; *a = *b; *b =tmp; }//下面我就不写函数了 随着c语言的学习,后来你发现下面代码也能完成两变量的值交换的任 x = x +y; y = x -y; x = x -y; 后来有一天,你发现你这段代码不是总能正确工作的,因为x + y