A-A+

像程序员一样思考到底意味着什么?

2019-02-26 11:25来源:一路商机网1人阅读

“Everyone in this country should learn to program a computer,because it teaches you to think.”—Steve Jobs

像程序员一样思考到底意味着什么?怎样才能做到?

从本质上讲,它是一种更有效的解决问题的方法。在这篇文章中,我的目标是用这种方式教你。最后,你就会知道怎样才能更好的解决问题。

我们每天都有遇到很多问题,无论大的小的。我们处理这些问题的方式有时候都是随机的,比如:

1、试着解决方案

2、如果不行,再试一次

3、如果没有效果,重复第二步直到运气好的时候

这样的方法,在你运气不好的时候,就傻了。总之这种方法时候解决问题的最糟糕的方法!也是非常浪费时间的。

“计算思维或分解大型复杂问题的能力,与工作所需要的基本技术能力一样有价值”—by Hacker Rank(2018 Developer Skills Report)

那么,当你遇到新的问题时,你应该怎么做呢?

步骤如下:

1、理解

非常确切的知道自己被问的是什么问题。大多数难题之所以难,是因为你不理解它们,所以这个是第一步。

如何知道什么时候你理解了一个问题呢?——当你能用简单的、用自己的语言解释它的时候。

你可能会记得,当你被困在一个问题上,一旦开始解释它,你就立刻看到逻辑上的漏洞,而且漏洞很可能也是你以前没有看到的。

“If you can’t explain something in simple terms,you don’t understand it.”如果你不能用简单的语言来解释某件事,你就无法理解它—Richard Feynman

这就是为什么你应该把你的问题写下来,画个图,或者告诉别人。

2、计划

不要在没有计划的情况下,一头扎进解决问题的过程中(并且希望你能混过去),计划你的解决方案吧!

如果你不能写下计划确切的步骤,什么也都不帮不了你。

为了得到一个好计划,回答这个问题:给定输入X,返回输入Y所需要的步骤什么?程序员的世界里面,有一个伟大的工具来帮助他们实现这个,那就是注释!

3、拆分

这是较重要的一步

不要试图一次就解决一个大问题,不然你可能会哭的。相反,当你把这个问题进行拆分成一个一个子问题,这些子问题就更加容易解决了。然后,逐个解决每个子问题,从最简单的开始。最简单意味着,你知道答案(或者更加接近那个答案)。另外最简单的方法意味着子问题的解决并不依赖与其他问题的解决。一旦你解决了每个子问题,再把这些点连接起来,连接所有“子解决方案”,将为你提供的原始问题的解决方法!那么恭喜你,你做到了!

这种技巧呢,是解决所有问题的基石,请记住它(建议你重新再读一遍这个步骤)

如果我能交给每一个初学者一种解决问题的技能,那就是“减少问题这个技能”,例如:假设你是一个新程序员,你被要求编写一个程序,读取10个数字,然后算出哪个数字是第三高的,对于一个全新的程序员来说,这可能是一项艰巨的任务,尽管它只需要基本的编程语法。如果你陷入困境,你就应该把问题简化。而不是专注在第三个高的数字上。如何在一个整体中先找到较高的那个数呢?还是太难了?那从三个数字中找到较大的那个呢?还是太难?那如果是寻找两个较大的那个呢?

“将问题简化到你知道如何解决问题,并编写解决方案的程度。然后稍微展开问题,重新解决方案使其匹配,并继续进行,知道你回到你最开始的地方。”—V.Anton Spraul

4、卡住了呢?

现在,你可能正坐在那里想,这几个步骤看起来还不错嘛,但如果我卡住了,遇到了不能解决子问题该怎么办?

首先,深呼吸。因为这个很正常!别担心,朋友,每个人都会这样子!不同之处在于,较好的程序员(问题解决者),对bug(错误)更加好奇,而不是恼怒!

事实上,当你遭遇不幸时,有三件事情可以尝试:

调试:逐步检查你的解决方案,试图找出哪里出错了。即调试程序。

(调试的艺术在于,找出你真正告诉你的程序去做了什么,而不是你以为你告诉它去做什么)

