如何像程序员一样去思考
如果你对编程感兴趣,你可能以前看过这句话:
“这个国家的每个人都应该学习编程计算机,因为它教你思考。” —史蒂夫·乔布斯
你可能还想知道,像程序员一样思考究竟意味着什么?是怎么做到的?
从本质上讲, 这一切都是为了更有效地解决问题。
为什么这很重要?
首先我们都有问题,无论大或小。我们应该如何处理它们?
如果你拥有一个系统,它就能从头到尾的来帮助你,否则“随机解决”就会是你解决问题的方式。
这是我开始编程时所做的:
-
1.尝试解决方案。
-
2.如果这不起作用,尝试另一个。
-
3.如果这不起作用,重复第 2 步,直到走运为止。
有时候会很走运,但这是解决问题最浪费时间的一个方法。
所以,当我们遇到一个新问题时,应该这样做:
1.了解
你要确切地知道被问到什么。大多数难题之所以难,是因为你不了解它们。
当你能用简单的语言解释这个问题时,你可能就会真正地理解它。
当你被困在一个问题上的时候,一旦你开始解释它,你就可能会立即看到以前没有看到的逻辑漏洞。
大多数程序员都知道这种感觉。
这就是为什么你应该写下你的问题,画一个图表,或者告诉其他人。
“如果你不能用简单的语言来解释一件事,你就不会理解它。” — 理查德·费曼
2.计划
不要在没有计划的情况下直接解决问题(糊里糊涂地解决问题),你需要计划你的解决方案。
如果你不能写下确切的步骤,那么没有什么人可以去帮助你。
3.划分
注意。这是最重要的一步,不要试图一次性地解决一个大问题,你会哭的。
相反,将大问题分解为子问题,这些子问题更容易解决。然后,逐个解决每个子问题,从最简单的开始。最简单意味着你知道答案或更接近该答案。
一旦你解决了所有子问题,可能你就会得到原始问题的解决方案,恭喜!
将问题减少到您知道如何解决并编写解决方案的程度。然后稍微扩展问题并重写解决方案以匹配,并继续前进,直到你回到你开始的地方。” — 安东·斯普劳尔
4.卡住了?
到现在为止,你可能正坐在那里想,这很酷,但是如果我被卡住了,甚至无法解决子问题怎么办??
首先,深呼吸。其次,这是一件很平常的事情,别担心,这会发生在每个人身上,不同之处在于,最好的程序员在面对不同的错误时,可能会更加好奇而不是恼火。
事实上,面对某些解决不了的”BUG“时,你可以尝试以下三件事:
调试:逐步通过您的解决方案尝试找出哪里出错了,程序员称之为Debug。
重新评估:退后一步。换个角度看问题,有没有什么更简单、更通用的方法?
研究:不管你有什么问题,可能有人已经解决了,你需要找到那个解决方案。事实上,即使你解决了问题,也要这样做(你可以从其他人的解决方案中学到很多东西)。
不要为大问题不断的去寻找解决方案,那只是在浪费时间,你只需要寻找子问题的解决方案。
5.实践
勇敢去实践吧 ~
或许你可以在我这找到你想要的:
https://github.com/Tengxu666/LearnPython