提到“编程思维”,你会不会立马联想到一个穿着格子衫、耷拉着黑眼圈的程序员熬夜通宵写代码的场景?
如果你点了点头,那么你对“编程思维”的误会,太深了。“编程思维”不是编写程序的技巧,而是一种高效解决问题的思维方式,是一种“理解问题——找出路径”的思维过程。
因此,编程思维并非程序员的专属。小到洗衣做饭,大到公司决策,都存在编程思维的影子。
编程思维包含四个步骤:分解问题—识别模式—抽象—算法。
本文将通过生活案例,帮助你理解编程思维的四个步骤并学会使用编程思维解决生活中的问题。
分解问题,是指把一个复杂的大问题,拆解成更可执行、更好理解的小步骤。比如当你准备吃一个西瓜时,你并不会直接啃一整个。你会把它切块,再一口一口吃。这就是把一个问题拆分,然后逐个解决的过程。再比如,我们想用编程给「超级马里奥」设计一个新的关卡。面对游戏那么一个庞然大物,我们要怎么分解呢?我们可以把「超级马里奥」的关卡分解成游戏场景图、主人公马里奥、吃了可以长大的蘑菇、以及敌方-栗子小子等。这样我们就完成了新关卡制作这个大问题的分解。
模式识别是指找出相似模式,高效解决细分问题。
天气预报通过以往的经验和数据对未来的天气进行预测,这就是在识别模式。再比如,买4瓶单价4元的牛奶花了4x4=16元,我们知道了“单价X数量=总价”的模式,当再去购买3个单价为7元的巧克力时,我们识别这是跟上次购买牛奶时相似的模式,可以很快算出其总价为7x3=21元。继续以给「超级马里奥」设计新关卡为例。在设计时,我们参考前面几个关卡的模式对新关卡的游戏场景图、主人公马里奥、吃了可以长大的蘑菇、以及敌方-栗子小子等的设定,这也是识别模式。识别模式,其实就意味着把新问题变成了老问题,我们在以往经验中搜索类似经验,套用类似的解决办法。比如,我们将1只十分熟悉的猫咪放入5只陌生的猫咪中,一开始仅靠形象记忆,就可轻而易举找到这只猫咪。但如果把这只熟悉的猫放入50只、100只、1000只陌生的猫群中,我们仅靠形象记忆找到猫的困难会越来越大,大到不可能。我们如果记住这只猫咪身上的一个特点,作为它的标记,问题立马会变得简单。这个标记的过程,就是聚焦最重要的信息,忽视无用细节,也就是“抽象”。当我们遇到没有见过的事物或者问题时,如果能运用抽象的思维去寻找解决问题的关键因素,即事物之间存在的联系,那我们解决问题的效率也会有所提高。
算法设计,就是设计一步一步的解决路径,从而解决整个问题。
举个简单的例子,某大型停车场对于进入该场地的车辆有如下规定:
1、 进入该停车场必须为客运车辆,货运车辆谢绝入内。
2、 如果该车的乘员数量小于等于4,则收费五元。
3、 如果该车的乘员数量大于4人,则收费八元。
我们要根据停车场的规定,做的算法如下:
1、先判断车型是否是客运车辆,如果是,进入下一步,如果不是,不许进入。
2、判断乘员数,如果乘员数小于等于4,收费五元,允许进入,如果不是,收费八元,允许进入。
当我们掌握了以上四个步骤,锻炼了自己的编程思维,在遇到问题时,就能够将问题清晰具体地描述出来,并将问题的解决方案处理成为一个个处理流程。