标签 职场经验 下的文章

很多人以为在大厂工作,就是不停地写代码、解决技术难题。

但事实是:真正成功的工程师并不是那些代码写得最好的人,而是那些解决了代码以外事情的人。

本篇和你分享 21 条职场教训。

这些教训,有的能让你少走几个月的弯路,有的则需要数年才能完全领悟。

它们都与具体的技术无关,因为技术变化太快,根本无关紧要。

但这些教训,项目换了一个又一个,团队换了一批又一批,始终在重复上演。

希望能帮助到你:

1. 最优秀的工程师都痴迷于解决用户问题

很多人容易爱上一项新技术,然后到处找地方用它。

我干过,你肯定也干过。

但真正创造最大价值的工程师是反过来的:

他们专注于深入理解用户问题,并让解决方案从这种理解中自然而然地涌现。

以用户为中心意味着花时间处理支持工单,与用户沟通,观察用户遇到的困难,不断追问“为什么”,直到找到问题的症结所在。

真正理解问题的工程师往往会发现,优雅的解决方案比任何人预想的都要简单。

工程师如果一开始就想着如何解决问题,往往会为了寻找理由而人为地增加复杂性。

2. 正确很容易,共同达成正确才是真正的挑战

即使你在技术上胜券在握,最终也可能输掉项目。

我曾亲眼目睹一些才华横溢的工程师,自诩为房间里最聪明的人,但总是默默地积攒怨气。最终表现为“莫名其妙的执行问题”和“莫名其妙的阻力”。

关键不在于证明自己正确,而在于参与讨论以达成对问题的共识。

为他人创造发言空间,并对自己确信的观点保持怀疑。

3. 行动优先,先做,再做对,再做好

追求完美会让人停滞不前。

我曾经见过工程师花几周讨论一个从没建过的东西的理想架构。

但完美的方案很少从思考中产生,它都是从与现实的碰撞中产生。

先做出来,再做对,再做得更好。

把丑陋的原型放到用户面前,写出乱糟糟的技术文档初稿,发布那个让你有点尴尬的 MVP。

从真实反馈中学到的内容,哪怕只有一周,也远比一个月的理论辩论多得多。

4. 代码清晰远比炫技重要

我知道你想要写出酷炫的代码,那可以证明自己很牛逼。

但项目往往不止你一个人,以后还有其他同事要维护。

优化时要考虑他们的理解能力,而不是你的代码是否优美。

5. 谨慎选择新技术

新技术就像贷款,你要用 bug、招聘困难和认知负担来还。

关键不在于“永远不要创新”,而在于“只在因创新可以带来独特报酬的领域进行创新”。其他的一切还是应该回归平庸。

6. 你的代码不会替你说话,但人会

刚开始工作时,我相信是金子总会发光。

但我错了。

代码静静地躺在仓库里。你的领导在会议上提到你,或者没提。同事推荐你参与项目,或者推荐了别人。

在大公司,决策是在你没被邀请的会议上做出的,用的是你没写的总结,由只有五分钟时间和十二件事要处理的人做出的。

如果你不在场时没人能清楚说出你的价值,那你的价值就等于可有可无。

这不是让你鼓吹自己,而是告诉你:你需要让你的价值被所有人看到。

7. 最好的代码是你根本不用写的代码

工程师文化崇拜创造。

没有人会因为删除代码而获得晋升,即使删除代码往往比添加代码更能改进系统。

因为你不写的每一行代码,都意味着你永远不必调试、维护或解释。

在动工之前,先仔细思考一下:“如果我们不做这件事会发生什么?” 有时答案是“没什么坏处”,那就是你的解决方案。

问题不是工程师不会写代码,而是我们太会写了,以至于忘了问:该不该写?

8. 大规模时,连你的 bug 都有用户

用户多的时候,连你的 bug 都会有用户,这产生了一个职业级洞察:

你不能把兼容性工作当“维护”,把新功能当“真正的工作”。兼容性就是产品。

所以把你的“废弃”做成“迁移”,带上时间、工具和同理心。

9. 慢实际上是因为不协调

项目进展缓慢时,人们的第一反应往往是责怪执行:员工不够努力、技术不成熟、工程师人手不足。

但通常来说,这些都不是真正的问题所在。

