当前位置: 首页 > news >正文

第六章:觉醒

第二卷 · 觉醒之路

觉醒与学习——系统性提升专业与政治敏感度

第六章:觉醒

春节假期结束后回到北京的第一天,林晚就去找了张磊。

不是因为有什么紧急的事。是因为他想清楚了一件事——他要转向数据方向。

春节期间他在家里想了很多。不是躺在沙发上想,是打开笔记本电脑,把蓝鲸企业服务事业部的技术架构从头到尾看了一遍。他发现了一个事实:蓝鲸的企业服务产品线里,增长最快的部分是数据智能——客户对"数据驱动决策"的需求在快速增长,但蓝鲸在数据方向的技术能力严重不足。

这不是他"看出来"的。是赵峰在去年跟他聊业务的时候提到的——"客户最头疼的就是数据。数据分散在各个系统里,想用的时候用不起来。"当时林晚只是记住了这句话,但春节在家里的时候,这句话忽然变得有分量了。

他想做"解决这个问题"的人。

不是因为情怀。是因为他看到了一个清晰的逻辑:数据方向缺人→缺人意味着机会多→机会多意味着成长快→成长快意味着天花板高。这不是投机,是理性判断。

周一上午,他在张磊的玻璃隔间门口站了一会儿,敲了敲门。

"张哥,有空吗?"

张磊正在看什么东西,抬头看了他一眼,点了点头:"进。"

林晚走进去,在张磊对面坐下来。

"我想转数据方向。"

张磊看了他两秒钟,没有表现出意外。

"为什么?"

"两个原因。第一,数据方向是蓝鲸的增长点,但组里做数据的人不多,我想补这个缺口。第二,我对数据处理的底层逻辑感兴趣——分布式计算、数据管道、实时流处理,这些东西我之前只是了解,没有深入做过。"

张磊靠在椅背上,手指在桌面上轻轻敲了两下。

"你知道转向数据意味着什么吗?"

"知道。前半年积累的业务理解和技术栈,有一部分要归零。相当于从'中级'回到'初级'。"

"你不觉得亏?"

"短期来看亏。但长期来看,数据方向的天花板比我现在做的方向高。"

张磊看着他,嘴角微微动了一下——那个林晚见过很多次的、不确定是笑还是什么的表情。

"行。"张磊说。"你去找刘洋聊一下。他之前做过一段时间数据相关的开发,可以给你一些方向。另外,下周有一个数据迁移的项目要启动,你去参与。"

"好。"

林晚站起来,走到门口。

"林晚。"张磊在身后叫了他。

他转过头。

"你做了正确的选择。但选择只是开始。接下来半年,你要证明这个选择是对的。"

林晚点了点头,走出了张磊的办公室。

回到工位上,他打开备忘录,新建了一条:

第二卷:数据方向 · 开始

- 目标:半年内成为数据方向的独立贡献者

- 挑战:前半年积累归零,从"初级"重新开始

- 机会:数据迁移项目(下周启动)

- 风险:如果半年内没有成果,可能需要重新评估

写完之后他又加了一行:

张磊说"选择只是开始"。但没有选择,连开始都没有。

数据迁移项目在第二周正式启动。

项目的目标是把蓝鲸一个老客户的迁移数据从旧系统搬到新系统——听起来简单,实际上是一个巨大的工程。旧系统是五年前开发的,用的是老版本的数据库和自定义的数据格式;新系统是蓝鲸最近两年重构的,用的是分布式数据库和标准化的数据模型。

翻译成人话就是:旧系统的数据像一堆乱七八糟的纸箱子,新系统是一排整齐的货架。你需要把纸箱里的东西一件一件拿出来,按照新货架的规则分类放好。

林晚被分配负责数据转换层的开发——就是那个"把东西从旧纸箱里拿出来,按新规则放好"的中间层。

项目组有五个人——林晚、刘洋、一个高级工程师赵峰(和产品部的赵峰同名但不是同一个人)、一个测试工程师,还有一个项目经理。刘洋是技术负责人,林晚是执行者。

