跳转至主要内容

我一直在思考,是什么将伟大的程序员和单纯的优秀程序员区分开来。这里有一些想法。如果你有一些其他的想法,请登录后对这篇文章进行评论。

1.这与编码阶段无关。

当然,伟大的程序员也是伟大的编码员。但不止于此。我认为伟大的程序员也是伟大的工程师。一个工程师知道他的工具。工程师知道如何将一个复杂的问题分解成他能解决的碎片,然后知道如何将这些碎片重新组合成一个整体。工程师对问题领域了如指掌。在编程的背景下,这意味着你了解你试图解决的问题;你了解它如何与更大的框架相适应;你了解技术的局限性。

2.是关于编码阶段。

阅读优秀的代码就像阅读一本写得很好的小说。故事就这样从纸上流淌下来。数据结构正是解决问题所需要的。代码被分解成程序,其功能从它们的名称、用途和代码中都很清楚。名称是描述性的。代码的缩进是一致的。注释的位置是战略性的,有帮助的,严肃的,不与可执行代码多余。注释不会质疑附近代码的行为(如果你曾经想这样做,请停下来,花时间去弄清楚发生了什么!)。代码永远不会被无谓的重复;任何给定的动作只执行一次。函数在执行任务时不会产生无谓的副作用。我们已经考虑到了未来明显的改进,并在当前的设计中做出了合理的规定来预测它们。

3.他们无所畏惧。

一个程序员因为认为一段代码太复杂或太脆弱而不愿意工作,这可能是对的。但他们指的不是代码。他们指的是自己的能力!伟大的程序员,在面对一个烂摊子的时候,知道什么时候以及如何向管理层建立一个案例,说明是时候重新实现这个有问题的讨厌的代码了。最差的程序员只是潜入其中,让混乱变得更糟。

4.伟大的程序员总是在考虑性能问题。

他们知道,如果他们为手头的任务选择了正确的数据结构,他们已经避免了大多数性能问题。但他们不会对性能做任何假设。当他们调试好代码后,他们会花时间进行压力测试,并在最大节流下摇出代码。他们明白,让代码在1 TPS下工作和让它在1000 TPS下工作是不一样的。他们也明白,让代码工作15分钟和让代码工作几天或几周是不一样的。

5.伟大的程序员不会猜测。

当他们到了需要知道而又不知道的事情时,他们就会想办法获取必要的知识,不用猜测,也不用浪费很多时间。

我希望你觉得这个清单很有趣,也很有帮助。

© 2024Stratus Technologies.