在大公司,团队是并发执行的基本单位,但随着团队数量的增加,协调成本呈几何级增长。

大多数效率低下实际上源于目标不一致——人们在做错误的事情,或者以不兼容的方式做正确的事情。

所以高级工程师花更多时间澄清方向、接口和优先级,而不是“写代码更快”,那些才是真正的瓶颈所在。

10. 专注你能控制的,忽略你无法控制的

在大公司,无数的变数都超出你的掌控——组织架构调整、管理决策、市场变化、产品转型等等。

过度关注这些因素只会让你焦虑不安,却又无能为力。

所以高效的工程师,会锁定自己的影响圈。你控制不了是否会重组,但你能控制工作质量、如何应对、学到什么。

这并非被动接受,而是策略性关注。

把精力浪费在无法改变的事情上,就等于浪费了原本花在可以改变的事情上的精力。

11. 抽象并不能消除复杂性

每一次抽象都是一种赌博,赌你不需要理解下面是什么。

有时候你会赢,但总会有漏洞,一旦出现漏洞,你就需要清晰地知道你站在什么上面。

所以高级工程师即使技术栈越来越高,也要持续学习“更底层”的东西。

12. 写作让表达更清晰,以教带学是最快的学习方式

写作能带来更清晰的表达。

当我向别人解释一个概念——在文档里、演讲中、代码评审评论里、甚至和 AI 聊天,我都会发现自己理解上的不足。

所以如果你觉得自己懂了什么,试着简单地解释它。卡住的地方,就是你理解肤浅的地方。

13. 注重粘合性工作

粘合性工作——例如写文档、帮新人上手、跨团队协调、流程优化——至关重要。

但如果你总是无意识地做这些,反而可能会拖慢技术成长,把自己累垮。

陷阱在于把它当“乐于助人”的活动,而不是当作有边界的、刻意的、可见的影响力。

尝试给它设时限,轮换做,把它变成产出物:文档、模板、自动化。

让它作为“影响力”被看见,而不是作为“性格特点”。

14. 如果你赢得每一场辩论,你很可能是在积累无声的阻力

当人们不再和你争,不是因为你说服了他们,而是因为他们放弃了。

但他们会在执行中表达分歧,而不是在会议上。

所以真正的共识需要更长时间。你得真正理解别人的观点,吸收反馈,有时候需要你当众改变主意。

短期“我是对的”的快感,远不如长期和心甘情愿的合作者一起建设的现实来得珍贵。

15. 当衡量标准变成目标时,它就停止了衡量

你暴露给管理层的每个指标,最终都会被博弈。

不是因为恶意,而是因为人会优化被度量的东西。

追如果你追踪代码行数,你会得到更多的代码行数。如果你追踪开发速度,你会得到过高的估算值。

高手的做法是:对每个指标请求都提供一对指标。一个用于衡量速度,一个用于衡量质量或风险。然后,坚持解读趋势,而不是盲目追求阈值。

目标是洞察,而非监控。

16. 承认自己不知道的事情比假装自己知道更能带来安全感

资深工程师说“我不知道”并不是示弱——他们是在鼓励大家坦诚面对。

当领导者承认自己的不确定性时,就等于在暗示其他人也可以这样做。如果不这样的话,就会形成一种人人假装理解、问题被掩盖直到爆发的文化。

我见过团队里最资深的人从不承认自己不明白,我也见过由此造成的后果。问题不被问出来,假设不被挑战,初级工程师保持沉默因为他们以为别人都懂。

17. 你的人脉关系比你拥有的任何一份工作都更长久

职业生涯早期,我专注于工作本身,忽视了人脉经营。回头看,这是个错误。

那些注重人脉关系的同事,在接下来的几十年里都受益匪浅。他们最先了解机会,更快地建立人脉,获得职位推荐,和多年来建立信任的人一起创业。

你的工作不会永远持续下去,但你的人脉网络却会一直存在。

以好奇心和慷慨的态度去拓展人脉,而不是抱着功利主义的心态。

当需要向前迈进的时候,往往是人际关系打开了这扇门。

18. 大多数绩效的提升来自于减少工作量

当系统变慢时,人们的第一反应往往是加东西:加缓存、并行处理、使用更智能的算法。