刘洋给林晚分配了第一个任务:"你先去了解一下旧系统的数据格式。这里有一份文档,你看看。"

林晚接过文档——又是文档。

他学乖了。这次他没有只看文档,而是同时去看了旧系统的代码仓库。文档描述的数据格式和代码实际实现的数据格式之间有三处不一致——他把这三处差异列了出来,发给了刘洋。

刘洋看了之后说了一句:"你比我想的细心。"

这是林晚在数据方向收到的第一句正面反馈。

接下来的两周,林晚疯狂地学习数据领域的知识。他每天下班后学习两个小时——不是看通用的技术文章,是针对性地学习分布式数据库、数据管道、ETL流程、数据质量保障。

他发现这个领域比他想象的深得多。后端开发的核心是"处理请求-返回响应"——输入、处理、输出,逻辑清晰。但数据开发的核心是"处理大规模数据的流动和转换"——数据从哪来、经过什么处理、到哪去、质量怎么保证、出了问题怎么排查。每一个环节都有大量的细节和陷阱。

他像一块海绵一样拼命吸收——白天在项目中实践,晚上在文档和代码中补充理论。他把学到的每一个知识点都记在备忘录里,形成了一个"数据方向学习笔记"。

两周后,他开始写数据转换层的代码。

代码写得不算慢——他的后端基础在这里发挥了作用。但写到一半的时候,他遇到了一个让他头疼的问题:旧系统的数据格式有大量"脏数据"——空值、异常值、格式不统一的字段、甚至有部分数据是手工录入的,格式完全不规范。

他把这些问题整理成了一份清单,发给了刘洋。刘洋看了之后说:"这些脏数据你得在转换层处理掉——不能让脏数据流入新系统。"

"处理掉"三个字说起来容易。每一种脏数据都有不同的处理策略——空值怎么填充、异常值怎么过滤、格式不统一的怎么标准化。他花了三天时间写了几十个数据清洗规则,跑了测试,通过了。

然后他提交了代码。

代码review的时候,赵峰提了一个意见:"你的清洗规则是写死的。如果以后旧系统的数据格式变了,你得改代码。应该把这些规则配置化——做成可配置的规则引擎。"

林晚想了想,觉得赵峰说得对。但他也知道,做成规则引擎需要更多时间——项目的时间节点不允许他做大规模的重构。

"这次先用写死的方式,我记下了技术债。等这个版本上线之后再优化。"他说。

赵峰看了他一眼,点了点头:"行。但你得在文档里记录清楚哪些地方是技术债。"

这是林晚在数据方向学到的另一个道理:完美的代码不存在,但技术债必须被记录。

项目进行了一个半月,到了上线前的最后阶段。

林晚负责的数据转换层已经开发完毕,测试也通过了。刘洋分配了最后的联调任务——把转换层和上下游系统对接起来,做端到端的验证。

联调的过程比林晚想象的顺利。数据从旧系统流入转换层,经过清洗和格式转换,再写入新系统——整个链路跑通了。他做了几轮验证,确认数据的完整性和一致性。

"可以了。"他在项目群里发了一条消息。"转换层联调完成,数据验证通过。"

刘洋回复:"好。准备上线。"

上线安排在周三的凌晨——这是蓝鲸的标准操作,重要变更在低峰期执行。

林晚在凌晨两点到了公司。办公室里只有他和刘洋两个人。其他人都在家睡觉——如果有问题,远程支持就行。

他们开始执行上线流程。第一步:把旧系统的数据全量导入转换层。这一步花了大约四十分钟。第二步:运行转换规则,生成新格式的数据。这一步花了二十分钟。第三步:把新格式的数据写入新系统。这一步花了三十分钟。

三步都顺利完成了。林晚松了一口气。

然后他们开始做上线后的验证——对比新旧系统的数据,确认没有丢失和错误。

刘洋跑了一个对比脚本。几分钟后,结果出来了。

