加班内卷的IT行业,我选择躺平 —— 一个Spark老油条的清醒自救指南

栈顶的鱼
2025-12-16 10:33
阅读 703

我是谁?北京某中厂的大数据开发,Vim党,通勤地铁上刷LeetCode,下班路上听《硅谷101》,干了三年Spark,头发没掉光算我命硬。每天和shuffle、OOM、YARN调度斗智斗勇,偶尔还要帮前端同事 debug 他们传过来的 null 值——别问,问就是“后端接口有问题”。

上周五晚上9点,我在公司改第8版的DWD层清洗逻辑,窗外国贸的霓虹灯亮得刺眼。隔壁工位的小哥还在调一个离线跑批任务,产品经理在钉钉群里@全体成员:“明天上线前必须搞定!”那一刻,我盯着终端里不断滚动的GC日志,突然问自己:我到底在卷什么?


内卷的尽头是自我消耗

去年双11,我们团队搞大促实时看板。凌晨三点,集群炸了,因为某个UDF里用了Javascript引擎做动态规则解析(别笑,真有这种骚操作)。运维甩锅给数据倾斜,测试说数据对不上,产品说“用户等不及”。我一边查YARN日志,一边啃冷掉的煎饼果子,脑子里全是面试题:“Spark shuffle 过程中如何避免数据倾斜?”——可现实哪有标准答案?

那段时间,我天天加班到十点,回家倒头就睡,周末补觉。体检报告出来:轻度脂肪肝、颈椎曲度变直。女朋友说:“你最近说话都带Kafka offset味儿了。”

我知道,这不是个例。身边太多人陷入“加班=努力=升职”的幻觉。但真相是:老板要的是结果,不是你的工时打卡记录。你熬到深夜修bug,不如白天花半小时把代码写得更健壮;你反复返工,不如一开始就跟产品确认清楚需求边界。


躺平 ≠ 摆烂,而是高效输出

很多人误解“躺平”是放弃奋斗。其实不然。我的躺平哲学是:用最小必要努力,达成最大确定性结果。听起来像职场厚黑学?不,这是工程师思维。

举个栗子。以前我写Spark作业,总想着“一步到位”,结果逻辑复杂、调试困难、上线即崩。现在我拆成三步:

  1. 先跑通最小可行版本(MVP)
  2. 加监控+告警(比如用Prometheus抓stage duration)
  3. 再逐步优化(比如用broadcast join替代shuffle)

上周有个需求:清洗用户行为日志,过滤无效点击。旧方案是用Scala写一堆嵌套filter,跑一次2小时。我改成用SQL + Delta Lake的Z-Ordering,配合合理的partition策略,时间压到25分钟。省下的1小时45分钟,我准时下班去健身房了

关键是什么?不追求炫技,只解决真实问题。你说我躺平?可我的SLA达标率全组第一。


技术人的“反内卷”武器库

1. 面试题不是背出来的,是“用”出来的

很多新人疯狂刷面经,背“Spark宽窄依赖区别”“RDD vs DataFrame”。但真正能让你在职场立住脚的,是把知识转化为生产力

比如,你知道coalescerepartition的区别吗?背定义没用。但在实际场景中:

  • 数据量小 → 用coalesce减少分区,避免小文件
  • 数据严重倾斜 → 先repartition打散,再join

理解原理,才能灵活应对线上事故。去年我就靠这招,在凌晨两点快速定位了一个因分区数不合理导致的OOM问题。

2. 别让“伪紧急”绑架你的时间

产品经理总说:“这个需求很急!”但真的急吗?我学会了问三个问题:

  • 用户今天不用会死吗?
  • 能否先上线核心功能,边缘case下周迭代?
  • 如果延期,最坏后果是什么?

90%的情况,答案都是“其实没那么急”。学会管理预期,比盲目加班更重要

3. 工具链自动化,解放双手

作为Vim党,我坚信:重复劳动是程序员的敌人

我把常用Spark调优参数写成模板:

spark-submit \
  --conf spark.sql.adaptive.enabled=true \
  --conf spark.sql.adaptive.coalescePartitions.enabled=true \
  --conf spark.serializer=org.apache.spark.serializer.KryoSerializer \
  ...

还用Shell脚本自动检查HDFS小文件、YARN资源使用率。每天省下至少1小时人工巡检时间。这些时间,我用来读论文、学新框架,或者——真的躺平


关于JavaScript的冷思考

你可能纳闷:一个大数据开发,提JavaScript干嘛?其实,技术栈的边界正在模糊

上个月,我们BI团队要用Apache Superset做可视化,里面嵌入了自定义JS组件。我顺手帮忙调了个图表交互逻辑,结果发现:懂点前端,反而能更好理解数据消费场景

更重要的是,JS社区那种“快速迭代、小步快跑”的文化,值得后端借鉴。他们不会为了“完美架构”拖半年,而是先上线再优化。这种务实精神,正是对抗内卷的良药


躺平之后,我反而升职了

今年Q2绩效面谈,领导说我:“交付稳定,故障率低,还能带新人。”——而那些天天加班到深夜的同事,有的因为频繁出bug被问责,有的 burnout 请假三个月。

公司不傻。它要的是可持续的战斗力,不是燃烧殆尽的火柴

现在的我:

  • 早上9:30到公司,梳理当天任务优先级
  • 中午雷打不动午休20分钟(用番茄钟)
  • 晚上7点前尽量走人,回家学点新东西(最近在啃Flink源码)
  • 周末绝不碰工作消息(除了线上P0事故,但三年来只遇到两次)

通勤地铁上,我不再焦虑地刷招聘APP,而是听播客、看电子书。因为我清楚:我的价值,不取决于加班时长,而在于解决问题的能力


给同行的几句真心话

误区 真相
加班=努力 高效=产出
多学框架=竞争力 深挖原理=护城河
听老板的话=安全 管理预期=专业

如果你也在被deadline追着跑,被需求牵着走,不妨试试我的“躺平三原则”:

  1. 守住底线:不接受无意义加班,不背不属于自己的锅
  2. 聚焦价值:只做对业务有直接影响的事
  3. 持续精进:每天留30分钟学习底层原理(比如Spark DAGScheduler怎么切分stage)

真正的职业安全感,来自不可替代性,而不是工位上的时长


最后,送大家一句我在Spark源码里看到的话(其实是自己编的,但很有道理):

“A resilient system isn’t built by burning out its operators.”

北京的秋天来了,今晚我打算早点回家,煮碗面,打开Vim写个自动化脚本。毕竟,代码可以重跑,人生不能重来

共勉。

评论 0

最热最新
暂无评论
匿名用户Lv.1
0
影响力
0
文章
0
粉丝