有时候这样做是对的。

但我发现,通过询问“我们计算了哪些不必要的东西?”往往能带来更多性能提升。

删除不必要的工作几乎总是比更快地完成必要的工作更有成效。最快的代码是永远不会运行的代码。

所以在进行优化之前,先问问自己这项工作是否真的应该存在。

19. 流程存在的目的是为了减少不确定性,而不是为了留下书面记录

最好的流程是让协调更容易、让失败成本更低。

最差的流程是官僚主义——它的存在不是为了帮忙,而是为了出事时推卸责任。

如果你无法解释一个个流程如何降低风险或提高清晰度,那么它很可能只是增加了额外开销。

如果人们花在记录工作上的时间比做工作的时间还多,那就说明出了大问题。

20. 最终,时间会比金钱更有价值

刚开始工作的时候,你用时间换钱——这没问题。

但到了某个阶段,情况就完全不同了。你会开始意识到,时间才是不可再生资源。

我见过一些高级工程师为了晋升而累垮自己,只为了多拿几个百分点的薪酬。有些人确实升职了,但事后大多数人都在反思,自己放弃的一切是否值得。

答案不是“别努力工作”,而是“知道你在交易什么,并深思熟虑地进行交易”。

21. 没有捷径,但有复利

专业技能源于刻意练习——略微超越现有水平,然后不断反思,不断重复。年复一年,没有捷径可走。

但令人欣慰的是:学习的进步在于创造新的选择,而不仅仅是积累新的知识。

写作——不是为了吸引眼球,而是为了清晰表达。构建可复用的基础模型。将过往的经验总结成行动指南。

所以如果工程师把职业生涯看作是复利投资,而不是彩票,那么他最终往往会取得更大的成就。

22. 最后

21 条听起来很多,但它们可以归结为几个核心点:保持好奇,保持谦逊,记住工作始终是关于人的——你的用户、你的队友。

工程师的职业生涯足够长,可以犯很多错误。我最钦佩的工程师,不是那些什么都做对的人——而是那些从错误中学习、分享发现、并坚持不懈的人。

本篇整理自《21 Lessons From 14 Years at Google》,希望能帮助到你。

我是冴羽,10 年笔耕不辍,专注前端领域,更新了 10+ 系列、300+ 篇原创技术文章,翻译过 Svelte、Solid.js、TypeScript 文档,著有小册《Next.js 开发指南》、《Svelte 开发指南》、《Astro 实战指南》。

欢迎围观我的“网页版朋友圈”,关注我的公众号:冴羽(或搜索 yayujs),每天分享前端知识、AI 干货。

最近看到一个职场社区帖子,吐槽了一个关于面试和 offer 的相关话题,参与讨论的同学非常多。

问题描述差不多是这样:

“我发现凡是给 offer 的公司,面试时基本不问技术细节,那些问得又多又细的公司,后面基本就没下文了……”

那关于这个问题,不知道大家有没有类似的体验或者经历?

你信心满满地去一家公司,面试官是个看起来技术大拿模样的人,一上来就给你整了个高并发场景下的分布式锁实现,问你 JVM 调优的十八般武艺,甚至还要跟你探讨一下 Linux 内核的源码细节。

你虽然答得满头大汗,但自我感觉还不错,仿佛自己把毕生所学都展示出来了。

但是最后结果呢?客气地送你一句等通知,然后便石沉大海。或者回去等了个三五天、一个星期,最后等来的是一句冰冷的不合适。

而反观另外一些面试经历,你可能就是抱着去溜达一圈的心态去转转的,面试让你感觉像在聊天,聊聊项目,聊聊过往经历,聊聊技术。

你心里还在犯嘀咕,没了?就这?

结果第二天,HR 就打电话过来找你谈薪,然后询问入职时间,速度快得让你怀疑人生。

看到这里,你是不是也挺疑惑,这到底是为什么?

难道某些公司就爱玩反向筛选?还是说问技术细节本身就是一种送客的委婉方式?这背后到底有没有什么可以遵循的逻辑原理可以分析分析。

所以今天咱们也用一篇文章的篇幅来聊一聊这个话题,也欢迎大家分享交流自己的观点和看法。

对于那些问得又细又深,最后却没给 offer 的,往往有这么几种情况。

