新手程序员的困境
内容提要
这篇文章讨论了全栈开发人员在工作中的困境和挑战,包括缺乏真正进步和过多复制粘贴代码。建议与导师交流,学习真实的代码。强调了学习软件工程和系统设计的重要性,以及在工作环境中学习的效果更好。掌握编程语言和写代码并非优秀开发人员的唯一价值,还需关注工程设计和系统设计等方面的知识。
延伸解读
复制粘贴的代价:技术债务与成长停滞
文章指出,新手程序员常依赖复制粘贴代码来完成任务,但这可能导致技术债务积累,并阻碍真正进步。长期复制粘贴而不理解代码的来龙去脉,会让人陷入“完成任务但能力未提升”的灰色地带。要打破这一循环,需要主动探索代码库,弄清所用代码的工作原理和设计决策,从而将复制粘贴转化为学习机会。
导师的价值:加速成长的关键
多位网友强调,找到一位经验丰富的导师至关重要。导师不仅能提供真实代码的指导,还能分享观点和经验,帮助新手少走弯路。有网友提到,与优秀导师共事六个月,学到的比之前三年自己摸索还多。因此,若感到停滞,应积极寻求导师或教练的交流,让真正的代码摆在面前。
超越编码:工程设计的重要性
文章指出,优秀开发人员的价值主要来自工程设计,而非单纯编写代码。这包括决定哪些代码该写、维护依赖关系、收集需求等。从初级到高级,关键不在于掌握编程语言,而在于软件工程、系统设计等知识。因此,建议多阅读软件工程、设计、算法等书籍,少关注语言和代码,多关注流程和系统设计。
在工作中学习:平衡任务与成长
度过新手宽限期后,需找到在完成任务的同时学习的方法。好的工作环境会提供额外时间,差的环境则需自己争取缓冲。利用工作时间阅读文档、尝试所学,或与团队结对,都是有效途径。同时,要区分一般知识和领域知识:前者利于找新工作,后者利于当前工作,两者兼备才能提升个人价值。
Q&A
新手程序员工作一年后感觉遇到瓶颈,缺乏进步,这正常吗?
这很常见。许多开发人员工作多年却没什么长进,就是因为陷入了维护模式,只做重复性任务,没有主动学习。
为什么说优秀开发人员的价值不只在于写代码?
优秀开发人员的价值主要来自工程设计,包括决定哪些代码该写、哪些不该写,维护依赖关系,保持项目符合良好标准,以及从利益相关者那里收集正确的需求等。
如何突破全栈开发中的复制粘贴困境?
可以尝试与导师交流,学习真实代码;阅读或重构代码库中感兴趣的部分;利用工作时间阅读文档并在代码库中尝试所学;把每张工作单都当成学习新东西的机会。
导师对新手程序员的成长有多重要?
每个人都需要至少一位导师。与经验丰富的导师共事,学习效果可能远超自己摸索多年。导师能提供经验和观点,帮助新手快速成长。
在工作中学习比业余时间学习更好吗?
是的,在工作中学习效果更好。一旦过了‘在工作中学习’的宽限期,就需要想办法在学习的同时完成任务。好的工作环境会提供额外时间,差的环境则需要自己争取缓冲时间。
新手程序员应该学习哪些方面的知识来提升自己?
应该少关注语言和代码,多关注流程和系统设计方面的知识,比如软件工程、软件设计、算法、计算机安全、数据库设计等。同时要了解最佳实践和领域知识。