初级开发者对成为资深开发者的错误认识
关于“资深开发者”究竟意味着什么的误解非常普遍。许多新人期待更多自由、前沿技术和轻松氛围,结果却遇到遗留系统、会议和更大的责任。评论者认为,资深程度与其说取决于年限或头衔,不如说取决于自主性、责任范围、在组织约束下周旋、指导他人以及做出合理权衡的能力。他们也指出了晋升、跳槽、过劳以及角色标准不清等结构性问题,并强调不同公司和环境之间的体验差异极大。
“初级”与“资深”的本质
- 许多人认为“初级 vs 资深”是一个模糊的、因公司而异的标签,没有行业统一标准;同一个人在一家公司可能是“资深”,在另一家公司却仍是初级。
- 另一种表述是:这是一种技能水平的梯度(类似学徒/熟练工/大师),其中有一些重要门槛,例如“在最少指导下能创造净正价值”。
- 有些人主要把“资深”看作“技术领导者”——负责规划、协调、指导他人,而不只是写代码。也有人指出,在这之上还有一层(staff/principal),文章里描述的职责其实更接近那一层。
技术选型与遗留工作
- 对于谁更爱追逐新潮技术,分歧很大:有人说资深开发者会固守熟悉的技术栈;也有人说真正的资深开发者是务实的,把所有技术都看作取舍,而初级开发者要么用自己最喜欢的技术栈重写一切,要么不加批判地使用自己熟悉的框架。
- 还有几位评论者很享受维护遗留系统,认为这才是真正的工程和长期验证发生的地方。新项目被形容为“未来的遗留系统”。
会议、加班与值班
- 对文章里“周六把它做完”这种说法,意见分裂。
- 有人说自己从不在周末工作,并认为无偿加班是剥削,也会树立恶劣先例。
- 也有人接受少数非工作时间的付出(尤其是值班或真正的紧急情况)作为资深职责的一部分,但认为长期加班说明规划失败。
- “你必须超出要求(通常靠额外工时)才能晋升”与“你完全可以在 40 小时内超出预期;拼命文化有害”之间存在尖锐冲突。
- 会议被视为对齐方向所必需,尽管通常很无聊;一些资深开发者甚至喜欢会议,因为那是影响方向的场合。
领导力、自主性与社交能力
- 资深工作被描述为一种社会技术性工作:协调不同意见、寻求共识、指导新人,并在某些时候替团队挡住组织内部的失能。
- 有些资深开发者怀念别人告诉自己该做什么;另一些则珍视自主性,讨厌“只会跟着工单走”的心态。
- 自我驱动并不总是与资深程度相关;有些“资深”仍然需要手把手带。
晋升、头衔与跳槽
- 许多人怀疑第一家公司不会自动公平地给出晋升;换公司常被视为最快获得加薪和头衔的路径,尽管一些招聘经理并不喜欢频繁跳槽的人。
- 头衔是廉价的留人手段;“资深”可以指 2 年到 10 多年不等。
- 负责不起眼的遗留系统并不能可靠地保障工作安全;裁员时往往仍会优先裁掉薪酬更高的资深员工。
初级开发者的期待与现实
- 评论者说,初级开发者往往有不切实际的期待(总是新项目、最火的技术、几乎没有截止日期、没有枯燥工作),这些期待受到网络叙事影响。
- 现实是:遗留代码、截止日期、一些无聊的会议和不确定性都很正常;不适并不自动意味着“这是一家糟糕的公司”,不过确实也存在真正剥削性的环境。
- 成为资深开发者与自信、更广阔的视野,以及能够选择并论证更好方案有关,而不是与“知道一切”有关。