数据量对比:旧系统100万条,新系统100万条。数量一致。

但——数据质量对比发现了问题。

有大约三万条数据在新系统中的字段值和旧系统不一致。不是数据丢失,是数据在转换过程中被"修改"了。

林晚看到这个数字的时候,心沉了一下。

三万条。占总量的百分之三。看起来不多,但对客户来说——三万条数据错了,就是三万条客户的记录出了问题。

"问题出在哪里?"刘洋问。

林晚立刻开始排查。他对比了新旧系统中不一致的数据,发现了一个规律——所有出问题的数据都有一个共同特征:它们在旧系统中的某个字段值为空。

空值处理的逻辑出了问题。

他写的数据清洗规则里,对空值的处理方式是"填充默认值"——如果旧系统的某个字段为空,就用一个默认值填充。但他在写这个规则的时候,忽略了另一个规则——新系统对该字段的校验逻辑不允许默认值。

两个规则冲突了。空值被填充成了默认值,然后被新系统的校验逻辑拒绝,最终导致数据写入时产生了不一致。

这不是一个"大错误"——逻辑上是对的,但两个系统之间的规则没有完全对齐。

林晚坐在电脑前,看着屏幕上的数据,脑子里一片空白。

他花了两个小时排查问题,确认了根因。然后他和刘洋一起讨论了修复方案——调整空值处理逻辑,让转换层在遇到空值时直接跳过该字段的写入,而不是填充默认值。

修复方案花了二十分钟就写好了。但验证花了两个小时——因为需要重新跑一遍全量数据的转换和对比。

凌晨五点,修复后的数据验证通过。三万条不一致的数据全部修正了。

刘洋说:"好了,上线完成。你回去休息吧。"

林晚走出办公室的时候,天刚蒙蒙亮。望京的街道上空无一人,路灯还亮着,发出昏黄的光。空气很冷,呼出的气变成白雾。

他站在大楼门口,没有立刻走。

他想的不是"终于搞定了"。他想的是——这个问题本来可以避免。

如果他在写空值处理逻辑的时候,多看一下新系统的校验规则;如果他在联调的时候,多跑一轮边界值测试;如果他在做方案设计的时候,多问一句"新系统对这个字段有什么约束"——这个问题就不会发生。

但这些"如果"都没有发生。因为他不够深入。

他不是不懂数据转换的逻辑——他懂。但他对"数据质量"的理解还停留在表面。他以为"数据不丢失"就是数据质量的全部,但数据质量还包括"数据一致性""数据准确性""数据完整性"。他只关注了第一个,忽略了后两个。

这不是"粗心",是"不够深"。

他打开备忘录,写下了第十二条踩坑记录:

"数据质量不只是'不丢失',还包括'一致性''准确性''完整性'。写数据处理代码的时候,不能只看自己的逻辑对不对,还要看上下游的约束是什么。跨系统的事情,多想一步不够——要多想三步。"

写完之后他看着这条记录,忽然觉得——这十一个月他写的十二条踩坑记录,前五条是关于"沟通"的,中间四条是关于"规则"的,最后三条是关于"技术深度"的。

他开始理解张磊说的话了——"选一个方向,往深里扎。"不是因为"深"比"广"好,而是因为"深"能让你看到"广"看不到的东西。

上线完成后的第二天,问题被客户发现了。

不是数据转换的问题——那个已经被修复了。是另一个问题:新系统中的报表功能在处理某些数据时,查询速度比旧系统慢了十倍。

客户打电话来投诉了。

张磊在群里发了排查通知。刘洋和林晚开始排查。

问题的根因很快定位了——新系统的数据库索引设计有缺陷。旧系统的数据库用的是单机MySQL,索引策略是针对单机优化的;新系统用的是分布式数据库,索引策略需要针对分布式场景重新设计。但新系统的索引是在迁移之前就设计好的,不是林晚写的——林晚只负责数据转换层。

