有人说C语言就是《道德经》中说的“道生一,一生二,二生三,三生万物”中的“三”。现存很多编程语言都是以C语言为底层语言。可是,C语言却在职位选择上有点模糊不清,比如如果学PHP,则可以选择做网站方面的开发,Python可以做人工智能或者爬虫相关的开发工程师,C语言却在各大职位上不那么亮眼。
小编认为有以下几点
1、如果能把编程学下去,日后你就会明白,任何程序都是一座冰山,最终用户能看到的界面和使用的功能,只是程序浮在水面上的十分之一。
2、C语言虽然很别扭又缺陷重重,却异常成功。固然有历史的巧合推波助澜,可也的确是因为它能满足对于这样一种系统实现语言的需要:既有相当的效率来取代汇编语言,且又足够地抽象而流畅,能够用于描述各种各样的环境之下的算法与交互。
3、C语言是初代程序员所使用的语言,那时候硬件很贵,软件必须高效;而计算机的用户都是职业程序员,对于硬件有足够的理解。
4、C语言贴近硬件,就意味着它容易译成机器能懂的语言,而它的设计者也并不需要操心普通人学起来可能会比较困难——而且,说真的,其实也不很难。
为什么我们学完C语言感觉什么都不会呢?
1、你学的只是c语言的语法,都知道c语言是面向过程的,是与平台无关的,不调用图形接口,就没有办法写windows应用。
2、不调用操作系统网络接口就么法写通信程序。不学习linux内核,你就不会用c写linux内核。
3、不学习硬件平台,就没法开发嵌入式程序,c语言只是个语言,是你进入计算机世界和电脑沟通的基础。
今天我们就来看看C语言学会之后可以从事什么职位?
1. 实验室开发
不敢说C++是世界上最好的语言,但C++基本是工科生中的大语言。暂且不说计算机专业,很多工科专业,比如电信、电气、通信等专业,基本上正常的学习中都会使用到C++。
都说C++兼具面向过程以及面向对象的特性,既拥有比较优秀的运行速度,又有良好的大型项目开发能力,那简直可以制霸高校实验室了。
2. 后端开发
主流的后端开发语言就那么几种,以Java、C++领衔,Python和Go紧跟其后。
3. 游戏开发
掌握了C++基本语法之后,开发游戏也依然是一个不错的选择,目前工业级别的3D游戏引擎仍然是用C或C++编写的。
虽然以个人能力无法去完成一个庞大的网络游戏,但是从简单开始,编写一些小游戏,然后逐渐深入,循序渐进并最终加入大型游戏开发团队还是非常好的一个选择。与之相应的就业岗位主要有游戏开发工程师、游戏引擎架构工程师等。
4. 客户端开发
毕竟C++已经是一个很成熟的语言了,所以除了后端开发其实它还有很多其它的开发岗位可以选择。自然而然的,就是客户端开发了。
相信大多数学C++的同学都用过C++写桌面软件吧。那时候估计还是用MFC,照着代码书上敲一遍就能写一个比较简单的界面了。所以如果不想做后端,完全可以靠C++找一份客户端开发的工作。做客户端同样也需要扎实的编程基础和计算机理论基础,同时可能还要熟悉Windows/C++编译链接机制、QT客户端开发技术体系、Windows消息机制等技术。
所以,假如你学的是C++,同时也不在乎业内莫名其名的岗位歧视链的话,找一个客户端开发的工作也是非常不错的。只不过相较于后端开发,你可能需要重新审视客户端这个角色。
5. 多媒体开发
目前多媒体技术同样渗入到人们的日常生活中,音视频已经成为人们获取信息的一个非常重要的手段。音视频在传输过程中都是经过压缩并且按照一定规则打包过的。视频的编码技术从最开始的H.261到如今的H.265,经历了30多年的发展,而且实现代码全部是由C或C++实现。
最新的HEVC编码标准就是由C++代码实现,对此感兴趣的话在学完C++语法后,可以去ITU(国际电信联盟)官网去下载源码查看。与之相应的就业岗位有图像算法工程师、视频编码研发工程师、音视频转码工程师等。
6. 嵌入式开发
上面几种岗位选择都是偏软件方向想的,而C/C++还有一类非常大的就业方向,就是去做嵌入式。嵌入式本身可能是偏硬件一点,但是现在做个什么事,都是软硬不分家的。
嵌入式的开发同样也会涉及到网络编程、并发编程等方面。通俗点解释可能就是,嵌入式代码是运行在别的小系统上,而不是传统意义的计算机上。这个方向除了需要编程能力,还需要基本的电路理论素养。
一般招聘嵌入式开发岗的公司大多是以硬件产品为主的互联网+公司,比如小米、华为等。进去公司很多都是在做物联网相关的工作,毕竟这是热点。当然也会有其它的业务方向,例如芯片、机器人等。
7. 人工智能
人工智能、机器学习等方向也少不了C或C++语言的身影。
需要强调的是虽然C++语言可以从事的方向非常广泛,但是仅仅掌握C++语法是远远不够的,上述的应用领域C++语言是基础,进入这些领域还需要进一步深入系统学习相关领域的知识以及去接触真实企业项目的内容。
总结
只是学了C语言几乎什么都做不了,也很难找到工作。
C语言仅仅是一个工具,只提供了最基本的功能,如果希望开发出实用的程序,往往需要继续学习其他方面的知识。
1、开发硬件驱动需要学习数字电路,了解WIndows或Linux内核。
2、从事嵌入式需要学习数字电路、模拟电路、ARM、Linux、Qt等。
3、开发PC软件需要学习WIndows编程,了解GTK。
4、学习游戏开发需要学习游戏引擎,c/c++等不同语言。
并且,C语言能够让你更加深刻的认识内存和编译原理,了解程序的每一个细节,夯实基本功,站得“低”才能望的远,所以优秀的程序员都会学习C语言。
可以这么说,如果只会C语言,基本上是找不到工作的,读者要选定一个方向,继续学习其他知识。后面你会发现,C语言不过是冰山一角,是一项基本技能而已,程序员要学习的东西还很多。