学Linux到底学什么?未来职业到底是怎么样的?

Linux方向职业规划 引言: 据了解,Linux普通网络管理人员的月薪大约5000元左右,负责编程的Linux软件工程师月薪大约在8000元到12000元之间,Linux嵌入式软件开发人员的月薪大约在12000元以上。 影响Linux从业者的薪资水平的还有两个重要因素:一是从业时间长短,二是具体的工作岗位。针对376个工作岗位的薪资水平与其工作年限要求交叉分析结果,我们可以看出,从业者进入Linux行业的时间越长,薪... 阅读详情

作为一名Linux工程师。那么我来问大家一个问题,提到Linux,你们第一时间想到的是这是一个怎样的岗位呢?我相信会有很大一部分的朋友会想到两个字:运维。

 

 

听到大家这样的回答,我真的是很无奈,但也是非常的理解,因为,曾经我对Linux的了解程度也是仅限在运维的层面上。但是,有这种概念的朋友实在是太多了,所以我有必要出来给大家科普一下Linux的几个主要的从业方向。

其实这个话题我写过了很多的文字版本,也在直播的时候给大家科普过了,这几天也以视频的形式再给大家科普一次,今天就顺便把文稿再发出来一下。

Linux其实也是一个大的方向,可以细分为很多小方向。所以很多公司的岗位职责上面写着要求精通Linux,这是非常不现实的。为了能让大家更直观了解Linux的从业方向,我画了下面这张图。

 

从这张图来看,从大的方向来划分,Linux从业者可以分为两个方向:运维、开发。当然除了这两个方向,还有一些其它方向,但可能比较小众,就暂时不讨论了。但是,单单从这两个方向来看,又细分出了很多更小的方向,因此我们可以看到Linux从业方向的多样性。

下面我们来详细介绍各个方向的工作内容和职责。

Linux运维工作内容和职责

我们首先来看运维。运维又可以根据不同的工作内容细分为很多不同的方向,但是,主流的分法一般就是这张图的几个方向。

 

因为我本身不是做运维的,对运维相关的工作也不是太了解,所以这些工作的详细内容我也没办法深入介绍。所以有时候在我的微信群里,很多小伙伴拿一些运维相关的问题来问我,我真的是答不上来,因为我本身不是做这块的。

 

虽然运维也分很多方向,但很多公司,特别是中小公司,基本是一个人干完上面这些所有工作。所以,从事运维工作的话也是需要掌握不少技术的。

不管是什么方向的运维,工作内容基本都可以概括为两句话。第一句话是:保障业务长期稳定运行。就是说,公司的服务器,你不仅要学会搭建,而且要保证上面的业务要做到长期稳定运行,任何出一点点差错,运维人员可能就要背这个锅了。所以,运维人员经常自嘲自己是“背锅侠”。

 

第二句话是:保障数据安全可靠。这句话比较好理解,现在数据泄漏太严重了,像之前facebook数据泄漏事件让facebook吃了不小的罚单。所以如何保证数据的安全也是运维人员一项非常重要的工作。

 

这几个方向当中,前3个属于传统运维,一般而言工资相对比较低。后两个是这两年的热门工作,工资相对高一些。其中云计算运维要涉及到容器Docker,K8S之类的,技术要求更高。而运维开发需要学习到JS,Python之类的编程语言,会涉及到一些开发的工作。

Linux开发工作内容和职责

以上这些就是对运维方向的介绍,我们再来看第二大方向:开发方向。开发方向又分为两个:应用层开发及底层开发。首先来看应用开发。我现在做的工作就是Linux应用开发。那应用开发到底做些什么工作呢?

一般而言,应用开发又分细分为这三个:桌面应用开发、嵌入式应用开发、服务器运用开发。

 

不管是什么应用开发,简单而言,都是在Linux下开发各种各样的应用程序。那什么又是应用程序呢?我举个例子你们就明白了。就好比在Windows下,我们有QQ、微信、以及后面要介绍的虚拟机等,这些都统称为应用程序。这就是应用程序的概念。

