手机、汽车、甚至宇宙飞船,在今天的科技世界中,你几乎到处都能看到 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 到底有什么样的渊源?》),精通驱动的开发/移植,懂基本的电路原理与设计。
最后
通过上面的介绍希望大家都能对自己的职业发展有一个比较清楚的规划,欠缺的知识和技术可以想办法去补足。薪资水平只作为参考,每个人的从业时间长短,和具体岗位的不同对薪资水平的影响都会比较大。关于技术岗位再给几点建议:在某个领域要做深做精,争取成为这个领域的专家;在大的平台、大公司还是可以学到更全面的知识和更新的技术;要多学习、多实践、多尝试新的技术,这样才能慢慢走到别人的前面。