新书《从入职到架构师——我的嵌入式软件成长之路》目录结构

不知大家是否有这样的经历,自己发现一个很好的东东,但在给别人分享时,无论如何也说不清楚,急的满头大汗,语无伦次,但别人依然是云里雾里的,半信半疑。我自己就经常如此,真应了那句话,茶壶里煮饺子——倒不出。

我喜欢交流与分享,喜欢将自己平时工作中总结出来的各种行之有效的策略和技巧分享给别人,但经常碰到各种各样的窘境。

反思自己,问题到底出现在哪儿呢,我认为可能有如下几方面原因:

  1. 缺乏重点,别人听了一堆东东,也抓不住关键点;
  2. 缺乏体系化,各类技巧零零碎碎的,让人感觉很杂乱;
  3. 缺少共情点,没有代入感,既然对自己无用,谁乐意听你吹牛。

因此此次我在整理文稿时,比较关注整体知识的体系化,更关注职场人的困惑点。

整理反思我自己在跨国企业学到经历时,有两点让我感触很大,其一是将一个人的程序变成一群人的程序,其二是超高的代码(泛指,不仅仅是传统代码)复用率。我认为,一个公司如果能做到这两点,其研发水平已经上了一层楼,如代码不依赖个人,不仅人员离职对公司影响较小,而且便于标准化作业,支持大规模的工程师借用挪移。

公司的成长,本质上是公司中许许多多一个人一个人的成长,如果一个公司做到了这两点,自然而然会冒出很多优秀的架构师或领域专家。因此,我们与其说是公司的成长,不如说是个人的成长。本书的主标题“从入职到架构师”就蕴含着这样的逻辑。

个人的成长,说起来很玄幻,不如换另外一句话:我们如何跨越了一个又一个阻挠我们的困局。鉴于此,我经常在本书中和大家谈各种工作中碰到的困局,也希望大家能多和我交流自己在工作中碰到的各种麻烦事。这样持续下去,短期感受不明显,但一段时间后回头看,会惊喜的发现自己已经走出去很远。

综合上面几点原因,本书内容的整体组织结构,会从发现困局出发,同时大致遵循一个新人的成长经历。

第一章为“我的嵌入式软件成长之路”。该章从我自己工作中曾经面临的各种困局出发,带领大家去经历一次次跨越这些困局的成长之路。额外,该章也是整体叙述章节,让大家从全局理解高复用软件研发模式的价值、核心点和路线图,坚定信心,勇敢的迈出第一步。

第二章为“跨越C语言入职陷阱”。从学校到职场,从单一专业跨越到完整产品思维,对很多新人都是一个痛苦的转变过程。我们没有办法按照大学的模式去慢慢咀嚼各类技能,需要你快速掌握最少必要入门知识,并快速迭代式前进。如何做到呢?本章我以自己带新人快速学习C语言为例进行演示。额外,为了便于大家举一反三,我还罗列出一些自己在实践中整理的各知识方向快速入门要点,供大家参考。

第三章为“代码审核机制”。前文我提到,要实现个人和企业的成长,首要前提是将代码从个人手中解放出来,将其变成流动的标的物。但代码是纯粹的个人智力产物,大家或多或少都有读别人代码的痛苦经历,如何做到呢。本章会提及很多润滑代码的可行策略,也可以提供各类线下咨询活动,以帮助大家早日迈过最重要的第一步。

第四章为“进入正式的产品世界”。我带新人时,如果完成了代码审核训练,基本就迈过了入职的准备阶段,可以开始接触真实的产品了。职场培训其重点不是学习一个个的知识技能,而是做出一款好的产品。为了后续描述方便,我们需要构建一个虚拟产品,还要让其有一点点工控的味道,有点点强实时的味道,但又不至于像真实产品太专业太庞杂,整个产品仅需要一点点大学电路基础知识即可。

第五章为“接口和模块化”。可能最简单的软件复用化,就是从通用函数提炼起步吧,然后自然会繁衍出一个缤纷多彩的世界。该章节以虚拟产品为依托,由简单到复杂的带大家去经历几个例子,让大家慢慢体会软件复用的乐趣。

第六章为“整体架构设计”。做产品的朋友们一定会发现,软件模块喜欢紧紧耦合在一起,你稍微不注意,就乱成了一堆麻了。单纯的提炼借口,仅能做到有限程度的代码复用,面对很多棘手问题时就经常束手无策了。此时,就必须从产品整体角度去思考了。另外,为了让程序可在团队成员之间自由流动,共识很重要,而架构设计,是团队构建共识的最佳契机。本章以虚拟产品及其需求为出发点,带着大家慢慢的引出产品的整体架构设计。

第七章为“产品质量持续提升”。职场的朋友应该都清楚,做出产品仅仅是第一步,后续还有无尽的工程问题等着你,持续的代码维护甚至会耗去你的主要精力。如何做出一款高质量的产品,如何有效的降低维护工作量,如何出现问题时快速定位,又如何在用户现场出现扯皮时能恰当应对……,本章会带你去经历那些职场的风霜雪雨,或许能帮你在职场中更从容淡定一些。

