Memory 伟大的编程需要强大的内存吗

Memory 伟大的编程需要强大的内存吗,memory,Memory,你认为成为一名优秀的程序员需要有很好的记忆力吗 我不认为自己是一个伟大的程序员,但我确实认为自己是正派的。但我的记忆力真的很差,所以我发现自己总是不得不提醒自己如何做事。我的意思是我“知道去哪里找”,但有时这让我觉得我只是一个差劲的程序员。更糟糕的是,我总是忘记我的源代码中的东西在哪里,或者我在某些情况下使用了什么算法 回想一下你在生活中遇到的伟大程序员,他们不是都有惊人的记忆吗?把你的短期记忆当作堆栈(不是静态的),不要期望从中得到更多。我回到了我一个月前写的代码,它几乎像是别人写的。。只是需

你认为成为一名优秀的程序员需要有很好的记忆力吗

我不认为自己是一个伟大的程序员,但我确实认为自己是正派的。但我的记忆力真的很差,所以我发现自己总是不得不提醒自己如何做事。我的意思是我“知道去哪里找”,但有时这让我觉得我只是一个差劲的程序员。更糟糕的是,我总是忘记我的源代码中的东西在哪里,或者我在某些情况下使用了什么算法


回想一下你在生活中遇到的伟大程序员,他们不是都有惊人的记忆吗?

把你的短期记忆当作堆栈(不是静态的),不要期望从中得到更多。我回到了我一个月前写的代码,它几乎像是别人写的。。只是需要一段时间才能回到同一个区域

我经常因为给自己留下像面包屑一样的评论而被取笑。。但它是有效的。如果我完成某个函数并说“啊哈,那太棒了!”,我会立即评论我的复杂性,因为我肯定会忘记

现在,用两个问题回答一个问题:

  • 上周三你午餐吃了什么
  • hash_foo()中“counter”的用途是什么

  • 至少,有了#2,你可以很快回头看看/记住

    我可以用一个词准确地回答这个问题:不。不一定要有很好的记忆力来记住所有关于编程的内容。经验和枯燥的实践学习是最好的


    我也有过这样的经历。如果你有足够的时间(或可能是几年)使用最佳实践创建软件的经验,那么你就真正掌握了自己的工作或用于创建软件的编程语言。如果你的记忆力不好,请不要难过,但努力学习和练习可以克服你的记忆力弱点。

    不。从长远来看,忘记所知并继续学习的能力至少同样重要

    好的笔记、书签和网络搜索有很长的路要走

    记住真正简单的事情是伟大的编程所必需的。像“坚持下去”这样简单的事情


    从显示器的另一面看,这是一个有趣的视角:

    只要你能记住g-o-o-g-l-e的拼写,你就没事了。:)

    但说真的,你确实需要同时在你的短期记忆中保留一些东西。我认为长期记忆不那么重要。只要你意识到有东西存在,你以前见过,等等,当它变得相关时,你就会知道你可以把它挖出来


    有经验的程序员通常可以重复API、小细节等,但以我的经验来看,这从来不是坐下来死记硬背的情况。这是反复使用事物的自然结果。

    我认为良好的记忆力有助于快速学习新事物

    这并不意味着这是成为一名优秀程序员的必要条件

    事实上,它更多的是关于智力而不是记忆能力,但它是一个太复杂的主题,无法识别某些品质并将其与编程技能进行比较,也无法检索任何相关信息


    这就是大脑的奥秘。

    拥有良好的记忆力非常有用,但肯定不是必需的。我想说的是,并不是优秀的程序员有很好的记忆力,而是他们花了很多时间研究哪怕是最微小的问题,这提高了他们的理解力和记忆力。如果你花了4分钟解决一个问题(谷歌搜索或询问),那么在接下来的4个月里,当你再次遇到这个问题时,你可能不会记得这个解决方案。这可能是一种进化特征,也可能只是一种糟糕的记忆=)

    优秀的程序员也有经过深思熟虑的原则,允许他们在自动驾驶上工作,而无需对自己进行事后猜测。一套好的原则还可以通过强化实现一致性和可预测性(这是一种记忆质量)

    这也扩展到其他领域。国际象棋大师们可以回忆起40年前的一场比赛。这是因为他们记住了模式(开场白、变化、导致游戏结束的动作的根本原因和效果等)。这有助于将个人移动分组到单位中


    在软件中,工具可以像自动完成或具有KB/Wiki和可搜索的登记历史记录等,这会有所帮助。

    我认为这取决于情况。内存对于程序员来说非常重要。无论是短期还是长期。然而,你用这些记忆做什么才是最重要的。作为一个程序员,如果你用它来记忆API的细微差别,那么我会说你是在浪费你的内存

    最后,我试着用我的记忆去记住那些重要的事情,以及任何我以后找不到的东西。我通常会把API的东西放在短期内存中,并使用google和intellisense来帮助我了解细节。另一方面,设计模式、方法、从经验中吸取的教训,通常是我试图将其放入长期记忆中的东西,这样我就可以在未来有效地使用它,而无需重新学习所有东西

    简言之,是的,一个程序员需要一个好的内存…无论是长期的还是短期的。但他们需要明智地使用内存……我认为,这对一个优秀的程序员来说是有区别的。

    不。但也许它可以让你变得很棒

    编程的一门艺术(也许是艺术)就是能够以这样一种方式来处理问题,即你可以掌握全部问题,尽管你有局限性(比如不完美的内存)。这是因为每个人——包括我们中最聪明的人——都有局限性。撞到你的局限性并不是你有局限性的标志,而是你正在更进一步的标志

    这门艺术(据我所知)包括分而治之(使用各种模块,以匹配形状)