原味地址:Generative AI Is Not Going To Build Your Engineering Team For You - Stack Overflow

软件行业已经成熟,进入行业的门槛逐渐提高,早期的“狂野西部”时代已经结束,行业标准和要求正在不断增加。

软件是一个学徒行业

软件行业是一个 学徒制 行业,你不能只通过阅读书籍成为软件工程师,你只能通过实践学习…不断的实践、再实践。无论你的教育背景如何,大部分学习都发生在工作中,而且永远不会结束。学习和教学是终身实践,正是因为如此,这个行业才发展的如此迅速。

什么是高级工程师

软件工程并不仅仅只是编写代码,更重要的是 理解、维护、解释和管理长时间生产中大大量软件的能力,以及将业务需求转换为技术实现的能力。这才是成功一名高级工程师所需要具备的能力,很大一部分工作是围绕着打造和策划这些大型、复杂的社会技术系统。而代码只是这些系统的一个表现。

AI的局限性

AI 可以帮助生成代码,但是无法理解、适应和集成到现有系统中,编写代码从来不是软件开发中最困难的部分,将来也不会是。编写代码是软件工程中最容易的部分,而且每天都在变得更加容易。困难的部分是你如何处理那些代码:操作它、理解它、扩展它,并在整个生命周期中对其进行管理。

像 Copilot 这些的工具的正确思考方式更像是一个非常花哨的自动完成或复制粘贴的功能,或者可能像 Stack Overflow 或者 Google 的搜索结果。

你可以非常快速的通过AI生成大量代码,但你不能信任生成的结果。完全不行,然而,在一些使用案例中,生成式人工智能始终表现出色。

  • 要求 ChatGPT 生成使用不熟悉的 API的示例嗲嘛,而不是阅读API文档
  • 处理令人生厌的繁琐的代码,例如测试模板等
  • 编写一些小功能,例如同样的功能使用不同的语言实现方面

团队建设

有人说生成式AI像初级工程师,但在其他方面,这个类比是不成立的。因为将一个编写代码的人加入团队与自动生成代码完全不同。那段代码可能来自任何地方,你不知道、也不重要。没有反馈循环,也没有人试图迭代的学习和改进,也没有对团队氛围或文化有有利的影响。

一个人可以通过很多方式为团队的整体做出贡献,就像一个人可以通过狠毒哦方式耗尽团队的能量或给周围的每个人增加摩擦和阻力一样。这些并不总是与一个人的水平相关,编写代码只是其中的一种方式。

最高效的工程师是中级工程师,他们还没有被所有的会议、策划、指导、建议和架构所困扰,他们的日程表还没有被打断,他们可以专心地构建东西,你会看到他们早上的第一件事就是戴上耳机、整天写代码,晚上走出门时已经取得了令人难以置信的进展。

招聘初级工程师的挑战

招聘工程师并不是一个 “挑选最合适工作的人”的过程。雇佣工程师是关于组建团队。软件所有权的最小单位不是人,而是 团队。只有团队才能拥有、构建和维护一套软件。这本质上是一种协作合作的活动。

最好的团队总是那些具有多样化的优化、观点和专业水平的团队。在短期内,单一文化可能会取得惊人的成功,甚至可能超越多元化团队。但它们不易扩展,并且不会优雅的适应陌生挑战。你等待多样化的时间越长。困难程度就越大。

招聘初级工程师并为它们提供成长的机会是行业发展的关键,但许多公司将他们视为 成本 而非投资。
工程师和工程经理们应该采取行动,推动行业改变对初级工程师的看法,并为他们提供成长和发展的机会。