第一种,也是最现实、最常见的大环境筛选

什么意思呢?

现在的求职大环境大家也知道,岗位有限,候选人太多。HR 和面试官手里攥着一堆 985、211 甚至大厂背景的简历。

简单点说,他们不缺候选人,所以他们有资格挑。

对于中间段位的候选人,也就是我们大多数普通人,他们不需要看你有多优秀,只需要找出你简历里的一个瑕疵,一个技术细节没答上来,或许就有可能会把你刷掉。毕竟对于他们来说,能选择的太多。

其次,还有一个比较现实的问题是,对于那些问得细的公司,不代表真的招人

当一个团队实际并不缺人,或者只是抱着宁缺毋滥的心态在招人时,他们就有资本去挑刺。

这时候面试官常常带着一种找漏洞的心态。他们的问题像一张细密的筛网,目的似乎不是看你有多合适,而是为了证明你哪里不合适。

说实话,这种还是挺恶心的。

第三种,也是最最扎心的一种情况:你只是他们的「免费咨询顾问」

更直白一点说就是在套方案。

现在的行情下,很多公司业务停滞,不怎么招人,但又面临一些棘手的技术难题。

他们打着招聘的旗号,实际上是把市场上优秀的工程师请过来,所谓的面试其实也就是一场免费的头脑风暴。他们会故意引导你去讲你上一家公司的架构设计、服务拆分方案、甚至是具体的排错思路。

整个面试过程你自认为胸有成竹,方案和思路也讲得滔滔不绝,殊不知,人家还另有企图呢。

有一说一,这种是最最恶心的一种情况。

而对于那些问得不多、但 offer 倒是给的挺痛快的公司,通常又是怎么回事呢?

首先,这往往意味着这个公司是「真·缺人」呐。

这种公司通常处于一种“生死存亡”或者业务极速扩张的阶段。老板或者团队负责人可能已经被缺人折磨得寝食难安了。

他们的核心诉求非常明确:找个能立刻干活、能立刻上手的人。

这时候,他们不会跟你去扯什么虚头巴脑的设计模式,更不会去考你那些冷门的技术知识。

他们关心的是:你能不能明天就来上班,你能不能把这个烂摊子代码接过去维护,你能不能抗住连续一个月的强度。

在这种极度的需求面前,所谓的技术细节反倒成了次要的。

但是说实话,这种 offer 虽然来得容易,但兄弟记住,这往往也是把双刃剑

因为“真·缺人”的背后,往往意味着技术债巨多、管理混乱,或者是一个谁都不愿意接的坑。

拿到这种 offer,你既可能是一飞冲天的救世主,也有可能是一头扎进泥潭的接盘侠。

当然,还有一种情况,虽然不那么好听,但也必须提一嘴。

那就是,有些公司其实是在广撒网。他们可能并没有确切的 HC,或者他们需要的只是一个廉价的劳动力。

对于这种公司,问太多技术细节反而会吓跑你,他们更希望用更轻松的面试体验和更高薪的承诺来把你招进去,至于技术匹配度嘛,额……那是入职以后的事情了。

文章的最后我想说的是,面试是一个双向选择的过程,也是一个互相试探的过程。

当你遇到那个问得特别细的面试官时,别急着心里骂娘,也别急着觉得自己没戏了。你可以试着把这场技术拷问变成一场技术交流。

如果对方是在套方案,你可以适当保留,点到为止;如果对方是真的在考察技术深度,那正好展示你的技术功底。

而当你遇到那个聊两句就给 offer 的公司时,也别急着狂喜。

可以多问问团队现状,问问业务体量,问问技术栈,这时候,一定要记住,你该反问的要反问,该考察的要考察

因为虽说大环境寒冷,但是我觉得找到一个不坑的公司有时候比拿到一个所谓的 offer 更加重要,大家觉得呢?

好了,今天就先聊这么多吧,希望能对大家有所启发,我们下篇见。

注:本文在GitHub开源仓库「编程之路」 https://github.com/rd2coding/Road2Coding 中已经收录,里面有我整理的6大编程方向(岗位)的自学路线+知识点大梳理、面试考点、我的简历、几本硬核pdf笔记,以及程序员生活和感悟,欢迎star。