学了Linux就裸奔上岗的你,拿了多少薪资?

学了Linux就裸奔上岗的你,拿了多少薪资?
最近听网上很多人说学好Linux就不愁找不到工作,对此大家怎么看呢?

对于互联网计算机行业来说,Linux系统是使用率最高的系统,在全球范围内高达80%。虽然不接触计算机行业的朋友永远不会了解到这一点,但这不妨碍Linux在行业内的风靡。

而Windows系统相对而言更适合小白,家庭使用,而Linux系统更适合程序员、开发、测试、运维等工作使用。简而言之,学好Linux你就拥有了超大范围的可就业选择。所以学好Linux不愁工作也不是空穴来风的。

但也仅仅只是找到工作,对Linux学习更加深入后,大家都会了解到,正是Linux高使用率,在行业的风靡,也细分出了不同方向的技术领域,对各个技术方向的要求也是不一的。

就目前市场而言,主流的Linux从业方向有三:

  • Linux运维
  • 嵌入式Linux
  • Linux服务器开发

Linux运维
首先就是服务器的维护,保证服务器正常运行不宕机,这是最最基本的要求。一旦出现问题,运维往往是第一任的背锅侠,相信有过经验的老铁,一定深有体会。
而对Linux运维来说相对写代码较少,核心功能是给开发人员提供一个可靠的服务器运作环境和技术支持。更多的是懂一些Linux命令,开发环境的搭建及各种服务的配置。

嵌入式Linux
嵌入式Linux行业其实是比较广的,
8位机8051算嵌入式;
加上RTOS,RT Thread的单片机系统开发算嵌入式;

linux系统API开发,驱动开发算嵌入式;SOC+Linux+OpenCV+CNN+YOLO也叫嵌入式。
但是薪资待遇又会不一样。所以嵌入式不是没前途,只是入行门槛相对较高,软硬件都得会,而且目前大量的嵌入式开发人员推挤在单片机领域,拉低了整个嵌入式行业的薪资水平。
如果不是兴趣使然,新手入坑还是不建议嵌入式的。

Linux服务器开发
Linux服务器开发和嵌入式开发同作为Linux应用开发的方向之一,它的优势在于:几乎每一家科技公司都会拥有自己的服务器,有服务器,那就会有Linux服务器开发程序员的身影,而且是大厂必备。

如果让我给这三个方向按市场需求量,职业上升空间及薪资水平综合排一个序的话:Linux服务器开发>Linux嵌入式>Linux运维

因为同样是在Linux系统下开发,有时会让不少人产生一种错觉,他们之间除了技术运用之外没有任何的区别,Linux服务器开发方向不是薪资高吗?我去找找资料学习一下,就能成功转型了。

如果你也是这么想的话,不妨先来看看腾讯招聘的T9后台开发工程师需要掌握哪些具体技术点再说吧~~
学了Linux就裸奔上岗的你,拿了多少薪资?
是不是比想象的技术能力要求更高,看上去的技术点内容也是十分繁多。如果凭借零散的资料去提升,那可能黄花菜都凉了,这也是为什么明明技术要求都公布了,但进大厂依旧很难的原因之一。

缺乏系统的技术梳理,感觉自己的会的很多,但是技术栈并没有成体系。

c/c++Linux服务器开发架构学习路线领取(对标腾讯T9)
Q群:797982296
学了Linux就裸奔上岗的你,拿了多少薪资?

什么是体系?

成体系就是将自己所会的技术内容做一定程度上的归纳整理。以c/c++Linux服务器开发为例,不同于Java系,c/c++Linux服务器开发方向更重视的网络编程模块(高性能网络设计)。所以对于这一块的技术内容,我们一定要有自己的技术整理,网络编程/网络原理 我们需要掌握哪些技术内容?

一、网络编程
1.网络io与select,poll,epoll

  • socket与文件描述符的关联
  • sigio的异步通知
  • 多路复用select/poll
  • 手撕epoll单线程,多线程,多进程的多种写法
  • 代码实现LT/ET的区别

2.reactor的原理与实现

  • reactor针对业务实现的优点
  • epoll封装send_cb/recv_cb/accept_cb
  • reactor多核实现
  • 跨平台(select/epoll/kqueue)的封装reactor

3.http/ https服务器的实现

  • reactor sendbuffer 与recvbuffer封装http协议
  • http协议格式
  • http2.0与http3.0
  • 有限状态机fsm解析http
  • https的工作流程
  • https证书配置

4.websocket协议与服务器实现

  • reactor sendbuffer 与recvbuffer封装websocket协议
  • websocket握手流程
  • websocket协议头封装
  • tcp分包与粘包的解决方案
  • websocket数据流的编解码

二、网络原理
1.服务器百万并发实现

  • 同步处理与异步处理的数据差异
  • 网络io线程池异步处理
  • ulimit的fd的百万级别支持
  • sysctl.conf的rmem与wmem的调优
  • conntrack的原理分析

2.redis,memcached,nginx网络组件

  • redis单线程reactor的实现
  • memcached的多线程master-worker的reactor实现
  • nginx的多进程reactor的实现
  • 多进程reactor的坑点,惊群,共享内存

3.Posix API与网络协议栈

  • connect,listen,accept与三次握手
  • listen参数backlog
  • syn泛洪的解决方案
  • close与四次挥手
  • 11个状态迁移
  • 大量close_wait与time_wait的原因与解决方案
  • tcp keepalive与应用层心跳包
  • 拥塞控制与滑动窗口

4.UDP的可靠传输协议QUIC

  • udp的优缺点
  • udp高并发的设计方案
  • qq早期为什么选择udp作为通信协议
  • udp可靠传输原理
  • quic协议的设计原理
  • quic的开源方案quiche
  • kcp的设计方案与算法原理

对于服务器开发的网络编程与原理,掌握这样的技术总结内容,基本上就能面试过大部分的问题了。

现在已是金九银十跳槽季,对于想跳槽转型c/c++Linux服务器开发方向的同学分享自己整理的一份资料包
包含:
1.500道BATJ大厂常考面试题
2.十位大厂offer斩获者面经分享
3.面试常考范围技术点总结解析
4.2021常用26份简历模板
学了Linux就裸奔上岗的你,拿了多少薪资?
金九银十跳槽资源包

上一篇:Android开发中*Error


下一篇:Java基础十---JavaIO