一篇文章看清楚 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.为什 ...
随机推荐
- N - Subpalindromes URAL - 1989 哈希+线段树
N - Subpalindromes URAL - 1989 这个是一个哈希+线段树,这个题目也不算特别难,但是呢,还比较有意思. 这个题目给你两个操作,一个是回答l~r 区间是不是回文,一个是对一个 ...
- php使用curl post josn数据
今天在工作中使用到要使用("Content-Type", "application/json;charset=UTF-8")格式传送和接受数据,再次做个记录 p ...
- 记一次jackson序列化Boolean的坑
@Data public class CouponTemplateDto { /** * 优惠券类型id */ private Long couponTypeId; /** * 优惠券模板id */ ...
- Numpy-np.random.normal()正态分布
X ~ :随机变量X的取值和其对应的概率值P(X = ) 满足正态分布(高斯函数) 很多随机现象可以用正态分布描述或者近似描述 某些概率分布可以用正态分布近似计算 正态分布(又称高斯分布)的概率密度函 ...
- angular前端框架简单小案例
一.angular表达式 <head> <meta charset="UTF-8"> <title>Title</title> &l ...
- JTextpane 添加行号
最近项目需求,需要在JTextPane上添加行号等信息,网上找了好久只找到JTextArea添加行号信息,copy网上的程序研究了下,发现自己改改就可以让JTextPane显示行号! 代码: pack ...
- java ->网络通信协议(UDP协议、TCP协议)
网络通信协议 通过计算机网络可以使多台计算机实现连接,位于同一个网络中的计算机在进行连接和通信时需要遵守一定的规则,这就好比在道路中行驶的汽车一定要遵守交通规则一样.在计算机网络中,这些连接和通信的规 ...
- Python基础语法day_03——列表
day_03 列表是什么 在Python中,用[]来表示列表,并用逗号来分隔其中的元素.下面是一个简单的列表示例: >>> bicycles = ['treak','cannonda ...
- git branch分支
推荐看这个教程: http://www.liaoxuefeng.com/wiki/0013739516305929606dd18361248578c67b8067c8c017b000/0013758 ...
- php的 mysqlnd驱动
这篇文章写的好 http://blog.linuxeye.com/395.html 传统编译php的时候需要指定mysql 的参数 --with-mysql=/usr/local/mysql \ -- ...