同样的,如果在Linux下也开发一些类似这种的应用程序,就是属于应用开发。在Windows下,我们看到的那些应用程序大部分是带图形界面的,然而,在Linux下的应用程序,有些会带有界面,而相当一部分是不带界面的。

Linux下带界面的应用程序所使用的开发工具之一就是QT,所以有个岗位就叫作QT工程师,做的就是这个活。当然QT程序是可移植的,Linux下同样一套代码可以不用作任何修改就可以在Windows下编译运行。

那嵌入式Linux应用开发又是什么?很多嵌入式设备,比如一些机器人玩具,一些智能家居设备,以及汽车的中控等,很多跑的是Linux系统。那对应的我们也需要给这些设备开发一些应用程序,就是所谓的嵌入式Linux应用开发。这些应用程序通常是不带界面的,它们通常会在后台默默运行,完成相应的业务工作。当然也有一些嵌入式应用程序是带界面的,但其实很多也是直接跑QT的。

 

应用开发的第三个方向就是服务器后台开发。这个其实也是后端,很多服务器后端是用Java进行开发,但也有一些是用C++开发然后跑在Linux系统上,比如微信的后台就是使用C++开发的。

不管是使用什么开发语言,都需要考虑事件处理、高并发之类的需求,同时也要学会使用框架,要站在巨人的肩膀上,才走得更快更远。

我们再来看看Linux底层开发。其实,只要有接触到Linux,都会听说过内核、文件系统、uboot之类的名词,这些就是底层开发人员天天打交道的东西。

 

一般而言,内核、文件系统、uboot的移植很多芯片厂商都已经给你做好了,你只需学会维护即可。而对于内核裁剪、定制之类的工作,那就需要底层工程师来做了。

除此之外,你还要学会开发驱动,这部分的工作应该是比较多的。什么是驱动开发呢?大家知道,在Linux下一切皆文件,设备也是。所以应用工程师需要操作硬件,比如IO口,只需操作对应的设备文件即可。那这个设备文件怎么实现对IO口进行操作?这就是驱动开发的工作了。很多公司对驱动开发的需求比较大,所以诞生出一个专门的岗位叫驱动开发工程师。

而随着物联网的发展,现在很多设备,特别是智能家居类的设备,很多跑的是安卓系统。所以在嵌入式设备上移植一个安卓系统,也是底层开发工程师的一个工作内容。当然不是所有的底层开发工程师需要做这个工作,一切视公司的业务而定。但如果有时间,底层开发相关的工作都应该要学会。

以上就是Linux从业者的主要工作方向,介绍了这么多方向后,很多人开始晕乎了:我到底该从事哪个方向?

对于运维和开发两个大方向,在薪资方面运维可能会比较低,而且运维的工作可能会比较琐碎,服务器一旦宕机就要第一个冲到前线,基本是7X24小时待命。而且,运维的天花板相对比较低,可能工作过三五年就到顶了。

而开发方向天花板就比较高一些了,而且薪资会相对比较高。对于应用和底层,应用方向的需求比较大,通常而言一个公司只需一个底层工程师即可,却需要养一大群的应用工程师。所以底层工程师就业面会比较小一些,通常比较好的去处就是那些芯片厂商。但是,相对而言底层工程师的工资会比应用工程师要高一些。

对于这些方向的介绍,只是目前市面上的一些实际状况。我没有建议你别做运维,也没有建议你去做应用开发,一切都是看个人兴趣与意愿。只要自己工作得开心,才是最关键的。

看完的都是真爱,点个赞再走呗?您的「三连」就是我的最大动力!

  1. 关注公众号「Linux C后台服务器开发」,第一时间获取最新Linux干货!
  2. 后台回复【资料】【面试】【架构】获取精选一线大厂面试、自我提升、简历等资料。

更多Linux服务器开发高阶完整视频分享,点击链接即可观看:https://ke.qq.com/course/417774?flowToken=1013189

内容包括:C/C++,Linux,Nginx,ZeroMQ,MySQL,Redis,MongoDB,ZK,流媒体,P2P,Linux内核,Docker,TCP/IP,协程,DPDK多个高级知识点分享。

Linux服务器开发高级架构qun:720209036

