机翻

[机翻]如何解决问题

October 21, 2019
心得与经验, 机翻

此为机翻文章, 原文在此。 解决问题方法 # 当遇到新问题时,你该怎么做? 1.理解、明白 # 确切的知道要问什么。大多数难题之所以难是因为你不理解它。 怎么知道你理解一个问题呢?当你可以简单的术语解释它的时候。 你还记得吗,当你被一个问题卡住,你开始解释它,你会立即发现以前从未见过的逻辑漏洞? 多数程序员知道这种感觉。 “If you can’t explain something in simple terms, you don’t understand it.” — Richard Feynman 2.计划 # 不要没有计划就直接解决问题(以某种方式希望您能摸索到底)。规划您的解决方案! 如果你不能写下具体的步骤,将无济于事。在编程中,这意味着不要马上开始写代码。要给你的大脑时间,处理问题、分析信息。 为这个为题给出一个计划: “当输入X时,有哪些必要的步骤才能输出Y?” 旁注:程序员有一个很棒的工具来帮助他们。 3.划分 # 请注意。这是最重要的一步。 不要试图解决一个大问题。你会哭。而是将其分解为多个子问题。这些子问题更容易解决。 然后,一个一个地解决每个子问题。从最简单的开始。最简单意味着您知道答案(或更接近答案)。 此后,最简单的方法意味着要解决的子问题不依赖于要解决的其他问题。 解决了每个子问题后,将点连接起来。连接所有“子解决方案”将为您解决原始问题。恭喜你! 该技术是解决问题的基石。记住这一点(如果需要,请再次阅读此步骤)。 4.卡住了吗? # 到现在为止,您可能坐在那里想:“嗨,理查德……太酷了,但是,如果我被卡住甚至不能解决子问题怎么办?” 首先,深呼吸。第二,这很公平。 朋友,请不要担心。这发生在每个人身上!不同之处在于,最好的程序员/问题解决者对bugs/errors的好奇大于对错误的恼怒。 实际上,面对混乱时,可以尝试以下三件事: 调试:逐步解决您的解决方案,尝试找出问题所在。程序员将其称为调试(实际上,这是调试器的全部工作)。 重新评估: 退后一步。从另一个角度看问题。有什么可以抽象为更通用的方法的吗? 研究: 啊,Google不错。您没看错。无论您遇到什么问题,都可能有人解决了。找到那个人/解决方案。实际上,即使您解决了问题,也要这样做!(您可以从其他人的解决方案中学到很多东西)。 警告:不要为大问题寻找解决方案。只寻找子问题的解决方案。为什么?因为除非您奋斗(一点点),否则您将不会学到任何东西。如果您什么都不学,那您就浪费了时间。 实践 # 仅仅一周之后,别指望自己变得很棒。如果您想成为一个好的问题解决者,请解决很多问题! 实践。实践。实践。认识到“使用“在此处插入概念”可以轻松解决此问题”只是时间问题。 怎么练习?wazoo有多种选择! 国际象棋难题,数学问题,数独,围棋,专卖,视频游戏,加密小猫,等等……等等……等等……。 实际上,在成功人士中,常见的习惯是练习“解决微观问题”的习惯。例如,彼得·泰尔(Peter Thiel)下棋,伊隆·马斯克(Elon Musk)玩电子游戏。 例如,我喜欢编码方面的挑战。每天,我都会尝试解决至少一个难题(通常在Coderbyte上)。 就像我说的,所有问题都有相似的模式。 结论 # 那是所有人! 现在,您更好地了解了“像程序员一样思考”的含义。 您还知道解决问题是一种不可思议的技能(超能力)。 如果这还不够,请注意您还知道如何去练习解决问题的技能! ew……挺酷的吧? 最后,祝您遇到许多问题。 您没看错。至少现在您知道如何解决它们了!(此外,您将了解到每种解决方案都可以改进)。 ...