你有没有这样的感觉,刚开始学习编程时,总是会觉得无从下手,教材上的习题,看一遍解题思路认为自己会了,一旦题目稍作修改,又变成了丈二的和尚,摸不着头脑?
其实编程并没有那么难,很多人之所以入不了门,都是被其他的思维方式给限制住了。我们需要做的就是理清楚计算机的思维方式,打破原有的思维定式。
举个简单的例子
1. 学习计算机经典的一个题目就是使用*打印一个三角形
这个题目相对比较简单,使用一重循环即可完成
# python2
for i in range(0,5):
print "*"*(i+1)
当我们调整一下题目,使用*打印一个反向三角形
很多人就突然蒙了,为什么?因为不知道空白是怎么产生的。我们几十年的学习中,空白的含义就是没有,没有的东西怎么可能在电脑中输出呢?但其实,在计算机中,我们能在屏幕上看到的、看不到的内容都是有值得,也就是说空白也是有内容的,就是空格(" ")。
由此,这个问题就简单了,也就是每行打印的空格减少,*增多,就可以实现这个反向三角形
# python2
for i in range(0,5):
print " "*(5-i-1),"*"*(i+1)
再举一个例子
2. 学习计算机开始必学的一个题目,a=1,b=2,将a和b的值互换
这个问题很多人立马就上手写程序
然后打印结果让人瞬间怀疑计算机是不是傻,我写的这么明白它怎么不知道?我们之所以会犯这种错误,其实就是不了解计算机的“傻”,它不能明白我们在数学上约定俗成的写法,它只能明白它自己可以识别的写法
这两个例子可以很好的诠释出我们学习计算机时容易进入的误区,就是要求计算机识别我们的认知。实际的过程正好相反,想要学会编程,你需要了解计算机的工作方式,以计算机的认知来控制它。所以我们接下来的目标,就是认识计算机。