学嵌入式职业发展方向有哪些? 很多人对嵌入式应该学些什么说的很复杂或者很简单,我以主流的linux操作系统为例来展开。很多人只能做单片机开发,比如C51或者STM32(比较常见)等,当然了他们也可以跑一些小型的操作系统比如μC/OS-II或μC/OS-III等,当然了这些也是基于C语言的学习,也是和硬件在打交道,属于C语言直接调用库函数或者直接操作寄存器,也能够让硬件正常的工作,没错,会这些你也能有一份工作,学的深入的也会有不... 阅读详情

相关推荐

linux运维工程师职业规划

在这个过程中,我需要有明确的目标、合理的计划以及足够的资源支持。在职业规划中,还需要注意适应市场需求,了解各大公司对运维工程师的具体要求,这样可以更有针对性地提升自己的技能。总之,我的职业规划是明确的:通过系统化的学习和实践积累,逐步掌握从基础到高级的运维技能,参与各个阶段的项目,积累经验,同时不断拓展自己的视野和技术水平,总之,Linux运维工程师是一个充满挑战和机遇的职业,我期待通过不断努力和持续学习,最终在这个领域有所建树。此外,随着云计算和容器技术的普及,他们还需要掌握这些新技术相关的技能。

m0_71071763的博客 1195

什么是底层驱动程序

底层驱动是程序以访问底层硬件的形式实现人机交互,驱动程序和应用程序之间需要实现相应的信息交互,一方面,应用程序通过对驱动程序发送相应的指令,实现 硬件控制的动作指令,另一方面,驱动程序将硬件读写的状态、从硬件上获得的数据传送给应用程序,实现应用程序与驱动程序间的交互。

修炼强大的自己 1万+

达内训练营Linux基础操作实战课程

Linux操作系统是现代计算环境中不可或缺的一部分,尤其在服务器和嵌入式系统中扮演着重要角色。它以其开源、稳定和灵活的特点赢得了大量开发人员和企业的青睐。Linux基于Unix的设计哲学,提供了一个健壮的命令行界面,支持广泛的硬件平台和软件生态。Linux内核最初由芬兰学生林纳斯·托瓦兹于1991年发布,并迅速演变为全球开发者的合作项目,形成今天的Linux操作系统。它是以模块化的方式构建的,支持快速更新和优化,使得系统管理变得更为高效。本章将引领读者初步了解Linux操作系统的基本知识。

weixin_42502089的博客 799

单片机的底层驱动和应用程序的区别

C语言语法

Bornpride的博客 1万+

2-linux编程-驱动调用-QT编程.

嵌入式的学习 linux编程-驱动调用-QT编程.

反射机制——通过反射调用service中方法

需求:现在有一群service接口,有同一个方法名称,内部逻辑除了调用不同的调用自身的方法外其他基本都一致,那现在就需要一个独立的方法来勾勒出这个方法 1.SpringContextUtil package com.XXX.report.util; import org.apache.log4j.Logger; import org.springframework.beans.BeansE...

东天里的冬天 8520

qt调用内核驱动设置io口的电平值

make编译成内核文件。

qq_48650544的博客 347

告别死记硬背!用实际案例带你玩转UE5编辑器界面(附场景搭建练习)

本文通过实际案例教学,带你轻松掌握Unreal Engine5编辑器界面的核心功能。从创建基础场景到添加光源和可交互对象,逐步讲解内容浏览器、模式面板、世界大纲等模块的协同工作方式,告别死记硬背的学习模式。附场景搭建练习,助你快速上手UE5开发。

weixin_30566063的博客 729

嵌入式Linux--驱动ST7789驱动芯片的TFT屏(一)

目录一、步骤二、修改设备树三、编写驱动代码1、编写Makefile文件2、编写驱动四、编写驱动测试代码五、测试 一、步骤 二、修改设备树 三、编写驱动代码 1、编写Makefile文件 Makefile KERNELDIR := /home/liefyuan/linux/project_drivers/kernel CURRENT_PATH := $(shell pwd) obj-m := tft.o build : kernel_modules kernel_modules: $(MAKE)

似水流年 8379

从零到一:桌面宠物的硬件架构设计与工程实践

