一篇文章看清楚 Linux 的职业发展方向
手机、汽车、甚至宇宙飞船,在今天的科技世界中,你几乎到处都能看到 Linux 的身影。前两天 SpaceX 成功将宇航员送入太空的猎鹰9号火箭与龙飞船用的也是 Linux的操作系统。身处与 Linux 相关行业的同学还是非常幸运的,行业前景光明、人才需求量大、薪资待遇也水涨船高。当然我们做 Linux 系统维护与开发的同学也是非常辛苦的,正在忙着写命令或者敲代码的同学可以把手中的工作先放一下,和我一起对 Linux 的职业发展前景做一个展望吧。

Linux 的几大职业发展方向
按照工作内容,和 Linux 相关的工作主要有以下几个方向:系统运维、应用开发、嵌入式开发、和底层开发。各个方向的工作内容、任职要求、和薪资水平差异都比较大。这里提供的是比较通用的信息,具体的岗位信息和待遇各个公司的情况肯定会有所不同,这里仅供大家参考。

1、系统运维工程师
1)工作职责:主要负责日常 Linux 系统的搭建、部署与运维,排查系统问题、解决系统故障等。系统运维工程师最主要的工作就是保障服务器系统能够正常运行,这里边的系统不单单指 Linux,还包括数据库、Web应用、电子邮件应用、网络应用、J2EE等等。
2)任职要求:能够熟练掌握 Linux 系统,比如磁盘管理、文件系统管理、权限管理等。熟悉网络,比如 HTTP、TCP/IP 协议、路由、防火墙等。熟练掌握常用软件的安装,比如Nginx、Memcached、Tomcat、Redis等。了解集群、高可用的架构。会写Shell及Python脚本。初入职场的同学也可以考虑考一个红帽 RHCE 的认证。
3)薪资待遇:一、二线城市,工作 5-10 年的经验,大概是 16-48 万年薪。

2、应用软件开发工程师
1)工作职责:主要负责公司产品设计、框架制定与研发等。和运维工作相比,对 Linux 系统的要求没有那么高,主要侧重于代码和产品架构。运维工程师需要为软件工程师提供一个可靠的开发、测试和生产环境。Linux系统上的软件开发有很多种,使用的编程语言包括 Java、Python、C++、SQL等(《2020年你最需要掌握的11种编程语言》),按应用类别又可分为企业服务应用、大数据应用、桌面应用等等。
2)任职要求:精通某种编程语言,有开发经验,熟悉 Linux 环境,懂设计模式,熟悉常用的开发框架,了解数据库,能熟练使用应用服务。
3)薪资待遇:一、二线城市,工作 5-10 年的经验,大概是 12-36 万年薪。

3、Linux嵌入式开发工程师
1)工作职责:主要也是负责产品设计、制定框架、和产品代码编写等工作,但主要应用在嵌入式的产品中,比如本文开头提到的手机、汽车、甚至飞船,这里边应用到的都是嵌入式的Linux系统。
2)任职要求:熟悉 Linux 的 API,比如 IO 操作、进程间通讯、网络通讯等等。精通 Linux内核的配置与编译,精通 C/C++,熟悉主流的嵌入式开发平台,比如 UCOS、FreeRTOS等。
3)薪资待遇:一、二线城市,工作 5-10 年的经验,大概是 18-46 万年薪。

4、Linux底层开发工程师
1)工作职责:主要包括 Linux 系统内核以及驱动的开发。岗位难度系数高,但是薪资待遇通常比较好。另外岗位需求量较少,一般大型的硬件企业比如芯片制造商才会有这个岗位。
2)任职要求:对 Linux 内核源码非常熟悉,精通 C 语言(Linux 内核是用 C 语言编写的 《Linux,Unix,GNU 到底有什么样的渊源?》),精通驱动的开发/移植,懂基本的电路原理与设计。
最后
通过上面的介绍希望大家都能对自己的职业发展有一个比较清楚的规划,欠缺的知识和技术可以想办法去补足。薪资水平只作为参考,每个人的从业时间长短,和具体岗位的不同对薪资水平的影响都会比较大。关于技术岗位再给几点建议:在某个领域要做深做精,争取成为这个领域的专家;在大的平台、大公司还是可以学到更全面的知识和更新的技术;要多学习、多实践、多尝试新的技术,这样才能慢慢走到别人的前面。
推荐阅读:
欢迎大家关注我的微信公众号,阅读更多文章,获取更多知识

