浅析编程思维
无论在生活中,学习中,还是工作中,我们都会遇到各种各样的问题,每个人都有自己的一套处理办法,每种处理办法都有其特定的内在思维逻辑,最近学习python编程语言,在解答各种题目的过程中,让我清晰的认识到,编程是有一套固定的思维方式的,而这种思维方式,让我在其他方面也获益良多,于是就迫不及待的分享给大家。
1.问题本身是什么?
必须先明确问题本身,并对问题有一个清晰的认识,才能更好的去解决问题。
举个我在进行python编程语言学习的过程中遇到的题目:用天数计算年龄。怎么去理解这个题目呢?用天数计算年龄,是不是只需要知道这个人多少岁,然后把年龄和每年的365天做个乘法呢?显然不应该是这样的,这个题目的含义是需要一个明确的天数,是从一个人从出生开始到今天的这个时间段内有多少天。
在工作中,就经常会碰到某些人,急急燥燥,领导布置一个任务,还没搞清楚具体要做什么,就忙着答应没问题,结果事情完不成,还要其他人给他擦屁股。比如,我有一个同事,领导让他帮着写一个总结,他立刻满口答应下来,他的文笔确实不错,对这种总结那是得心应手,仅仅一天之后,一篇声情并茂的总结就出炉了。里面以领导自己的口吻,把对生活、工作、学习、管理等多个方面都做了简要的介绍,基本都是一些大家常见的但又不影响大局的问题,还有一些冠冕堂皇的收获之类。领导看了之后就立刻不高兴了。为啥?领导想让他写的是一篇客观纯粹的工作总结,而不是个人年度总结报告!他完全就没理解对,浪费了功夫不说,还给领导留下了办事毛躁的印象。
所以遇到问题,一定要先搞明白问题的本身是什么,再去考虑怎么解决怎么做,不要盲目的开始,最后费时费力却事倍功半。
2、明确输入
只要明确问题本身就行了么?当然不够。
还是继续说我的编程题目:用天数计算年龄。是不是只要写个程序,输入一个生日,计算一下到今天的天数就可以了?如果你这么想,恭喜你,掉坑里了。用天数计算年龄,本身没有规定是到今天的年龄,可能是到昨天,也可能是到下个月的某一天,可以是任何一天。
这个时候,我们应该意识到,输入的不仅仅是一个生日,还应该有另一个日期来确定年龄,也就是有两个输入。现在问题明确了,是输入两个日期,来确定两个日期间的天数。
在学习中,我们常常忽略明确输入的重要性。很多人家里都会买很多本书,摆满一面墙,但基本不看,偶尔想看了,面对一墙的图书,也不知道怎么选择,往往是随便拿一本,还美其名曰:“开卷有益!”
我们的时间是有限的,所以在学习过程中一定要有选择的输入,要有明确的输入。比如,我要学习哲学,那就明确看什么书,什么时间看,在哪里看。而不能说,我今天要学习的东西有哲学、心理学、数学、经济学、英语……这样的结果往往是什么都学不到,时间都浪费在选择上了。
最重要的事情只有一件,明确的输入也就只有一件,只有输入明确了,我们才有可能得到我们想要的输出。
3、明确输出
输出和输入是相辅相成的,输出倒逼输入是目前一种非常流行的方法,也确实挺好用,只有有了输出我们的输入才更有意义。
我的编程题目中的输出就应该是一个具体的天数了。那这个天数应该是几呢?怎样由输入运算得出呢?这就需要一个明确的算法了,我得统计两个日期之间有多少完整的年,得出一个天数,再计算不完整的年的天数,加到一起得出一个总天数。
其实生活中更应该明确输出。输出就是我们想要达到的状态,用一个美好的词来解释就是梦想,我们的输出就是我们的梦想。输出是我们输入的源动力,是我们成长的启明星。
我们明白生活问题的本身就是衣食住行,去选择明确的学习内容是输入,而我们想要达到的目标就是我们的输出,但,这还不够,还需要对我们输入和输出的关系进行测试。
4、用例测试。
用例测试就是拿一些明确的答案去检测我们的程序的运算结果是否正确。
我上面那个程序运行之后的结果就是错的。哪里错了?没考虑闰年问题。普通的年份是365天,闰年是366天。这就是我用例子测试出来的,我发现我的程序计算的两个日期之间的天数和实际答案总是差那么几天,才发现忘记考虑闰年了。
其实在我们的成长历程中,测试会更加的重要。程序错了我可以改,甚至可以重写,人生可以么?我们的生命只有一次,我们只有一次机会,那我们怎么测试呢?靠想!也许你会觉得不靠谱,但这其实是一种绝佳的自我成长的方式。
比如,我们都应该知道,很多伟大的人之所以成功,是因为他们足够努力,付出了足够多的汗水,这就是一个有固定结果的用例。把它带入到我们的人生里,如果我们努力,就可能成功,而如果我们不努力,那就一定不会成功。
其实编程思维就是一种明确的目的性思维方式。我们要先对问题有一个清晰的认识,然后有明确的输入和输出,再用测试用例对我们的过程进行测试,得到和预期相同的结果。
其实人生也是一样,先要理解我们的生存环境和社会地位,然后明确自己应该怎么努力怎么学习才能达到自己想要的目标,为了明确我们的做法是否能更接近目标,就要拿那些已经明确结果的例子去比较分析,最后进行自我的迭代成长。
希望这套思维方式对你有用!