第八章为“融入管理”。如果您按以前面描述的策略带领团队做产品,会自然而然的感觉到其背后好似有个完整的管理体系。如我们前面要求必须做到将代码作为成果物,可在团队成员中润滑的流动。一旦代码流动起来,从全局就很容易发现在什么地方卡壳了,什么地方又造成了浪费。在比如文档体系,我们经常一边感叹自己的项目缺文少档,一边又无奈的继续。如果推行高效的代码流,原来想当然的大量文档都会成为浪费点,而必要的文档会被自然而然的被沉淀下来。

第九章为“实践之路”。至此,我整理出来的整个知识体系就介绍完毕了,但很遗憾,她只能给你参考,而不能直接告诉你给如何做。如为了让代码润滑流动,需要构建大家都认可的代码布局结构和书写规范,但不同团队用的编程语言、开发环境、人员素质等都千差万别,根本不存在统一的策略,需要在实践中不断磨合提炼。在比如接口和架构,虽然我在该书中我举了很多例子,但工控类产品跨度很大,复杂度、代码量、实时性、可靠性、进度和成本约束等特性都千差万别,也很难有标准的策略,需要大家结合着自己的产品去持续摸索。本章会简单的描述一些我在咨询活动中的通用做法,当然,这也是我咨询工作的重点,如您有需求,我会帮助您慢慢的将这套体系融入到您的项目团队中。

本书整体目录如下
0.0 写一本书,纳二十载精华
0.1 前言
0.2 目录
1.0 我的嵌入式软件成长之路
  1.1 自我介绍
  1.2 早期职场的一些痛苦经历
  1.3 亲历代码高复用研发模式
  1.4 我的漫漫探索路
  1.5 破除各种惯性误解
2.0 跨越C语言入职陷阱
  2.1 新人入职困局
  2.2 更好的“速成”策略
  2.3 构建C语言入职教程
  2.4 C语言入职例程一:空心菱形
  2.5 C语言入职例程一:强化指针概念
  2.6 C语言入职例程三:函数指针和程序框架入门
  2.7 趣谈嵌入式C语言十层境界
  2.8 其他快速入门必要知识
    2.7.1快速学习产品
    2.7.2 C++快速入门
    2.7.3 qt快速入门
    2.7.4 芯片调试快速入门
    2.7.5 算法分析,matlab快速入门
    2.7.6 给用户讲产品,ppt快速入门
    2.7.7 写必要文档,word快速入门
    2.8.8 总结
3.0 代码审核机制
  3.1 代码审核机制
  3.2 文件全局观
  3.3 编码细节观
  3.4 约定注释风格
  3.5 统一名称
  3.6 有效借助工具
  3.7 构建知识库
  3.8 行动指南
4.0 进入真实产品世界
  4.1 一款真实的产品
  4.2 基础数据模型
  4.3 架构师眼中的产品
5.0 接口和模块化
  5.1 模块化,知易行难
  5.2 AI数据结构
  5.3 报告类数据模型接口
  5.4 设定值类数据模型接口
  5.5 信号复归——一个强耦合模块解耦过程
6.0 整体架构设计
  6.1 产品化思维,迈入架构世界
  6.2 严格层次化模型
  6.3 元件化模型
  6.4 分布式模型
  6.5 静态组织架构
  6.6 动态执行架构
  6.7 GUI人机接口
  6.8 配置级维护软件
  6.9 重新认识架构
7.0 产品质量持续提升
  7.1 产品质量概论——产品质量,企业生存的根本
  7.2 漫游全面质量管理体系模型(TQM)
  7.3 一次产品异常复位分析经历,带你迈入质量持续提升世界
  7.4 与其被动等待质量问题,更需要主动出击
8.0 融入管理
  8.1传统管理之殇——漫天的理论,却无从下手
    8.1.1 过程改进与CMMI
    8.1.2 ISO9000族质量管理体系
    8.1.3 覆盖产品生命周期的研发管理体系IPD
  8.2 漫游代码单件流,思考其背后的管理思维
  8.3 由代码单件流出发,构建最小必要文档体系
  8.4 单件流和高复用结合,迈入大规模标准化研发模式世界
  8.5 架构师和领域专家是如何自然而然产生的
  8.6 基于内生性需求,持续迭代您的最佳管理策略
9.0 实践之路
  9.1 这是一套能力模型,而非简单的知识体系——需要学,更需要锻炼
  9.2 最佳起点:看到就是一种力量
  9.3 必要条件:高层的理解和长期支持
  9.4 执行策略:春雨润物,基于原有研发体系并慢慢融入改善。
10.0 尾记

该目录结构后期会持续调整和优化,欢迎大家多提意见。虽然本书还在持续撰写中,但对于我来说,本书所有内容早就烂熟于胸,大家可以任意选择感兴趣的内容同我交流。另,一开始列出目录结构有助于大家有个整体认知,但切忌不要望文生义,根据过往经验,这样很容易将自己带偏了,最终反而成为思维上的拦路虎。

——————————————

我是小马儿,一个渴望良知与灵魂的嵌入式软件工程师,欢迎您的陪伴与同行,如感兴趣可加个人微信号nzn_xiaomaer交流,需标注“异维”二字。

你可能感兴趣的:(新书《从入职到架构师——我的嵌入式软件成长之路》目录结构)