- The End -
一篇文章看清楚 Linux 的职业发展方向的更多相关文章
- 一篇文章看懂JS闭包,都要2020年了,你怎么能还不懂闭包?
壹 ❀ 引 我觉得每一位JavaScript工作者都无法避免与闭包打交道,就算在实际开发中不使用但面试中被问及也是常态了.就我而言对于闭包的理解仅止步于一些概念,看到相关代码我知道这是个闭包,但闭包 ...
- 一篇文章看懂angularjs component组件
壹 ❀ 引 我在 angularjs 一篇文章看懂自定义指令directive 一文中详细介绍了directive基本用法与完整属性介绍.directive是个很神奇的存在,你可以不设置templa ...
- angularjs 一篇文章看懂自定义指令directive
壹 ❀ 引 在angularjs开发中,指令的使用是无处无在的,我们习惯使用指令来拓展HTML:那么如何理解指令呢,你可以把它理解成在DOM元素上运行的函数,它可以帮助我们拓展DOM元素的功能.比如 ...
- 【你的职业规划】web前端的职业发展方向及学习攻略【转载】
web前端的职业发展方向有哪些?本文献给正在迷茫中,准备入坑web前端的初学者以及知海匠库web前端培训班的准前端工程师们: 一.职业方向定位 首先,只有确定好自己的职业方向,才能做好职业规划.在 ...
- 一篇文章看懂spark 1.3+各版本特性
Spark 1.6.x的新特性Spark-1.6是Spark-2.0之前的最后一个版本.主要是三个大方面的改进:性能提升,新的 Dataset API 和数据科学功能的扩展.这是社区开发非常重要的一个 ...
- 干货!一篇文章集合所有Linux基础命令
1 文件{ls -rtl # 按时间倒叙列出所有目录和文件 ll -rttouch file # 创建空白文件rm -rf 目录名 # 不提示删除非空目录(-r:递归删除 -f强制)dos2unix ...
- 干货!一篇文章集合所有Linux基础命令,适合所有菜鸟学习和老手回顾!
1 文件{ ls -rtl # 按时间倒叙列出所有目录和文件 ll -rt touch file # 创建空白文件 rm -rf 目录名 # 不提示删除非空目录(-r:递归删除 -f强制) dos2u ...
- rabbitMQ教程(二)一篇文章看懂rabbitMQ
一.rabbitMQ是什么: RabbitMQ,遵循AMQP协议,由内在高并发的erlanng语言开发,用在实时的对可靠性要求比较高的消息传递上. 学过websocket的来理解rabbitMQ应该是 ...
- 一篇文章看懂Java并发和线程安全
一.前言 长久以来,一直想剖析一下Java线程安全的本质,但是苦于有些微观的点想不明白,便搁置了下来,前段时间慢慢想明白了,便把所有的点串联起来,趁着思路清晰,整理成这样一篇文章. 二.导读 1.为什 ...
随机推荐
- Java——异常那些事
异常的基本定义 异常情形是指阻止当前方法或者作用域继续执行的问题.在这里一定要明确一点:异常代码某种程度的错误,尽管Java有异常处理机制,但是我们不能以“正常”的眼光来看待异常,异常处理机制的原因就 ...
- Java——理解面向对象
1.程序设计的三种基本结构 顺序结构 顺序结构表示程序中的各操作是按照它们在源代码中的排列顺序依次执行的 选择结构 选择结构表示程序的处理需要根据某个特定的条件选择其中的一个分支执行.选择结构有单选择 ...
- SpringMVC源码学习:容器初始化+MVC初始化+请求分发处理+参数解析+返回值解析+视图解析
目录 一.前言 二.初始化 1. 容器初始化 根容器查找的方法 容器创建的方法 加载配置文件信息 2. MVC的初始化 文件上传解析器 区域信息解析器 handler映射信息解析 3. Handler ...
- Matlab2016b线性规划函数linprog的几个问题
一.如何设置算法为单纯型法: options = optimoptions('linprog','Algorithm','dual-simplex') 二.linprog的参数用法: [x,Fval, ...
- clang8.0及以上编译rocks问题
升级了MacOS 10.15 Beta版,结果编译 CockroachDB 遇到了问题. [ %] Building CXX object CMakeFiles/rocksdb.dir/db/buil ...
- linux下安装gmp遇到 configure:error:no usable m4 in$path or /user/5bin解决方案
安装过程中遇到如下报错: 上面的报错是因为你没有安装m4,安装m4就可以了:以下两种命令人选其一: #yum install m4 或 #apt-get install m4 ps:如果遇到权限问题就 ...
- R的安装以及包安装
今天看论文,需要用到R语言的库,于是又折腾了半天.. 其实并没有什么太大的问题,只是在第三方包的下载方面还有python中使用R方面遇到了问题: 第三方包的导入 其实在网上有 ...
- 你不知道的事---SringCloud的feign的继承特性
前言 说起SpringChoud的feign大家用过的都说好.Feign是Netflix开发的声明式.模板化的HTTP客户端.对于我们微服务来说,微服务之间的api调用,使用feign来说是再方便不过 ...
- 「雕爷学编程」Arduino动手做(40)——旋转编码器模块
37款传感器与模块的提法,在网络上广泛流传,其实Arduino能够兼容的传感器模块肯定是不止37种的.鉴于本人手头积累了一些传感器和模块,依照实践出真知(一定要动手做)的理念,以学习和交流为目的,这里 ...
- vue组件试错
[Vue warn]: Property or method "child1" is not defined on the instance but referenced duri ...