linux c开发前景(Linux c/c++技术方向分析)
一 、C与C++介绍
1.1 说明
c语言是一门面向过程的 、抽象化的通用程序设计语言 ,广泛应用于底层开发 ,如嵌入式 。C语言能以简易的方式编译 、处理低级存储器 。是一种高效率程序设计语言。
c++(c plus plus)是一种计算机高级程序设计语言,由C语言扩展升级而产生,是一种面向对象的语言 。
1.2 发展现状
c/c++主要应用于linux和windows平台 ,随着近些年移动端应用的快速发展以及各种高级语言(如python 、go等)的兴起 ,windows c/c++编程的占有率已经降到微乎其微了 。因此C/C++主要应用于linux平台(尤其是嵌入式系统) 。
二 、应用场景
在当今技术环境下 ,虽然c和c++都属于底层语言 ,但由于C++是在c的基础上发明的 ,属于面向对象语言 ,因此C++面向上层应用开发更友好 。
c语言用于单片机级控制芯片中 ,这种应用场景下 ,一般没有操作系统 。比如早期的51单片机 。 c语言用于嵌入式系统中 ,如硬件驱动开发,c程序应用 c++程序可以用于开发图形界面(如QT) 、游戏(服务器)等三 、技术方向及难度
3.1 嵌入式硬件驱动开发(c语言)
嵌入式开发一般基于linux系统或Android/IOS系统 ,无论哪种系统 ,最底层的硬件驱动都是使用C语言开发的 。和硬件工程师一样,需要经验积累 ,越老越吃香 。编译一个系统镜像最长需要几个小时 ,调试比较费时,经常一个问题搞几天半个月的没有进展 ,尤其在小公司 ,熬夜加班是常事 ,身心疲惫 。天天面对电路板 ,调试比较枯燥 、乏味。现在的年轻人一般不选择这个方向 ,所以驱动岗位很难招到合适的人
3.2 嵌入式应用开发(c/c++)
嵌入式应用开发一般基于操作系统的开发 ,比如linux系统 、Android系统(底层也是linux) 。 这个层面一般是作协议类的应用开发 ,或为上层提供一些能力模块 。相较于驱动开发 ,应用开发是基于libc API进行开发 ,编译速度快,调试方便。比驱动开发要轻松很多 ,人才招聘也要容易一些 。
3.3 游戏开发(c++)
C++游戏开发一般指服务器端开发 ,由于C++面向对象的特点,一般都使用C++进行开发 。近几年由于go语言的广泛应用 ,也有很多游戏开发转向了go,再加上java语言对C++的虎视眈眈 ,C++就业前景也在降低。C++虽然是在c的基础上衍生的,但C++的学习难要比C大的多,很多c程序员学习C++只学到了皮毛 ,因此 高级C++人才比较难招
3.4 Android NDK开发(c/c++)
Android系统是基于linux内核产生的移动操作系统 ,由于其分层的设计 ,导致其既涉及到嵌入式linux的技术 ,又涉及到上层应用的开发 。除了基本的硬件驱动开发外 ,NDK层的开发需要同时涉及到C和C++语言 。懂NDK开发的人员同样可以做嵌入式应用开发 。NDK开发的难度比较高 ,但就业面比较窄 ,这类大牛一般潜伏在手机类的大厂中 。
四、其它说明
一般招聘信息中要求应聘者会C/C++ , 在没有特别强调的前提下 ,会C语言就可以,问到是否会C++ ,也是在判断应聘者有没有面向对象思想 招聘信息中直接要求会C++的岗位 ,一般是指精通C++,如果只懂一点C++ ,可能不匹配或者只能从初级岗位做起 linux c/c++类的程序员目前较少 ,尤其更底层的驱动开发工程师 。这主要是因为当今社会的年轻人追求更好的生活工作方式,再加上普遍认为底层开发难度大 ,都在向上层应用开发方向发展 ,如android/ios等应用类开发 ,这种可以立刻看到成果 。 linux c/c++程序员不容易被淘汰 ,而由于android/ios能通过培训班的几个月学习就可以上手 ,容易被年轻人顶掉或者到30岁就开始混日子 linux c/c++程序员换到新公司后 ,一般不能马上上手解决问题 ,需要一段时间学习新公司程序源码和运行逻辑后才能逐渐完成任务 ,一般需要1 、2个月 ,有的甚至半年才能完全融入公司并独挡一面 。而android/ios应用类开发在换新工作后,简单了解一上就可以马上解决问题 。因此android/ios应用开发人员跳槽更频繁一些 。创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!