C语言和其他高级语言不一样,它的很多操作都是直接面向内存(面向硬件)。困难的是,对于C语言,不论是数据类型、操作符、语句、函数,都或多或少、或简单或复杂地通过地址操作内存。
幸运的是,一旦掌握内存,代码功能会非常强大,执行效率非常之高。
2018年毕业的大学生700多万,加上出国留学回来及没有找到工作的往届毕业生,将近有1000多万大学生同时竞争。就业形势严峻,竞争更是激烈异常。
试想一下,如果还考虑未来要发展的好,就进一步缩小了就业范围,可谓是难上加难了。否则即使让你软磨硬泡的某到一个工作?那么几年后呢?你还会喜欢你做的这个工作吗?这个工作是你的职业吗?
那么,怎么才能兼顾现在和未来呢?
未来的发展趋势就是科技影响程度会越来越大,更大范围改变人们的生活方式,同时,农村还有很多有待改进的地方。但凡科技,除了硬件之外,就是软件。为什么这么说?CPU,内存,硬盘,外围设备,组合起来可以搭建基础的硬件设备。然后就是在上面写不同的软件,就成了不同的系统。因此,可以这么说:同样的设备,不同的软件,造就不同的系统。言下之意,软件是系统的灵魂,地位将会越来越重要。
选择编程行业,如果你现在还处于迷茫期,这个将是最佳选择。
那么,如何选择学什么具体的编程方向呢?一个负责任的回答是“不知道”。因为这不好回答,回答了就会把你锁定在某个狭小的范围,万一以后改变了你却改变不了。是以,不知道。但有一点是可以做的:那就是把C语言/C++学好。这样可以实现:以后什么具体方向火了,可以马上转过去,就可以立于不败之地。
所以,现在在你不太了解未来发展的情况下,盲目认死理的选择某个方向都不是明智之举。
把握好决策,才能赢得未来。
未来的职业应该是自由职业者比例越来越多,要成为高薪的自由职业者,必须要有一技之长。而这些行业将会有条件成为高薪的自由职业者:网络作家,法律,医学,设计,在线教育,编程开发。可见,编程开发未来的发展无论是对社会还是个人,都有很好的发展趋势。
但凡编程,不论什么方向,要想深入,就得了解底层、数据结构和算法、操作系统。而综合这些,最好入手的就是:C语言/C++。而要学好C++,必先学好C语言(你可以不尊重这个规律,但是失去的就要付出代价),可见,C语言的重要性越来越大。
举个例子吧:
嵌入式中使用的操作系统(如:uclinux,usos)是C语言/C++做的,用的驱动是C语言/C++做的。
对硬件CPU的管脚处理,写各种时序,是C语言/C++编程;
写操作系统(如:linux),是C语言/C++编程;
写数据库(如mysql),是C语言/C++编程;
PHP的底层,如:socket通信,是C语言/C++编程;就连PHP编译器也是C语言/C++做的。java的编译器也是C语言/C++开发的,.NET的底层,VS都是C/C++做的。
浏览器是C/C++做的,html,css,js也是C/C++做的。
很好的游戏驱动引擎也要靠C/C++来做。
易语言也是C/C++做的。
你所见到的那些各个方向的开发语言都是C/C++做的。
C/C++的低位和重要性不言而喻,试问现在理解了这句话了吗?学好C/C++,走遍全球都不怕!
我曾是PHP、前端都兼做的技术总监兼CTO,现在却是在弄C语言、C++,何故?因为我看到了。
现在我正在用C语言做俄罗斯方块,将会作为《C语言,好爽》2017年的压轴项目,一步步带领你写一个声色俱全的经典俄罗斯方块,当然游戏本身是可以无限制改进的......
学习C语言除了看书,还有看别人写的代码,看那些优秀的开源代码,向高手学习。思考代码为什么这么写?有什么好处?是不是最佳写法?看源代码的好处可以让你更专业。如何看源代码?看那些在你项目中使用过的框架和库,因为看源代码必须是建立在你已经知道怎么使用的基础之上,否则看了也是一头雾水。大型的框架不建议看或者有选择性的看,因为大项目是经过很多年不断迭代演进过来的,你很难短时间内把握作者的思想。与此同时,继续实践,改进你的项目,使之更像是专业人士写出来代码。
不断养成多思考,勤记录,乐于分享的习惯,学习是一辈子的事,你学的越多,不知道的越多,又驱使你去学更多的东西。