在不远的过去,当 IDE 刚刚诞生时,老一代程序员曾担心程序员的基本功会退化,认为 IDE 限制了程序员的灵活性,担心代码质量会因此下降。

  • “使用 IDE 就像小学生在考试时带计算器,它让程序员变懒。”
  • “真正的程序员不需要 IDE,只需要一个简单的编辑器和终端。”
  • “自动生成的代码就像速食品,方便但不健康。”
  • “我宁愿用 vi,Eclipse 启动时间足够我编译一遍了。”
  • “一个好的程序员,应该在没有工具帮助的情况下写出干净、可维护的代码。”

尽管 IDE 最初受到了不少抵制,但它迅速成为现代软件开发中不可或缺的工具。事实证明,IDE 的出现不仅提高了开发效率,还没有导致程序员能力的普遍退化。

相反,许多资深程序员认为,IDE 提供的强大辅助功能帮助他们将更多精力投入到更高层次的设计和问题解决上。

正如一位程序员所言:

“但实际上,IDE 让我能做编程的‘真正工作’,也就是思考、与不懂的人沟通、以及编写测试——尽管很多人至今仍然不写测试。”

尽管“忽视基本技能、依赖自动化”的担忧在一些新手身上有所体现,但在整个行业中并没有引发广泛问题。随着 IDE 的不断发展,这些工具逐渐实现了效率与灵活性的平衡。基础技能与工具辅助并非对立,而是可以互补的

如今,随着基于大型语言模型(LLM)和 AI 驱动的智能 IDE 技术的逐步成熟,自动代码生成的能力不断增强。上一代程序员的担忧再次浮现。新一代程序员——那些善用 AI 工具的“原住民”——将借助智能工具的帮助茁壮成长。同样,善于思考和解决问题的程序员将会脱颖而出,反而不注重基本技能的程序员,代码质量也可能得到提升。

Martin 在最近的 Goto 大会上提到:或许真正有趣的,并不是编程是否会被 AI 取代,而是程序员的工作内容将如何发生变化。引入 AI 工具后,我们可能需要更多地学习如何为非确定性系统编程,并且如何将这些新兴的技术与我们传统的确定性系统结合。

以测试为例,虽然你可以让生成式 AI 为你编写测试,但这并非正确的方向。AI 只能生成那些证明你所写代码能正常工作的测试,而不会思考代码应该做什么、预期的行为是什么。这些更深层次的问题仍需要程序员亲自思考,这也正是为什么测试如此难做,同时也说明了生成式 AI 无法完全替代人类在这一环节的作用。

同样,需求分析、架构设计、性能优化、复杂问题的根因分析、算法设计和团队协作等任务,未来程序员的工作重心将从简单的编码任务逐渐转向设计非确定性系统、解决复杂问题和进行高层次的抽象思考。这既是挑战,也是成长的机遇。


Bruce
1 声望0 粉丝