但客户不管是谁写的。客户只知道:你们迁移了数据,然后我的报表变慢了。

张磊被总监叫去谈了半小时。回来之后在群里说:"报表性能问题要在一周内解决。刘洋牵头,林晚配合。"

接下来的一周,林晚和刘洋每天加班到深夜。他们重新设计了数据库的索引策略——不是修修补补,是从头开始。林晚负责写索引创建和验证的脚本,刘洋负责和DBA协调数据库的变更。

这一周是林晚入职以来最累的一周。不是体力上的累——体力上的累睡一觉就能恢复。是心理上的累——他觉得自己"选错了方向"。

数据方向比他想象的复杂太多了。不只是写代码——还有数据质量、系统兼容性、性能优化、上下游协调。每一个环节都可能出问题,每一个问题都可能影响客户。

他开始怀疑自己的选择——"我是不是不应该转数据方向?如果我继续做原来的方向,是不是就不会遇到这些问题?"

周三的深夜,办公室里只有他一个人。其他人都回家了——刘洋说明天早上再来,让他也早点回去。但他没有走。

他坐在工位上,盯着屏幕上的代码。屏幕上是一段索引创建的SQL语句,光标在行末闪烁。

他盯着那行闪烁的光标看了很久。

然后他听到了脚步声。

他转过头——老周站在他工位旁边。

老周手里拿着一个保温杯,看了一眼他的屏幕,又看了一眼他的脸。

"还没走?"

"在改索引。"

老周嗯了一声,在旁边的空椅子上坐了下来。

沉默了一会儿。

"我刚转数据的时候,"老周忽然开口了,"三个月没搞明白一个字段类型。"

林晚看着他。

"那时候我们用的数据库还比较老,文档也不全。我查了一个字段的定义,查了三个月——不是查不出来,是每次觉得查出来了,过两天又发现不对。后来我才明白,不是文档的问题,是我的基础不够。我对数据库底层的存储原理理解不够深,所以看到的都是'表面'。"

林晚听着,没有说话。

"你现在遇到的问题,不算什么。"老周说。"报表慢、数据不一致、索引有问题——这些都是'技术'问题。技术问题有技术解法。真正难的是——你不知道问题出在哪里。你现在至少知道问题出在哪里。这就比很多人强了。"

老周说完,站起来,拿着保温杯走了。

走了两步又回头说了一句:"早点回去。明天还要上班。"

林晚看着老周的背影消失在走廊尽头。

他转回头,看着屏幕上的代码。那行光标还在闪烁——一下、一下、一下。

他忽然觉得,那行光标不是在"等待输入",是在"提醒他"——你还在这里,你还活着,你还在战斗。

他深吸一口气,开始继续写代码。

一周后,报表性能问题解决了。索引优化之后,查询速度从十秒降到了零点三秒——比旧系统还快。

客户的态度从投诉变成了认可。张磊在群里发了一条:"问题解决,客户确认。大家辛苦了。"

林晚看到这条消息的时候,坐在工位上,忽然有一种非常具体的感觉——不是"如释重负",是"活着"。

那种感觉很奇怪。不是开心,不是骄傲,是一种"我经历了最坏的情况,然后我扛过来了"的感觉。

他在备忘录里写下了第十三条踩坑记录:

"真正的成长不是'没有遇到问题',是'遇到了问题然后解决了它'。在最深的泥泞里行走,不是狼狈,是唯一真实的前进方式。"

两周后,数据迁移项目正式完成。客户的数据完整地迁移到了新系统,报表性能达标,数据质量通过验收。

在周会上,张磊做了项目总结。他说了几句话——项目背景、遇到的问题、解决方案、最终效果。然后他说了一句:

"数据迁移的问题,林晚花了很多精力修复,效果不错。"

只有这一句。

但林晚知道,这一句比十个A都重要。

这是张磊第一次在部门会上公开点名表扬他——不是"我们组",是"林晚"。

