内容提要
在软件工程师的职业生涯中,高级数学并非必需,基础知识胜过语言和框架,人们总是喜欢估算。软件工程师应专注于理解核心原理和基本概念,而不是局限于某一种语言。估算在各个行业都存在,团队合作是一个重要的过程。职位描述中的“绿地项目”常常过于美好,实际工作可能需要处理庞大的遗留代码库。
延伸解读
数学要求被高估,基础逻辑才是核心
文章指出,除了航空、火箭导航等少数领域,大多数软件工程师日常几乎用不到高级数学。复杂数学往往被抽象层隐藏,工程师更多依赖逻辑流程和模式。这提醒求职者不必因数学背景不足而自我怀疑,但也不应忽视基础数学在特定场景的作用。关键在于理解问题本质,而非追求数学深度。
语言框架会过时,基础知识让你走得更远
作者以自身面试经历说明,死记硬背语言细节的测试与实际工作脱节,开发者常用搜索工具解决问题。专注于核心原理和基本概念,能让你在选择技术时更有判断力,避免被特定语言或框架束缚。这也暗示,要求详尽语言知识的岗位可能意味着流水线式工作,限制架构设计或领导潜力的发挥。
估算无法回避,合理加缓冲是实用技巧
尽管存在“无估算”运动,但业务部门需要时间规划,销售、市场、财务都依赖估算。作者建议先估最高时间再加50%,以应对不确定性。这并非鼓励夸大,而是承认估算在团队合作中的必要性。理解这一点,有助于工程师与业务方协作,避免因拒绝估算而影响项目推进。
绿地项目常是美好说辞,遗留代码才是常态
招聘描述中的“绿地项目”往往过于理想化,实际工作可能涉及庞大的遗留代码库,需要数月学习才能迁移端点。每个企业都有遗留代码,一旦发布新代码也会变成遗留。若只期望处理新事物、不碰旧代码,可能会频繁失望。接受遗留代码的普遍性,是调整职业预期的重要一步。
Q&A
软件工程师需要掌握高级数学吗?
不需要。大多数软件工程师的工作中几乎用不到高级数学,基础数学知识就足够了。只有在航空、火箭导航或科学研究等少数领域才会用到高级数学。
为什么说基础知识比编程语言和框架更重要?
因为行业变化快,只依赖特定语言和框架的技能容易过时。理解核心原理和基本概念能让工程师选择最适合的技术,并真正理解如何解决问题,从而走得更远。
软件工程师在面试中经常被要求记忆语言细节,这合理吗?
不合理。实际工作中开发者经常使用搜索引擎或AI工具查找遗忘的内容,禁止使用这些工具与真实工作场景背道而驰。要求详尽了解某一语言或框架,暗示着流水线式的工作环境。
为什么软件项目总是需要估算?
因为估算在整个业务中普遍存在,销售、市场、财务等部门都需要时间规划。团队合作需要合理的时间预估,业务部门不能只等技术人员说“完成了”。
如何给出合理的时间估算?
一个技巧是先估出最高的时间,然后再加上50%。如果听起来有点夸张,那就对了。
职位描述中的“绿地项目”真的那么美好吗?
往往过于理想化。实际工作可能涉及庞大的遗留代码库,你可能需要花费大量时间学习如何处理遗留代码,而不是只处理全新项目。每个企业都有遗留代码。