Linux 系统工程师生存指南(2020)
Anakin Lv1

角色定位

从事任何行业都应当首先找准自己的角色定位,即世界需要什么,以及自身能够贡献何种价值。

操作系统开发的特点:

  1. OS 开发门槛较高,需要扎实的计算机基础知识,培养一名能够投入工作的系统开发者所需的时间远远长于应用开发者。
  2. 由于 Linux 的稳定性和广泛使用,系统开发者的职业寿命也相对较长,掌握的技能不容易被时间淘汰。
  3. 相比于前后端开发,初创公司对系统开发者几乎没有需求(个别初创硬件公司除外),系统开发者很难得到上市“暴富”的机会,但大型公司通常有构建自己底层框架的需要,经验丰富的系统开发者依然抢手,不难得到一份体面的薪资。
  4. 系统开发有自身的节奏,偏向于研究和“憋大招”,短期不会有太强的交付压力,适合 work-life balance。
  5. 系统开发工作与开源社区联系紧密,这意味着自己的工作不止在公司内产生影响,长期看有利于打造个人品牌(比如成为社区 Maintainer),在雇主面前掌握议价权。

能力地图

计算机原理

  • 计算机系统原理 ☆☆
  • 数据结构和算法 ☆☆
  • 操作系统 ☆☆☆
  • 计算机网络 ☆
  • 编译原理 ☆

开发与测试

  • C 语言基础 ☆☆☆
  • Linux C 编程 ☆☆☆
  • 构建大型 C 程序 ☆☆☆
  • C 程序调试 ☆☆
  • C 单元测试 ☆
  • 开发工具链 ☆☆
  • 软件架构和设计模式 ☆☆
  • 现代编程语言(Python/Go/Rust/…)☆

Linux 基础

  • 基础知识 ☆☆☆
  • 基本技能(如写脚本和打包) ☆☆☆
  • 内核原理 ☆☆☆
  • 虚拟化、容器与云计算 ☆☆

软技能

  • 开源文化 ☆
  • 软件工程 ☆
  • 非技术:写作 ☆

学习路径

公共信息源

书籍

通过书籍学习的特点是经典,不容易过时。

  • 计算机原理
    • 计算机系统原理
      • 编码:隐匿在计算机软硬件背后的语言
      • 计算机组成与设计:硬件/软件接口
      • 深入理解计算机系统
      • 计算机体系结构:量化研究方法
    • 数据结构和算法
      • 算法图解:像小说一样有趣的算法入门书
      • 数据结构和算法:C 语言描述
      • 算法导论
    • 操作系统
      • 现代操作系统
      • 操作系统:精髓与设计原理
      • 操作系统导论
    • 计算机网络
      • 计算机网络:自顶向下方法
      • TCP / IP 详解(卷一:协议)
    • 编译原理
      • 编译原理(龙书)
  • 开发与测试
    • C 语言基础
      • C 程序设计语言
      • C Primer
      • C 和指针
      • C 陷阱与缺陷
      • C 专家编程
    • Linux C 编程
      • UNIX 环境高级编程
      • Linux/UNIX 系统编程手册
      • Linux 程序设计
    • 构建大型 C 程序
      • 程序员的基本修养:链接、装载与库
    • C 程序调试
    • C 单元测试
    • 开发工具链
      • Pro Git
    • 软件架构和设计模式
      • 代码整洁之道
      • 架构整洁之道
    • 现代编程语言(Python/Go/Rust/…)
      • Python 学习手册
  • Linux 基础
    • 基础知识
      • 鸟哥的 Linux 私房菜
    • 基本技能
      • Linux 命令行与 Shell 脚本编程大全
      • RPM Spec Guide
    • 内核原理
      • Linux 系统设计与实现
      • Linux 设备驱动程序
      • 深入理解 Linux 内核
      • 深入 Linux 内核架构
    • 虚拟化技术
  • 软技能
    • 开源文化
      • 大教堂与集市
    • 软件工程
      • 人月神话
    • 非技术

技术社区

会议论文

适合跟踪学术界的最新动态。

  • OS 领域

公众号

适合了解行业发展趋势,尤其是从商业角度。

个人信息源

个人信息源有时候比公共信息源更珍贵,如果你恰好找到了

公众号

博客

原则与方法

有计划地训练自我

你最大的责任就是把你这块材料铸造成器。——易卜生

输出式的学习

认可

之前讲的都是如何塑造自己成为 “Who I am”,这里要讲的是 “What others think I am”。

工作经历

  • 职业履历
  • 项目经历

个人经历

  • 开源贡献(如内核补丁提交经历)
  • 创作

证书

RHCA

职业规划

待更新。

  • Post title:Linux 系统工程师生存指南(2020)
  • Post author:Anakin
  • Create time:2020-11-11 08:38:42
  • Post link:https://nettingsisyphus.tech/2020/11/11/kernel-developer-surviving-guide/
  • Copyright Notice:All articles in this blog are licensed under BY-NC-SA unless stating additionally.