看招聘职位要C语言的比例真不多了,是不是C语言真的过时了?
看看很多招聘网站有关找纯粹的C语言开发的比例真的不是很多,都被Java,php,python等等语言刷屏。这对于初学正在学习C语言的小白简直就是惊天霹雳,学了没人要,学了还有啥意义。如果单从快速找工作的角度考虑这件事的确,这个观点是能站得住脚的。
前几天和一位老码农聊天,开篇就来了这么几句,换开发语言算了,现在的做底层的日子不比以前了,看看那些做App的,做不了几年工资蹭蹭就上去了,我们这熬了这么多年才这么点。
难道C语言真的过时了?
现在先看看C语言到底能做了多少事情,大家经常说的linux操作系统的内核都是C语言写的,对应的很多嵌入式内核驱动也跑不出C语言范畴,包括大家常用的手机,机顶盒,电视机底层硬件驱动基本山都是C语言完成,还有常见基于单片机的程序也主要由C语言完成。大致概括来说嵌入式领域C语言还是无处不在,很多底层的图形库也是基于C语言完成。
当然C语言最牛的地方,几乎现在所有的上层语言的底层语言绝大部分都是C语言大哥做嫁衣给铺垫完成。深刻理解上层语言底层实现,离不开C语言。
linux内核社区火热程度,依然有增无减,记得有个对内核研究很透彻的哥们,说了句话“我觉得能看懂内核里面的代码就是最大的幸福了,更不要说修改里面的代码“(当然这话说的主要是内核框架层次的,不是外围设备扩展方面)
一方面说C语言的工作机会少了,待遇不行了,一方面C语言还是渗透在各个领域,这中间到底发生了什么事情?
一.基于C语言实现底层架构,就目前来说已经相对比较成熟,对于底层的修改需求已经存在很多基础的版本,修改起来相对比较轻松,维护的工作相对多,技术要求降低。真正的框架修改还是需要C语言超级高手来做(这方面高手待遇目前依然居高不下)
二.应用层语言的蓬勃发展,技术更新的速度越来越快,用上层的语言很快就能实现比较漂亮的界面,就没必要用C语言一点一线去操刀。专业的人做专业的事情,分工更加明细,界面层次的东西,上层语言实现起来更加得心应手。
三.应用层面的编程,比之前火热许多。特别是一些App级别的开发,至少从表面上看没有C语言啥事情了,所以现在很多入门的小白直接选择java或者php之类的语言,没有C基础一样做的很棒,这是社会分工细化的结果,没有哪种语言会一直长盛不衰,技术在不断更新中。
学好了,还是能找到工作的,毕竟社会招聘的岗位总量还是很多。相对比例偏少而已,因为整体公司的数量比之前也是多了许多。
想让自己有个长远的发展,比如架构师层面,C语言几乎还是必修课,不了解底层的实现谈何架构整个系统,谈何做出通用化的框架。从语言角度考虑学会了C语言切入到其他编程语言,学习速度会加快不少,还是值得去学。
小编给大家推荐一个学习氛围超好的地方,C/C++交流企鹅裙:【8.7.0+九.六.三+2.5.1】适合在校大学生,小白,想转行,想通过这个找工作的加入。裙里有大量学习资料,有大神解答交流问题,每晚都有免费的直播课程
什么人才能学好?为什么学到一半就早早缴械投降了?众多迷雾,众多的困难,怎么破局?
很多对编程感兴趣的小伙伴,找个所谓的高手,问了几个编程入门需要的书,也是拼了,呼呼的买了一堆C语言,C++,java等等,本着多多益善的原理,然后从C开始看,最初几天看的热火朝天,把如何编译C代码,如何打印基本的字符串看的很是仔细,随着难度的增加,越来越觉得吃力,有点寸步难行的赶脚,怎么办啊,网上找点资料看看,看的似懂非懂。然后再坚持看了几节,迷糊的越来越厉害,这个时候开始怀疑自己的学习方法或者书买错了,开始自我否定,在网上搜搜觉得C语言是不是太难了,很多是从java开始学的。于是先放弃C开始主攻java,开始学习java,最初几章明显学的比C语言快点,毕竟有点基础了,结果一遇到思维意识形态之外的又开始迷糊,又掉到学习C语言时候的困顿中,于是自我否定。编程太难,不是每个人都能学会的,彻底放弃。
这是小白常见的放弃之路的复盘,有这种类似情况的,或者有类似经历的对位思考下。
客观评价写代码是一件,很枯燥乏味的脑力劳动,需要极大的驱动力,一般驱动人去做一件事,兴趣是其一,强大的精神力其二。兴趣是第一老师,有了兴趣就可以克服一些困难,遇到问题或者需要攻坚的时候能够挺得住。编程相对来说知识点很分散,难易程度不统一,细节极多,持续不断的克服问题,需要有一定的精神力。
编程学习存在一定的技巧性,原则上先要把一门语言入门之后再切入到别的语言,语言本身极具灵活性,学好一样平移到另外层次是切实可行。入门一种语言基本上意味着熟悉了一种语言的特性。切忌一种还没学好就中间换来换去,这是以牺牲自身兴趣点为代价的。
选择一本合适的入门书籍,建议选择老外的,c primer plus 以及c程序设计语言都是很经典的入门书籍,很多人都提到了用视频学习,零基础前几节的学习可以采用视频入门的方式,有了感觉建议还是回归到书本上。在书本上遇到难点,可以找对应的视频去学习。明白了理解了再回归书本,为啥建议采用书本,从效率上讲书本的学习速度远快于视频,还有些人提到了书本上的东西看的头发麻,如果真是这种状态,需要靠视频才能激发自己学习的动力,那么可以问下自己,是不是进入学习状态了。
无论觉得多难,还是要尝试建立自己的知识体系,对于初学者来说这可能是一个极大的挑战,编程就是一个思维认知过程,认知清楚了框架也就清晰了,那么尝试着勾勒知识框架也是加速引导思维认知的一种途径。
很多初学在学习C语言时候,开始恨不得把内存的工作原理以及printf底层实现挖个底朝天,这些从长远看都需要做,但是作为入门级别的,还是绕开,先做到会用,然后理解到了一定层次再去深入理解,很多初学者开始学的特别痛苦,觉得自己什么都不会,什么都搞不懂,但什么都还想搞明白。不否认有一次性搞定的天才,但大多数人还是凡人,还是需要先理解表面的含义,再去深挖底层含义。
编程百分九十以上的东西,都需要自学,自学依赖很强的毅力。说的通俗点就是坚持。面对如此枯燥无味的代码,需要保持长时间的专注度和忍耐力。没点骨气,做不到。浅尝辄止基本上做任何事情都是失败者。
以上四点不是,任何一点做不到都能成为放弃学习的理由,都是一个从开始学习到放弃的经典案例。真要想学好C语言,不兼具点拼搏因子基本上和入门渐行渐远。
学习语言的开始一般是阅读参考书。我建议选择几本非常经典的好书,仔细完整反复阅读几遍,“书读百遍其义自现”。选择C语言学习的好处是,这几本书基本上完整涵盖了C语言编程领域的方方面面,不会像C++那样,即使读完一堆书还是有些糊涂,依然有这样那样难懂的陷阱。
网友评论