
译者:今天,我们为您发布
了新手开发人员Amy Haddad
的文章 。 它解释了为什么程序员应该返回已经解决的问题。
许多开发人员给出了相同的建议:解决尽可能多的问题,以便不断获得新的经验和知识。 这是一个很好的建议,因为解决代码问题可以使您学习新知识并提高现有技能。 但是我也认为重复很重要:同一问题可以用不同的方法解决。 而且这样的重复还可以使程序员以提高技能的形式获利。
Skillbox建议:为期两年的实践课程“我是PRO Web开发人员” 。
我们提醒您: 对于所有“哈勃”读者来说,使用“哈勃”促销代码注册任何Skillbox课程时均可享受10,000卢布的折扣。
知道我不知道的
如果我第一次设法解决了这个问题,这并不意味着我可以再次解决它。
我记得一个库的情况以及其中的错误。 尽管我坚持了很长时间,但还是设法解决了这个问题。 但是几天后,我再次遇到相同的问题,并且我已经忘记了最初的解决方案。 因此,您不必再花时间在这个地方溜走,而是继续前进。
然后对我来说清楚的是,我需要与条件运算符和函数一起工作。 我也意识到问题研究的重要性-这使我能够测试自己的知识并了解需要填补的空白。
如上所述,使用越野车代码会带来新的体验。 能够在我学习课堂时解决问题,这是很棒的。 在这种情况下,一切看起来都很简单。 但是如果这在不久的将来发生在我身上怎么办? 在这种情况下,我将能够了解我是否已经获得了较早获得的新知识,或者是否值得巩固这些知识。
旧问题,新解决方案
即使我第一次记得自己在执行某项任务时的行为,在第二次尝试寻找一种新的解决方案来提高自己的技能。 例如,我使用Loop解决了代码中的问题之一。 第二次,我找到了一个新的解决方案,并且代码变得更具逻辑性和可读性。 我设法将其在问题区域的体积减少了50%,结果,我不仅了解了所有事情的工作方式,还弄清了该过程的细微差别。
在另一个类似的任务中,Loop减少了代码并使代码更具可读性。 但是作为“重复”的一部分,我解决了没有问题的问题-确保可以找到替代解决方案。
可以说,对问题的研究使我脱离了自己的舒适范围,因此我开始思考。 仅因为如此,才有可能找到替代解决方案。
学习编写测试
这是我第三次阅读Brian Brian编写的《面向程序员的练习》一书。 我分析了他的例子,每次尝试寻找新的解决方案时。 这次我练习编写自己的测试。
它是这样工作的:我从书中选择一个随机练习并坐下来编码。 我将生成的程序分为几个文件,每个文件负责一个单独的解决方案。 然后我编写测试。
最后,我想学习如何先编写测试,然后编写代码,但这仍将继续。 现在,我正在练习创建和突出显示功能以及导入文件。
不断重复练习可让您创建沉积在头部的模式。 此外,它们可以用作解决新问题的心理模型。 顺便说一句,我在乔治·保罗(George Paul)的《如何解决它》一书中看到了这个建议。 他建议在解决新问题时寻求与任何现有经验的联系。
“想想过去在类似情况下对您有什么帮助。 寻找对当前问题熟悉的东西,尝试利用您的经验。”
保罗是对的。 我确实经常使用以前的经验来解决新型问题。 例如,最近使用过字谜。 借助当时获得的经验,我设法解决了当前的问题之一。 尽管先前的任务比较简单,但仍可以找到新的解决方案。
研究问题为程序员提供了许多有用的东西。 我们拟定新概念,强化旧概念并创建知识库,然后构成工作的基础。
Skillbox建议: