编程……真的很难吗?真的很可怕吗?真的不是每个人的一杯茶吗?
在踏入编程世界之前,您可能会问自己几个问题。当您听到很多程序员为了交流软件而相互交流的行话时,您可能也会感到害怕。每个进入编程的初学者都面临着同样的问题……解决编码问题的困难,理解代码逻辑的困难……接近问题并获得解决方案的困难。当其他程序员擅长解决问题,擅长实现复杂软件的逻辑,擅长构建任何软件的功能时,大多数初学者开始怀疑自己的能力。
在大多数情况下,当初学者开始感到沮丧时,他们要么放弃编程,要么试图找到一个问题的解决方案“如何像程序员一样思考并快速解决编码问题? “。您可能已经从专业人士那里获得了很多建议,您可能已经阅读了几篇文章和博客,并且您也可能遵循了一些提示。所有这些写在博客中并由专业人士提供的建议让您更加困惑,因为您仍然无法在快速解决编码问题的同时找出每个程序员都在使用的常见技巧。那么,每个程序员都遵循哪些常见的方法来解决编码问题以提高解决问题的能力?简而言之,这就是答案……
所有程序员都使用的通用技巧来培养解决问题的能力
如果您已经解决了问题/之前看过问题已解决,则您只能快速解决问题。因此,挑战在于确保您之前已经看过所有问题。
现在,这并不意味着您需要以前见过所有问题,因为这是不可能的。在这些情况下,您必须能够识别编程挑战中的模式。这来自确保您深入了解各种问题的解决方案,以便您可以识别出两个问题何时相似,并且您可以使用已解决问题的解决方案背后的原理来解决未解决的问题。
编程初学者应该首先开始理解一堆核心算法和数据结构。阅读更多问题的解决方案,直到模式开始对您可见。然后,你应该在线练习挑战,直到你很快。在编程中解决了很多问题,你解决的越多,你就越能在你解决的新问题中看到旧问题的模式,随着时间的推移,你会变得更好。
构建软件时要记住的三件事
看看下面给出的图片……
你看到了什么??一个谜题……你打算怎么解这个谜题……?好吧,这个谜题被分成更小的块,为了找出完整的解决方案,大多数人遵循三个步骤……
- 尝试一个解决方案。
- 如果这不起作用,请尝试另一个。
- 如果这不起作用,请重复步骤 2,直到获得解决方案。
请记住,最初,作为程序员,您大部分时间都必须在程序的一个块中遇到问题,并且您必须通过排列和组合来修复它。如果您是新手,您将不会对解决错误/问题感兴趣,因为解决问题需要更多时间。这一次你需要有耐心,而不是放弃编程。刻意练习是无可替代的。你需要从不同的角度评估问题。大多数程序员之前都听过一句名言……
“Everyone in this country should learn to program a computer because it teaches you to think.”
— Steve Jobs
你明白这句话的真正含义吗……???像程序员一样思考到底意味着什么??
我们将在这里解释,如果你理解它,那么你可能会理解编程在现实中的真正含义……
当您遇到问题时……请仔细阅读。阅读预期结果。然后考虑需要采取哪些步骤来解决该问题。抵制住进去盲目尝试的诱惑。相反,退后一步想想你在做什么。慢打字员总是更好的程序员为什么……?因为他们没有快速进入解决方案并使用他们的命中和试验方法,而是对需要做的事情进行了很多思考,然后他们就去做了。现在您可能已经感受到史蒂夫乔布斯名言的深刻含义。
现在我们将讨论每个程序员在构建软件并成为一名优秀程序员时在行业中应该遵循的三个主要步骤。
Make it work, make it right, make it fast.
-Kent Beck
1. 让它发挥作用
当您遇到问题时,第一步是让它发挥作用。这里的目标只是了解问题并找到解决方案。而已。您可能会认为您的程序也应该是正确和最佳的,但过早进行优化总是一个愚蠢的想法。你最终会为你的代码做噩梦。请记住,一个好的解决方案必须随着时间的推移不断发展并变得更好……从“任何”解决方案开始。
你可以让代码以任何你想要的丑陋、凌乱的方式做它应该做的事情,只要它有效。我们谈论的是软件,没有材料成本,因此不要在第一次尝试时尝试找到完美的解决方案,只需找到使该功能在您的软件中工作的解决方案。不要浪费时间担心您的方法是否理想、您的代码是否优雅或您的设计模式是否完美。如果您认为有多种解决方案,而您无法找到最好的解决方案,请选择一个并继续使用。完成后,请确保它可以正常工作并且可以重复工作。
2. 做对
从第一步开始,您就有了针对您的问题的有效解决方案,以及一种廉价的方法来确保在您修改问题时它仍然有效。现在您的工作是遵循重构基础来改进您的代码设计。遵循软件原则,检查是否有任何设计模式可能会使您的解决方案更加传统。重构;删除重复代码、澄清接口、唯一责任、SOLID 等。同时确保您或其他人理解并毫不费力地对其进行更改。您和其他开发人员可以更轻松地维护您的代码。
3. 让它快速
现在您需要测量代码的性能,这是第三步……代码优化。嗯,这是编程中最难的一步,但是如果简单的解决方案有任何明显的性能瓶颈,现在就实施它们。许多公司只是将解决方案发布到生产中,该解决方案在“使其正确”阶段起作用。如果您有足够的资源和时间,强烈建议您始终考虑代码的性能。代码优化不仅仅是“如何让代码运行得更快”。但不仅如此。您的代码应该花费更少的时间并且应该使用更少的资源。您应该考虑如何使其更具可测试性,如何使其更具可扩展性,如何使此代码对用户更有价值。