马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
一、新人入职最轻易掉的两个坑
工作前 1-3 年的工程师,选活时常常掉两种坑。
坑一:抢"看起来焦点"的活。新功能、性能优化、架构改动 —— 各人都想做,由于听起来"紧张"。效果你抢到一块功能,做完发现是"按需求文档实现一段代码",对体系的全貌依然没瞥见。一年下来,简历上多了几条功能,但要你画一张架构图,画不出来。
坑二:接到"看起来边角"的活,带着感情做。根本办法、文档整理、工具脚本、Bug 跟进 —— 这些活分给新人,新民气里多少会嘀咕"是不是把我当杂工"。心态一带感情,就只想"赶紧做完去做正事",做的过程不挖,做完就忘。
两个坑,第二个坑伤害更大。由于它把一次原来可以"以小入口分泌整个体系"的机遇,降级成了"完成一项任务"。
这篇想讲的是 —— 职业早期接到的那些"看起来不紧张"的活,假如换一种吃法,反而是分泌整个体系的最快入口。
二、我的出发点:被分配的"第三方库交织编译"
2021 年 10 月我入职某嵌入式 Linux 智能电视团队,负责某流媒体平台的装备认证对接。入职第二个月被分到的第一个任务是:把该认证框架所需的约 20 个第三方开源库 全部交织编译到嵌入式平台上去。
这是个典范的"看起来边角"的活:
- 不属于业务功能 —— 不是写产物代码、不是改 UI、不是接 API
- 团队里此前没人体系做过 —— 由于它不性感,各人碰到都是临时手工对付一次然后扔了
- 听起来像"工具人"的活 —— 编译脚本、.so 拷贝、依赖排序
假如按"赶紧做完去做正事"的心态,我大概会写 20 段独立脚本,每个库手工搞通就过,然后再问 leader 要"正事"。
但我没这么做。我把它做成了一个编译框架(关联数组登记库元数据、每库独立 build.sh、根脚本只做编排、产物主动聚合 —— 细节在另一篇博客)。从语法学习到框架成型 17 天。
更紧张的是,做这件事让我偶然中得到了一张舆图:
- 20 个第三方库的依赖关系 → 我搞清楚了认证框架对整个体系的依赖布局
- 4 种异构构建体系的适配过程 → 我熟悉了交织编译工具链、sysroot、host/target 设置
- 把脚本调通的过程 → 我熟悉了这个团队 SDK 的目次布局、构建惯例、设置文件位置
这张舆图是后续统统纵深的出发点。
三、为什么"边角料"反而是入口
转头看,"边角料"任务有几个被低估的属性,让它成为分泌体系的最佳入口。
3.1 边角料任务的"打仗面"反而最广
业务功能的打仗面是纵向窄的:你接一个 API,改一个页面,改完合 PR,只动了体系的某一条具体路径。
根本办法类活的打仗面是横向宽的:编译框架要碰到全部库、全部依赖、全部目次布局;监控工具要碰到全部数据源;日志整理要碰到全部模块的输特殊式。
做完一个边角任务,你对体系的横向认知,比做完一个业务功能深得多。
3.2 没人盯着,反而能慢做
业务功能有 deadline、有需求方、有验收点 —— 你被推着往前走,没空挖。
边角任务通常没人盯节奏,只有一个暗昧的"做完"。这反而是功德 —— 你可以慢一点,允许自己"做完之外"还看一圈:
- 这个库为什么这么计划?
- 这个目次布局反映了什么架构选择?
- 这条编译错误背后是哪个工具链假设没建立?
这些"额外的看",才是把任务酿成纵深入口的关键。
3.3 边角料的效果不被对比,反而能立标杆
业务功能写完会被偕行评审、和别人的实现对比 —— 你写的不会比同事高出太多,差不多就是及格。
边角任务每每团队没有先例,你写的就是后续尺度。我谁人编译框架成型后,团队新人接办雷同任务时,直接复用,不再重复踩坑。你的产出成了别人的入口。
四、三次纵深分泌的实例
那张舆图带来的"分泌"不是抽象的,是具体的反复连贯入口。
4.1 第一次分泌:从编译框架到对接层重构
20 个库编通的过程里,我反复读了认证框架的对接代码 —— 由于编译报错常常必要看头文件、看依赖、看接口界说。读得多了,框架内部架构在我头脑里就有了一张图:应用管理、主动化测试、JS/C++ 桥接层、播放层、音频混流...
更进一步,我看出了两个重构点:
- 对接层第一版用类方式构造接口,新版本优化为纯 C 接口 + 布局体 —— 我提取了这个计划头脑,后续在另一个跨平台对接项目里直接复用
- 设置文件项监测用了监听者模式,但注册接口欺压继承,耦合重 —— 我重构为函数对象方式,更解耦
没有那 20 个库的编译过程,我不会读到这些代码;没有读到这些代码,我看不出重构点。
4.2 第二次分泌:从播放 bug 到完备音视频文档
接下来调试一些音视频体验标题(切场景的渐强渐弱、片断过渡、口型同步)。这些 bug 看起来是"具体标题修一下",但真要修对,得吃透:
- 数据从应用层下发到装备层的速率控制
- 帧缓存机制和消耗反馈
- 音频混流的全流程
- 多源段转换时的间隙处理处罚
修完几个 bug 之后我整理出两份完备技能文档:音频混流全流程、音频间隙处理处罚机制。这两份文档厥后成为团队相干标题标参考资料。
"一个 bug" 看似是边角点,但要修对就得吃透链路 —— 这是"边角带纵深"的另一种情势。
4.3 第三次分泌:从瓦解处理处罚这个"噜苏活"到端到端 telemetry 栈
厥后分到我手上的另一个边角活:处理处罚回传上来的瓦解。一周几百条 Excel,要分类、登记、跟进。听起来是"看 Excel + 填表格"的体力活。
但我没把它当体力活做。我做了三件事:
- 看清楚为什么噜苏:strip 符号 + 基址随机化的栈不能肉眼比对 —— 噜苏背后是技能标题
- 算法更换肉眼:三阶段去重算法 + 6 段 Crash Flag 主键(细节在另一篇博客)
- 工具更换手工:11 模块 4 层架构 + SQLite 周视图 + py2exe 全团队使用
做完这件事,获了公司年度创新奖。但更紧张的是,这件事让我从"分析鄙俚瓦解"反推到"上游非常收罗" —— 我又主导做了应用侧的非常上报接入和线程身份注入。
一条端到端的瓦解 telemetry 栈,从一个"噜苏边角活"开始,被吃成了一整套根本办法。
五、怎么判定哪些"边角料"值得深挖
不是全部边角任务都值得做成纵深入口。判定尺度我过后总结出几条。
5.1 看打仗面广度
判定一个任务值不值得深挖,先问:做这件事,我会打仗到体系的多少个模块?
- 打仗面只覆盖 1 个模块 → 是单点任务,做完就过,别投入额外精神
- 打仗面覆盖 3 个以上模块 → 是"舆图任务",值得借机画出心智舆图
- 打仗面覆盖整套依赖链 → 是"渗收支口",值得把这件事做踏实,反面会反复获益
第三方库编译属于第三类 —— 一次摸清整个 SDK 的依赖网。
5.2 看产出可复用性
再问:我这次做完的产物,下次还能用吗?能给别人用吗?
- 一次性产物(临时脚本、改一处代码) → 做完即弃,投入精神按"够用"投
- 可复用产物(框架、工具、文档) → 投入精神按"标杆"投 —— 一次踏实做,反面全部人(包罗你自己)受益
边角任务很轻易做成可复用产物,由于它通常没有"特定业务需求"的束缚。
5.3 看"被推着走"程度
末了问:做这件事,我是不是有"边做边看一圈"的余地?
- 有 deadline + 需求方盯着 → 没余地,做完为先,挖留待后续
- 没人盯节奏只要求"做完" → 有余地,值得慢一点把配景吃透
边角任务通常符合第二条 —— 正是这种"没人催"的状态,让纵深分泌成为大概。
六、"吃"这件事怎么利用
光想"我要纵深分泌"是吃不出来的。必要具体动作。
6.1 边做边画"心智舆图"
做任务的过程里,欺压自己复兴几个标题并记下来:
- 这个模块和谁有依赖?
- 这个目次布局反映了什么计划意图?
- 这个错误背后的工具链假设是什么?
- 假如让我重新计划,我会怎么改?
不要等"做完再回首" —— 边做边写,信息密度才不会丢。
6.2 做完不止于"通过验收",再多看一圈
任务通过验收只是出发点。再多投入半天到一天:
- 把这次打仗到的模块的焦点代码再读一遍(不是为修,是为认舆图)
- 把这次踩的坑整理成文档(给后续接办的人,也是给将来的自己)
- 找一个"假如让我提一个改进,我会提什么"的视角 —— 这个视角会欺压你从"实现者"切换到"计划者"
6.3 把"舆图"转成下一步举措
舆图是为了用的。当你画清楚某个体系的依赖关系后,主动找一个"舆图上的关键节点"作为下一步入口:
- 我编译框架做完后,主动提出"我可以接对接层的代码梳理"
- 我对接层熟了之后,主动提出"我可以接 TEE 安全集成"
- 我瓦解工具做完后,主动提出"我去策应用侧的非常上报机制"
每一次"主动接下一个"都是创建在前一次的舆图之上。不是漫无目标地接活,是沿着自己的舆图往纵深走。
七、抽象到方法论
把这几件事抽象出来,有三条原则。
7.1 边角入口 vs 焦点入口,是两种差异的纵深路径
焦点入口:抢到一块业务功能,做踏实,深入这条业务路径。长处是显性,劣点是路径窄,看不到体系全貌。
边角入口:接一块根本办法类活,横向放开,得到体系舆图,以舆图为跳板逐次分泌。长处是看到全图,劣点是初期"看不见产出"。
职业早期 1-3 年,边角入口的复利效应比焦点入口大 —— 由于它给你的是"舆图"而非"一条路径",而工程师之间长期差距,不在路径上,在舆图上。
7.2 "噜苏"和"边角"是两个信号:既是陷阱,也是机遇
"噜苏"和"边角"的任务,被大多数人当成陷阱躲;但对会"挖"的人,这两个标签反而是机遇信号:
- 没人乐意做 → 你做了就是根本办法提供者
- 没有先例 → 你做的就是后续尺度
- 没人盯节奏 → 你有余地做踏实
- 打仗面广 → 你能借机看全图
关键不在任务自己,在你怎么吃它。同一份边角任务,A 当杂工做完忘了,B 把它做成了体系纵深的入口 —— 两年后两人本领差距能拉开数倍。
7.3 一次纵深 → 主动找下一个 → 形成职业舆图
末了一条:单次纵深不敷,要把它酿成职业层面的递推。
每完成一次"从边角入口分泌到纵深",主动找下一个边角入口 —— 而不是"接下来该让我做什么"。这种主动性会形成一个稳固模式:- 边角任务 1 → 地图 1 → 主动接 2 → 地图 2 → 主动接 3 → 地图 3 ...
复制代码 3-5 次循环之后,你对整个体系的舆图就是团队里最完备的几个之一。这时间有任何体系级标题,各人会自然来找你 —— 不是由于你抢到了"焦点活",而是由于你画出了"焦点舆图"。
八、写在末了
转头看,我职业早期最紧张的反复本领跃迁,都来自被分配的"边角料"任务:
- 第三方库交织编译 → 整个 SDK 的依赖图
- 音视频 bug 处理处罚 → 完备的播放链路文档
- 瓦解数据登记 → 端到端 telemetry 根本办法
当时我并不"自发"地知道这是个方法论,只是本能地"不想浪费这次打仗体系的机遇"。转头复盘才看清这条规律。
假如让我对刚入职的工程师说一句话,会是:
不要躲边角料任务,要会挖它们。被分到一块没人乐意做的活,先别惆怅 —— 把它当成一次"体系给你发舆图"的机遇。
舆图比路径值钱。能挖舆图的人,长期看,是任何团队里最稀缺的那一类。
边角入口不是"屈才",是"借势" —— 借的是"没人催 / 打仗面广 / 产出可立标杆"这三种势能。
用这三种势能换一张体系舆图,是职业早期最划算的生意业务。
|