来源:极客晨星原创发布时间:2020-03-30 点击量:
什么是编程思维?
以下是周以真(Jeannette M. Wing)教授写的的一篇论文《计算思维(Computational Thinking)》。计算思维的覆盖面更广,也同样能够解释什么是编程思维。 计算思维是通过冗余、堵错、纠错的方式,在最坏情况下进行预防、保护和恢复的一种思维。它称堵塞为死结,叫合同为界面。它就是学习在谐调同步相互会合时如何避免竞争的情形。 (周以真(Jeannette M. Wing)教授)
⬇️ 再简单的解释一下编程思维 ⬇️
从本质上讲,它是一种更有效的解决问题的方法。在这篇文章中,我的目的是用这种方式告诉你什么是编程思维,同时你就会知道怎样才能更好的解决问题。
我们每天都会遇到很多问题,我们处理问题的方式有时候都是随机的,比如:先试着解决方案,如果不行就再试一次,再没有效果就重复第二步直到运气好的时候。
“计算思维或分解大型复杂问题的能力,与工作所需要的基本技术能力一样有价值”— by Hacker Rank (2018 Developer Skills Report)
那么,当遇到问题时,拥有编程思维的人应该怎么做呢?
步骤如下:
1、理解
非常确切的知道自己被问的是什么问题。大多数难题之所以难,是因为你不理解它们,所以这个是第一步。
如何知道什么时候你理解了一个问题呢?——当你能用简单的、用自己的语言解释它的时候。
这就是为什么你应该把你的问题写下来,画个图,或者告诉别人。
2、计划
不要在没有计划的情况下,一头扎进解决问题的过程中(并且希望你能混过去),计划你的解决方案吧!
如果你不能写下计划确切的步骤,什么也都不帮不了你。
这是最重要的一步,不要试图一次就解决一个大问题,相反,当你把这个问题进行拆分成一个一个子问题,这些子问题就更加容易解决了。然后,逐个解决每个子问题,从最简单的开始。最简单意味着,你知道答案(或者更加接近那个答案)。另外最简单的方法意味着子问题的解决并不依赖于其他问题的解决。一旦你解决了每个子问题,再把这些点连接起来,连接所有“子解决方案” ,将为你提供的原始问题的解决方法!
这种技巧,是解决所有问题的基石,请记住它(建议你重新再读一遍这个步骤)。
如果我能交给每一个初学者一种解决问题的技能,那就是“减少问题这个技能” ,例如:假设你是一个新程序员,你被要求编写一个程序,读取10个数字,然后算出哪个数字是第三高的,对于一个全新的程序员来说,这可能是一项艰巨的任务,尽管它只需要基本的编程语法。如果你陷入困境,你就应该把问题简化。而不是专注在第三个高的数字上。如何在一个整体中先找到最高的那个数呢?还是太难了?那从三个数字中找到最大的那个呢?还是太难?那如果是寻找两个较大的那个呢?
4、卡住了呢?
现在,你可能正坐在那里想,这几个步骤看起来还不错嘛,但如果我卡住了,遇到了不能解决的问题该怎么办?
事实上,当你遭遇不幸时,有三件事情可以尝试:
调试:逐步检查你的解决方案,试图找出哪里出错了。即调试程序。
重新评估:后退一步,从另个一角度来看这个问题,有什么可以简化成更加简单的方法吗?
经典的例子,求一长串连续整数的总和,1+2+3+4+…+ n , 利用一个简单的消元方法就可以很快的识别出这么一个公式:n(n+1)/2 ,从而避免了不得不做的加分。
(另一种重新评估的方式是重新开始。删除所有的内容,用全新的眼光重新开始。你会惊讶到这是多么有效。)
(注意:不要寻找解决大问题的方法。只寻找子问题的解决方案,为什么呢?因为除非你努力,(哪怕是一点点),否则你什么都学不到,如果你什么都没学到,那你就是在浪费时间)
5、实践
不要期望仅仅一个星期就能变的很厉害,如果你想成为一个好的问题的解决者,就应该去解决很多问题!练习、练习、练习!迟早你会认识到这个问题可以通过很轻松的方式来解决。
比如:象棋游戏、数学问题、数独、视频游戏、cryptokittiles ,bla bla bla ………
所以,你应该做的是,找到一个练习的方式,可以让你解决很多小问题的东西。正如我所说,所有的问题都有相似的模式!
6、结论
现在,你知道“编程思维” 有多重要了吧!
最后,祝你遇到很多问题。你没看错,这样你可以反复的练习如何解决问题,同时,你将了解到,每一种解决方案都会使你得到改进!
当然,想提高编程思维的孩子们,可以体验下极客晨星少儿编程,趣味性与知识性相结合,锻炼孩子逻辑思维,提高自主学习力。
标签: 少儿编程,编程科技,教育培训