“人在美国、刚下飞机、清北复交、博士学位、年入百万...”
这些曾经在知乎上的标签式语句如今已经成为段子,知乎上总会有些标题为“年入100万是什么体验?”,“年入50万是什么体验?”的帖子,在无数网友挥洒大方的回答下,仿佛年入百万已经成为平均水平,年入50万也只是刚刚起步。更令人好奇的是,这些年入百万的高端人群竟然有时间在知乎上写这么多文字分享年入百万的美妙感觉。
那么实际情况是怎样的呢?
尤其是年入百万在Linux行业到底需要什么水平,下面就来看一看。
Linux阅码场的分析人员在大量翻看了BOSS直聘上百万年薪Linux招聘岗位[1]的需求后,根据JD的要求总结提炼出百万年薪Linux工程师普遍具备:
坚实的Linux“通识”
特定工程领域的“专知”
在Linux“通识”方面,典型的要求包括:
1.首先,体系结构你得熟悉一个
不管是X86,ARM,还是这些年兴起的RISC-V。需要深入理解一种处理器体系结构,了解其微架构、内存、中断等相关领域,还有Linux对其的支持实现。
2.其次,Linux内核通用基础模块
熟悉Linux内核,起码熟读过某一个主要子系统(调度器、内存管理、中断、存储、文件系统、TCP/IP, I/O)的源代码,至少对一个内核子系统有深入的钻研和总结并且有自己的见解。
3.再次,内核常见的Debug手段得是你的拿手好戏
熟悉softlockup、 hardlockup、死锁、panic、oom等日常调试手段,有丰富内核故障调试经验。
4.内核优化工具你也得熟
熟悉Linux常用性能分析工具如 perf/ftrace/ebpf/systemtap/blktrace等,有实际的系统级性能优化经验。
当然,这些还不够,针对具体的岗位还有不同的“专识”要求,比如:
搞网络的话
熟悉网络和存储协议,有DPDK和SPDK开发经验
搞虚拟化的话
熟悉KVM,qemu,libvirt, virtio/vhost等模块
容器开发的话
Kubernetes,Docker,k8s,cgroups等的深入理解
另外,招聘方普遍认可候选人在主流开源社区的贡献,比如在Linux内核、K8S和Docker、DPDK等社区可见的patchset。所以工程师通过提出建设性的idea,然后把idea转化为高质量的社区patch,将开源社区贡献作为“名片”,无疑将有助于更好地展示自己。
再加上,的确还有些公司在JD上还会有学历,学校,年龄,工作经验,行业背景等等各方面的硬性要求。但是,凡事都有例外,“学历,学校,年龄”的这些要求也许是可以破的,行业里面不乏中专学历在BAT等大厂混地风生水起的神人。
难,的确是难!
但是虽然难,只要跟随着正确的方式坚持学习,大部分人都还是有希望实现这个目标,Linux阅码场的读者中有不少人达到甚至远远超过这个水准了。
少年们,加油!