Linux c/c++技术方向分析

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

一、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++面向上层应用开发更友好。

  1. c语言用于单片机级控制芯片中这种应用场景下一般没有操作系统。比如早期的51单片机。
  2. c语言用于嵌入式系统中如硬件驱动开发c程序应用
  3. 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应用开发人员跳槽更频繁一些。
阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: linuxc++