如何成为更快的程序员

2025-05-27

如何成为更快的程序员

所以你已经成功实现了你的第一个编程目标,或许已经开发了一个供两个人使用的示例应用程序。太棒了!但是,它有点慢,专业的开发人员用它肯定会效率更高。所以现在你的问题是:如何提高编程速度?

尽早获得反馈

如果您是初学者,可以肯定地说,有很多方法可以改进您的代码。如果应用程序按预期运行,那么也许您的解决方案有点 hacking。如果方法没问题,那么也许您在提交之前忘记应用代码风格了。或者,您在使用 Git 时犯了许多小错误,这些错误可能非常细微,例如在提交信息中使用了错误的时态。

从你的资深同事或导师的角度来看,你无法预测哪些地方可能会出错。你需要将你的成果提交评审,然后才有可能纠正你的前进方向。你越早寻求反馈,整个过程就会越快。例如:

  • 在开始更改代码之前,写下你认为可以如何解决这个问题
  • 在开始构建界面之前,先绘制界面的线框
  • 在更新所有单元和端到端测试之前,为实现创建合并请求

任务无需完全完成即可请求审核。审核速度很快,如果幸运的话,你的同事就能帮你完成审核,避免你花费太多时间走弯路。这就像写作和阅读的区别——我写文章大概要花3到4个小时,而你阅读的时间大概只有10分钟。

写得快吗?

或者说,少写代码?你的工作是解决问题,而不是写代码。如果你能快速解决问题(或者比创建新问题的速度更快),那么你的工作就做得很好。你写的代码输出也是问题的一部分——它需要长期的审查、测试和维护。

学习资源的重点在于让你接触他们试图教给你的概念。就编程而言,他们会向你展示一些练习项目或任务,并让你编写代码来解决它——而不会质疑它是否合理。为了在工作中取得好成绩,你只有在没有更好的解决方案时才会编写代码。

质疑所有请求

第一步:确保“所需内容”确实需要。有时,您会收到添加不该成为系统一部分的功能的请求。或者系统中已经存在某些功能,但用户或提交工单的同事并不知道。又或者,请求只是“锦上添花”,而不是真正重要的事情。

简而言之——尽量充分理解需求,以便能够评估它们是否确实必要。

外部提供商

最终,你无法通过说服的方式拒绝为系统添加功能。次优的解决方案是寻找外部供应商来为你完成繁重的工作。例如:

  • 一家云提供商,用于将地址输入从自由文本转换为地图上的位置
  • 适用于在线或实体店的完整支付解决方案
  • 一项邮件服务,让您可以发送电子邮件而不必担心垃圾邮件过滤器

集成通常很令人头疼,但如果您找到具有良好 API 的提供商,则可以节省大量编写和维护自己的代码的时间。

使用第三方库

有些任务太小,无法从应用程序中抽象出来并通过外部工具获取。对于许多典型和不太典型的需求,您可以找到一些第三方库来提供帮助。使用第三方库也有一些弊端:

  • 它们为一些问题提供了解决方案
  • 需要你学习他们的 API
  • 有时还会带来问题

如果你选错了库,可能会带来很多麻烦。在决定使用一个库之前,你可以评估它的一些方面:文档;项目在 GitHub 上的样子;以及与其他在线选项的比较。至于其他关于库的方面,就没那么重要了:这个库的未来会怎样,以及它是否会在你的项目需要它的时候一直维护下去。

图书馆为我们提供哪些东西:

  • 对日期进行操作的方法
  • 与金钱相关的功能——所以你不必担心0.1 + 0.2
  • 生成图表

重复使用您自己的代码

你的选择正在逐渐减少。但在编写任何新代码之前,请确保它尚未在你的项目中实现。同时,还要确定是否有一些非常相似的、已有代码的案例可以在这里复用。

代码复用很棘手——在相关用例中使用相同的代码可以节省时间,但如果将代码复用到不相关的用例中,就会产生问题。例如,温度和金额的加减运算是一样的,直到有人引入对绝对零度的支持。你肯定不希望账户余额低于 −273.15 时应用程序就崩溃。

编写好的代码

如果所有这些都失败了——尽可能少地编写代码以满足需求,但要尽可能写得好。用有意义的方式命名类、方法、参数和变量。记录代码。编写单元测试和一些集成测试。添加提交消息,解释代码中发生了什么以及原因。

简而言之:

编写代码时,一定要假设最终维护你代码的人是一个知道你住在哪里的暴力精神病患者。

重复整个过程

一旦完成了一直在处理的功能,您就可以转到第一点并重新开始。

不要着急

别担心,没人能写出快代码。你听说过“10 倍速开发者神话”吗?据说有些开发者比同行快 10 倍——也许确实有天才,但恐怕大多数情况下,人们都是靠偷工减料来快速推进的。短期内走捷径或许有必要,但这样做会造成技术债务,为了项目的长期健康发展,必须解决这些债务问题。因此,对这个神话的回应是:10 倍速开发者需要 10 个开发者来为他们收拾残局。

现实生活

日常工作中充满了各种可能引发“速度慢”的感觉的情况。前几天,我花了两个小时尝试连接一台网络打印机——结果却需要把它搬到客厅里。时不时地,我也会花几个小时来排查一些由小问题引起的问题——比如打字错误、在错误的地方查找错误,或者其他任何愚蠢的错误

我会因为这些“失败”而对自己很苛刻吗?不会。为什么?这是工作的一部分——有时候你能很快找到解决方案,有时候则需要更多时间。

概括

作为一名初级程序员,你的工作是学习知识并找到能够为项目提供帮助的方法。每个理性的人都明白学习需要时间。在一个好的工作场所,你会得到进步所需的支持,而不会被迫加快开发速度。

对我来说,快速的初级程序员听起来很可怕。我宁愿找一个慢吞吞、但最终能把事情做好的初级同事。学习速度快、善于反馈——听起来很棒。但如果只是快速地提出修改意见——就没那么好了。

文章来源:https://dev.to/marcinwosinek/how-to-become-a-faster-programmer-hp9
PREV
如何使用 API Tester 移动应用测试 CRUD RESTful API?什么是 API Tester?使用 API Tester 测试 CRUD RESTful API 结论
NEXT
Kubernetes - 像五岁孩子一样解释 Docker 是什么?Kubernetes 的强大之处 我应该在自己的机器上安装它还是选择云端?