重新评估:后退一步,从另个一角度来看这个问题,有什么可以抽象成更加一般的方法吗?

(有时候,我们会对问题的细节太过沉迷,以至于忽略了再更一般的层面上解决问题的一般原则!)

经典的例子,求一长串连续整数的总和,1+2+3+4+…+n,利用一个简单的消元方法就可以很快的识别出这么一个公式:n(n+1)/2,从而避免了不得不做的加分。

(另一种重新评估的方式是重新开始。删除所有的内容,用全新的眼光重新开始。你会惊讶到这是多么有效。)

上网搜:你没看错,不管你有什么问题,可能有人已经解决了。找到那个人/解决方案。事实上,即使你解决了问题,也要这样做!(你可以从别人的解决方案中学到很多)

(注意:不要寻找解决大问题的方法。只寻找子问题的解决方案,为什么呢?因为除非你努力,(哪怕是一点点),否则你什么都学不到,如果你什么都没学到,那你就是在浪费时间)

5、实践

不要期望仅仅一个星期就能变的很厉害,如果你想成为一个好的问题的解决者,就应该去解决很多问题!练习、练习、练习!迟早你会认识到这个问题可以通过很轻松的方式来解决。

那么如何练习呢?其实也有很多选择的!

比如:象棋游戏、数学问题、数独、视频游戏、cryptokittiles,bla bla bla………

所以,你应该做的是,找到一个练习的出口,可以让你解决很多小问题的东西。(理想情况下,还是你喜欢的东西,那就更好了)例如,我喜欢编程挑战,每天,我都试图解决至少一个挑战。

正如我所说,所有的问题都有相似的模式!

6、结论

现在,你知道“像程序员一样思考”是什么意思了。

你也知道解决问题是一种难以置信的元技能。如果这还不够,你肯定也知道了如何练习解决问题的技巧。你看,这是不是看起很酷!

最后,祝你遇到很多问题哈哈。你没看错,至少现在你知道怎么解决了,同时,你将了解到,每一种解决方案都会使你得到改进!

现在,去解决一些问题吧!

关键词: 怪星球学科少儿编程加盟 怪星球学科少儿编程加盟费 怪星球学科少儿编程少儿编程加盟教育加盟
分享到:
  • 留言日期:2020-03-28曾先生  (北京)

    怎么加盟

  • 留言日期:2022-01-13先先生  (山东青岛)

    有意向加盟,请与我联系!

怪星球学科少儿编程  
投资金额:20~50万元
门店总数:1家
快捷留言
  • 我对怪星球学科少儿编程很感兴趣,请尽快寄资料给我!
  • 我想了解怪星球学科少儿编程加盟费多少?
  • 我想知道怪星球学科少儿编程加盟电话多少?
  • 我想了解怪星球学科少儿编程加盟后期支持有哪些?
  • 我想了解怪星球学科少儿编程现在有多少家加盟店?

怪星球学科少儿编程留言咨询

90%的投资者通过在线咨询的方式获取品牌招商加盟信息

95%的企业会在24小时内与投资者取得联系,并通过邮箱寄送品牌加盟资料

多咨询,多考察,仔细对比项目,将极大减小您的投资风险,快速创业致富的较好途径!

  • 立即留言 (24小时获得企业快速回复)
  • *姓 名:
  • *电 话:
  • 邮 箱:
  • 详细地址:
  • *留言内容:
  • 推荐同行业优质项目给我

教育加盟品牌推荐

教育加盟排行榜

友情提示:本页面内容仅供参考,为降低投资风险,建议您在投资前多做考察咨询、多对比分析。部分品牌暂未开放加盟,请以该品牌官方信息为准。

内容声明:以上所展示的信息均由第三方用户免费注册发布,内容的真实性、准确性和合法性均由发布用户负责,一路商机网对此不承担任何相关连带责任。以上所展示的信息可能存在未获得品牌所有人授权,一路商机网可能与该品牌无合作关系,如有疑问请与该品牌企业核实。

投诉删除:本平台所有品牌信息均为用户免费注册发布,如您发现页面有任何违法或侵权信息,欢迎向一路商机网举报并提供有效线索,我们将认真核查、及时处理。