本文详细介绍了基于STM32F103C8T6主控平台的桌面宠物机器人硬件架构设计与工程实践。内容涵盖电源管理、舵机控制、PCB布局及系统调试等核心环节,为硬件爱好者提供从零到一的完整开发指南,助力打造稳定可靠的智能桌面伴侣。

alice7model的博客 1112

FID指标实战:如何用Python快速计算生成图像的质量分数(附完整代码)

本文详细介绍了如何使用Python计算Fréchet Inception Distance(FID)指标,以评估生成图像的质量。通过完整的代码示例和优化技巧,帮助开发者快速实现FID计算,并解读分数背后的实际意义,适用于GAN和扩散模型的性能评估。

weixin_28718487的博客 374

单片机的底层驱动和应用程序有何不同

1、单片机底层开发一般指利用单片机的固有资源完成的控制功能的软硬件开发,比如时钟、通讯协议(232、485、UART、SPI、IIC、CAN、IR等)、定时器、AD转换、GPIO、外设驱动(各种现场控制、各种环境状况测控、电机控制、电磁阀、继电器控制、键盘扫描、LED和LCD显示)等。(3)定时器分频是为了获得更长的定时时间,如果采用标志位累加的方式来延长定时时间,将会消耗单片机的RAM资源,在低端单片机中,由于RAM资源非常珍贵,因此只能采用定时器分频来延长定时时间。

ic2121的博客 925

WGCNA分析中那些没人告诉你的坑:以肺结核差异基因模块筛选为例

本文深入探讨WGCNA分析在肺结核差异基因模块筛选中的七个关键陷阱,包括soft-thresholding选取、样本离群值检测、模块合并阈值调整等。通过实际案例和R代码示例,揭示生信数据挖掘中常被忽视的技术细节,帮助研究者避免常见错误,提升分析结果的可靠性和生物学意义。

weixin_29218509的博客 261

Linux需巧学

众所周知,Linux在互联网技术中的重要程度堪比windows,当今很多大型软件系统后台等等都运用了Linux技术,对于一个程序员或者想成为程序员的初学者来说,无论你未来从事前端,python工程师还是java工程师,我认为Linux都应该要去学习一下,这不但可以扩展自己的知识面,学好了也能为学习其他的技术做铺垫。 对于学习编程来说,最重要的一点就是动手能力,有很多人看了很多课程,但是依然不会敲代码,遇到问题依然不会解决,听课的时候觉得这段代码非常容易,一听就懂,但是当自己去写的时候,却一行也写不出来,这

llawliet0001的专栏 139

WinServer 2012 R2 搭建 AD 单域多站点 及 DNS各站点的子网掩码排序调整

WinServer 2012 R2 搭建 AD 单域多站点 及 DNS各站点的子网掩码排序调整

一直被模仿,从未被超越 5533

YOLOv11 热力图可视化全流程:从模型解释到科研论证,让检测结果“有理可看”

无论是科研中需要严谨的模型解释,还是工业里要高效的缺陷定位,这套方法都能让你在“模型黑箱”与“业务需求”之间架起一座可视化的桥梁。别再让模型决策“无据可依”——现在就动手生成你的第一幅热力图,让 YOLOv11 的每一次检测都“有理可看”,用可视化的力量推动你的 AI 研究与落地走向深入!某团队在论文中通过热力图对比,证明其改进的注意力模块可使模型对小目标的关注区域更精准,实验论证说服力提升 50%;工业质检场景下,热力图帮助工程师快速定位模型漏检缺陷的原因——原来是对某类缺陷的特征关注不足。

m0_71589036的博客 677

大学生视角下的Linux学习之路

读了这本书后,我理清了头绪,对专业的学习、对专业知识的获取变得更加主动,无论是从课本上、网上还是日常生活的接触上,我都事事留心,时时记录,为未来深入学习Linux做准备。通过阅读这本关于Linux系统的书籍,我明白了首先要有扎实的Linux知识,不断规划不断学习,进而对Linux学习提出更高的要求,并且主要探讨Linux的运用和开发方面;的认识也提高了许多。

weixin_56035688的博客 662

