引言
在来 X Engineer 之前,我已经有过 2 段总共 6 个月的实习经历了。
但我 X Engineer 的这 3 周让我觉得我在这总共 2 个月中的收获,不会比之前 6 个月加起来少。
让我们分开来说。
1. 指导体系的演进:从“填鸭执行”到“Owner”
回顾前两段实习,指导体系的缺失或偏颇是我选择离开的核心原因:
- 第一份实习(填鸭式与工具人定位):BOSS 坐在右边,对面就是 CTO,有什么问题直接问,沟通看似极其便利高效。但很快我发现,这种教导完全是填鸭式的——我可以清晰知道每一个 UI 细节该怎么布局,但没人告诉我为什么这样设计,我提出的不同方案也被直接否定。直到有一天对方表达出“招你是来干活的,不是让你提质疑和了解原理的”,我瞬间意识到这里缺乏成长土壤,是时候离开了。
- 第二份实习(友善解答但缺乏批判性引导):远程工作,跟 CTO 在技术审美和产品理念上非常合得来,团队氛围也极其友善。大家非常乐意向我解释整体产线和设计的缘由。但这种模式依旧存在局限:大部分时候大家只是“讲答案”,却很少引导我进一步思考——“这么做有什么潜在坏处?”“我们为什么不采用另一种方案?”它解决了我“知其然”的问题,却没能推着我去探索 Trade-off(权衡)的本质。
而 X Engineer 正好补齐了上述两者的空白。
在这里,导师的指导方式绝非填鸭式。我们不会收到一条“必须去做什么”的死命令,而是被赋予了充分的决策权:自己去分析用户需求、自己去拆解功能、自己去思考解决方案。
坦白讲,以我们现有的经验,有些观点在导师这种高手眼中显得非常幼稚可爱(换作是我这种缺乏耐心的人来当导师,可能都忍不住想嘲讽几句。甚至让我们自己过段时间回头看自己之前的决定,也会这么觉得)。但在 X Engineer,我们即使走弯路、回炉重做,也会在引导下清晰地明白为什么要重做。从最原始的需求拆解,到当下功能开发,再到未来的整体部署,全链路都由我们自己独立负责并承担结果。这种真正的 Owner 意识,带来了脱胎换骨的成长。
2. 团队协作:从“六边形战士”单兵作战到带领团队攻坚
在这次实习中,我顺其自然地承担起了队长的角色。学生时代的我对“队长”这个头衔其实并不热衷,总觉得它只意味着吃力不讨好,得到的只有老师或学校给的小红花。但在这里,成为队长更像是一种基于技术视野的自然延伸。
得益于此前积累的端到端实战经验——从前端的交互打磨,到后端的 API 逻辑,再到服务的落地部署,这种全栈经历让我不再局限于“写好某一块代码”,而是能跳出局部,清晰地看透整套链路的运转逻辑。在一个团队中,这种全局观恰好是进行技术选型和架构决策的核心基础。让我在小组内部讨论的时候能提供更综合的视角。
同时,我对 UX(User Experience)和真实用户需求有着极其敏锐的嗅觉。在拆解同类竞品时,我总能快速定位它们的交互痛点,清晰总结出哪些设计是反直觉的,以及哪些核心逻辑是可以被我们借鉴并优化的。
我和我的队友们都相信我的这种技术广度与产品敏锐度的结合,能够帮助我们在设计中少走不少弯路。
然而,真正站在一个具备全局视野的队长位置上,我才发现过程远比做个“技术极客”要累得多。这种“累”主要体现在三个层面:
- 高频的上下文切换:作为队长,我无法再像普通队员那样进入单点深度的“Coding 沉浸状态”。我需要在写代码、设计架构、排查队友卡点、梳理需求优先级、对接导师反馈之间快速切换,极其消耗脑力。
- 沟通与引导的成本:知道怎么做是一回事,教别人怎么做又是另一回事。当我的技术认知和 UX 感觉比队友更快一步时,最忌讳的是直接抢过键盘代劳。我必须克制住冲动,把自己的架构思考转化为队友能理解的语言,引导他们自己找到答案。这个沟通与等待的过程,远比自己直接写代码累得多。
- 技术兜底与决策压力:队长是最后一道防线。当团队出现设计偏差、技术选型分歧或进度延误时,所有风险最终都会汇聚到我这里。每一个决定都意味着放弃其他可能性,这种“承担不确定性”的心理负荷是前所未有的。
尽管过程吃力,但当队长的这段经历,却让我完成了从“高级码农”到“架构师 / Leader”的蜕变:
- 从“局部最优”走向“系统全局观”:过去做单兵开发,我只关注自己模块的代码质量。现在作为队长,我学会了站在全局看问题——如何合理分配技术债?如何平衡功能交付速度与代码可扩展性?如何为整个系统的稳定性和 UX 兜底?
- 培养了真正的技术领导力:领导力不是靠身份压人,而是靠技术深度的信任感、清晰的决策逻辑以及为团队排忧解难的能力。学会如何激发队友的潜能、如何建立团队内部的信任流转,这都是非常宝贵的经验。
- 深化了权衡与抗压能力:在有限的时间和资源下,做正确而非完美的决定。当面对团队意见分歧或进度压力时,能保持冷静、迅速止损并重新制定方案,这种逆商与决策力是在个人开发中绝不可能练就的。
3. 技术观的重塑:从“架构炫技”回到“用户价值驱动”
在来到七牛之前,我参加过很多公司的面试。但在面试过程中,绝大多数面试官给我的反馈都让我感到困惑与挫败。
每次聊到我做过的项目,面试官往往无法理解真实的用户需求,而是直接下一句结论:“你这个项目没什么技术深度。”随后便开始习惯性地拷打高并发、大流量、底层原理等八股文。
这让我一度陷入怀疑:难道一个真正解决问题的好项目,还比不上那些虚构的高并发 Demo 吗?
例如我之前做过的 AHF-QDS-EOE 刷题系统,出发点极其纯粹——解决我们学校期末在学习通上无法反复练习错题的强痛点。我自己就是第一用户,从需求分析、功能设计到最终落地,全方位满足了真实场景下的所有练题需求。它真实、好用、解决了问题,但在很多面试官眼中,这却因为“缺乏复杂架构”而被轻视。
为了应对这种应试环境,我不知不觉落入了一种技术焦虑:仿佛不做云原生、不上 K8s、不搞数据库主从分离和分库分表、不拆解十几个微服务并堆叠中间件,就不算是一个有含金量的项目。
在面试七牛前做 MPP 多平台发布系统 时,我就深受这种焦虑的影响:

为了证明自己的技术实力,我设计了一套非常复杂的架构,拆分了大量的服务,引入了多种中间件。虽然它看起来足够“庞大”、足够有“技术深度”,但也大幅增加了系统的维护成本与复杂度。这种技术焦虑甚至延续到了当前做 2D 游戏素材生成 项目的初始阶段。
刚开始选项目时,我都没有把这个项目作为第一志愿,理由就是我认为:“它太简单了,技术上看起来毫无挑战性。”而在真正进入开发后,我也习惯性地想要引入消息队列、拆分多个微服务,试图把它打造得像上图的 MPP 系统一样“庞大”。
直到导师点醒了我,我才彻底意识到自己在这个技术误区里陷得有多深。
导师让我重新思考一个根本问题:技术的终极目标究竟是什么?
我们做产品,从来不是为了在简历上炫耀云原生、分库分表或分布式架构。架构是为业务服务的,脱离了实际用户规模与产品阶段去谈高并发和微服务,本质上是一种脱离现实的过度设计。
结语
过去的我已经具备较强的独立开发能力,也习惯主动分析需求、寻找方案并解决问题。但这种能力更多集中在“我能不能把事情做好”上:能不能写出完整的前后端功能,能不能独立完成部署,能不能设计出一套看起来足够专业、足够有技术含量的架构。
而现在,我开始思考更难的问题:这件事是否真的值得做?当前阶段应该做到什么程度?技术复杂度是否与实际收益匹配?团队成员能否理解并共同维护这套方案?一个决定对产品体验、开发效率和未来演进分别意味着什么?
担任队长以后,我也不再只是依靠个人能力解决问题。相比自己把所有事情做完,更重要的是让团队形成统一认知,让每个人都能够在合适的位置承担责任,并在出现偏差时及时调整方向。我必须在需求、体验、架构、进度和成员能力之间不断权衡,并为最终结果兜底。这让我逐渐从一个擅长单兵作战的全栈开发者,转向一个真正具备系统视角和技术领导力的人。
与此同时,我对“技术深度”的理解也发生了根本变化。过去,我曾试图通过微服务、中间件、云原生和复杂架构证明自己的能力;现在我逐渐明白,真正的技术深度并不是把简单的问题复杂化,而是能够准确识别问题的本质,用与业务阶段相匹配的方案解决它,并清楚知道自己为什么这样选择,又放弃了什么。
技术不是用来证明工程师比别人更聪明的,而是用来创造真实价值的。架构也不是越复杂越高级,而是越能支撑用户需求、团队协作和产品演进,才越合理。