林晚坐在台下,看着张磊。张磊的表情和平时一样——平静、没什么情绪。但林晚知道,这一句"林晚花了很多精力修复"背后,是张磊对他的认可——不是"你做得好",而是"你值得被看到"。

散会之后,林晚回到工位。他打开备忘录,看了看第十三条记录,然后在后面加了一行:

"今天张磊在会上点名表扬了我。第一次。"

写完之后他看了一眼,觉得这句话很平淡。但他知道——在未来的某一天,当他回顾自己的职业生涯的时候,这句话会从备忘录里跳出来,变成一个重要的时间节点。

从这一天起,林晚不再是一个"什么都会一点"的人。他有了一个方向——数据。

虽然这个方向才刚刚开始,虽然他还远远不够"深",但他已经站在了这条路上。

站在路上比站在路口好。

http://www.gsyq.cn/news/1439545.html

相关文章:

  • 礼盒定制避坑指南!新手品牌常见问题总结
  • AI Agent 浏览器任务遇到安全验证时,如何设计暂停与人工复核流程
  • 如何利用Seraphine智能助手提升英雄联盟游戏体验:5个实战场景终极指南
  • 数据结构从零开始③:栈和队列——操作受限的线性表,一篇搞懂
  • mongodb数据库服务器内存过高分析处理
  • 企业资产管理软件选型全攻略:选对不选贵,落地是核心
  • 构建实时事件驱动AI预测系统:从流处理到模型服务的架构实践
  • 3分钟掌握Codeforces实时评分预测:Carrot浏览器扩展深度解析
  • Node.js技术周刊 2026年第20周
  • 2026 江苏扬州市(全区域服务)本地人必选彩钢瓦金属屋面防水防腐公司避坑指南 TOP5 推荐 - 本地便民网
  • MATLAB雷达CFAR检测实操包:CA-CFAR算法仿真+参数调优视频讲解
  • 二维材料薄片自动化处理:机器学习与光学显微镜结合方案
  • 孤独数据:人的一生,绝大部分时间都是独自一人
  • 深州GEO优化公司|企业知识库升级维护,深州AI搜索优化服务商选择指南 - 招财兔数字员工
  • 涿州GEO优化公司|企业知识库升级维护,涿州AI搜索优化服务商选择指南 - 招财兔数字员工
  • 乐清虹桥家长亲测:双语幼儿园的真实品质标尺 - 奔跑123
  • 打卡信奥刷题(3348)用C++实现信奥题 P9505 『MGOI』Simple Round I | D. 魔法环
  • 2026年最新德阳市金银首饰回收+金条金币+铂金K金 高价回收;实体老店回收黄金 多年口碑 交易放心;TOP5实力权威排行榜推荐+联系方式 - 亦辰小黄鸭
  • 2026年5月广州除甲醛公司推荐:靠谱品牌TOP榜单深度测评解析 - 品牌推荐
  • 如何快速突破百度网盘限速:3步实现免费高速下载的完整方案
  • 别再用裸机死循环了!用STM32CubeMX+FreeRTOS实现多任务切换,保姆级配置流程(Keil仿真)
  • 避坑指南:OV9281调试中HTS/VTS与曝光时间的那些‘坑’(附计算工具与排查思路)
  • 从Arduino到3D打印机:手把手教你用TB6600HG驱动42步进电机(含电流调节与散热指南)
  • AI招聘全流程应用指南:从人才寻源到智能决策的实践与风险应对
  • 从GUI Guide迁移到APP Designer:老用户避坑指南与一个完整数据绘图App实战
  • 神经网络似然估计加速引力波数据分析
  • ESP32-S3内存爆了?手把手教你用TVM和ESP-DL部署YOLOX-Nano(含PSRAM优化避坑指南)
  • 从行为主义到认知理解:AI为何难以跨越“理解”鸿沟
  • 别再裸机点灯了!用STM32CubeMX快速给你的项目加上FreeRTOS实时系统
  • 告别Burpsuite?试试这款国产一体化渗透测试工具Yakit的安装与初体验