OpenMVS :用 colmap制作自己的数据集 重建(用colmap计算位姿,将位姿转为MVS需要的格式)

数据集制作主要是在windows进行,比较方便。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 3325

正在学习linux的我写一封信给十年后的自己

如果能够重返20岁,你想对自己说些什么,哪些经历让自己记忆深刻,吸取了哪些教训?会不会重新选择之前在某个时间点你选择的planA?在旅行途中和不同地区的长者聊天的时候,我们常常会聊到这个有趣的话题,他们大都会在自然的交谈中给予我很多宝贵的建议,并很谦逊地说道之所以能和我说这些也仅仅是因为他们O...

113

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

真实记录我入门学习Linux系统的经历

我本身来说并不是计算机专业的学生,因此今天来谈及这个话题,对大家来说,有了更多的客观公正性。对我而言,linux给我最大的财富,并不是编程能力提高了多少,而是视野的开阔、心态的转变和自学能力的提高。我本身是医科院校的信息管理专业学生,本身应该是分配到医院的信息科工作的,但是偶然间买了一本《Linux就该这么学》,让我眼界更加的开阔,让我懂得除了windows之外,外面的世界更加的精彩,领悟了开源软

petpig0312的博客 452

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Linux运维就业职业发展方向有哪些?

一般从企业入门到中级Linux运维工程师的工作大致有:挑选IDC机房及带宽、购买物理服务器或云服务、购买及使用CDN服务、搭建部署程序开发及用户的访问系统环境、对数据进行备份及恢复、处理网站运行中的各种故障、对网站的故障进行监控、解决网站运行的潜在安全问题、开发自动化脚本程序提高工作效率、规划网站架构、程序发布流程和规范,制定运维工作制度和规范、配合开发人员部署及调试产品研发需要的测试环境、代码发布等工作需求,公司如果较小可能还会兼职网管、网络工程师、数据库管理员、安全工程师、技术支持等职责。

oldboyedu1的博客 468

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

到底是学STM32还是学嵌入式linux?

01 话 题 经常有大学生同学纠结:我到底是学STM32还是学嵌入式linux。 这个问题很多人都会有自己的看法,今天我试着从多个角度,把我了解到的事实讲一下,希望对大家有所启发。 02 STM32确实好 首先得承认STM32确实好,好到STM32都成了单片机MCU的代名词了,现在很多人甚至说单片机时默认就说STM32,实际上还有很多单片机的啊。 STM32的第一大好处就是:就业机会确实多,社会需求多。 大家学点技术图什么? 还不是为了找工作赚工资。 当然我承认大家都有更远大的理想,但是就算你想造火箭也得毕

lianghuajunone的博客 5088

Linux方向职业分析

前言:据了解,Linux普通网络管理人员的月薪大约5000元左右,负责编程的Linux软件工程师月薪大约在8000元到12000元之间,Linux嵌入式软件开发人员的月薪大约在12000元以上。影响Linux从业者的薪资水平的还有两个重要因素:一是从业时间长短,二是具体的工作岗位。针对376个工作岗位的薪资水平与其工作年限要求交叉分析结果,我们可以看出,从业者进入Linux行业的时间越长,薪资水平

Linux云计算数据自学 3043

LINUX未来的发展前景

linux发展前景 随着Linux应用范围的迅速扩大,企业对Linux技术人才的需求空前膨胀,但与广阔的市场需求相对应的却是Linux人才的严重匮乏。目前所拥有的专业人才远远不能满足Linux迅速发展的需要,不仅高级的专业型Linux技术人才寥寥无几,就连基础应用人才也没有形成规模,据统计,未来五年内我国Linux人才缺口将达到120万!而成为一名Linux技术人才,无论是职业发展还是薪酬待遇都

hyb197898的专栏 1万+

当今时代 ,值得看计算机未来十年吃香的 4个新兴职业

当今时代 ,值得看计算机未来十年吃香的 4个新兴职业

weixin_51725318的博客 1794
上一篇: QQ/微信背后的即时通讯技术细节,方案选择丨接入层丨逻辑层丨web方案
下一篇: 还不了解协程吗?从原理到实现,全局分析
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值