Python学习日记

最近一直在补基础,每天多多少少都在学习,不论是理论还是实操,都没有断过。之前写小游戏的时候发现一个问题,用while的时候,别人的代码貌似是看懂了,自己却写不出来。后面发现问题出在“貌似懂了”,一方面没有彻底理解while的用法和功能,另一方面没有编程思维。当把while循环搞清楚时,也突然明白为什么别人那么写了。

关于编程思维问题,网上很多人说多看别人代码,自己多练习,慢慢就能把编程思维培养出来了。可能在某些方面来说是对的,可是对于自学的人来说真的好难。一方面“没有编程思维”的你怎么看懂别人的代码?看懂别人代码又是怎么定义的?是看完吗?还是看懂了那几个指令的英文单词?最核心的还是你没有编程思维,就总结不出别人的编程思维,也就没办法吸收别人的代码思路。那么问题又来了,看别人的代码目的是什么?(突然发现自己真是一个问题宝宝)我思考了一下,还是学习别人解决问题的模式和代码的编写思路,小代码可能差异不大,复杂的程序设计可能真的需要学习别人。而我刚开始学习,本身就缺乏编程思维,所以只能从最基础的知识点学习,于是我换了一个思路,别人代码对我的第一个价值就是搞清楚每一个语句的真实function,比如上述例子中的while循环,就是在别人代码中意识到自己对概念掌握的不清楚,比如语法、功能还有计算机执行逻辑。第二个价值就是学习编程思维,这个学习效果没办法定量,所以能get多少就get多少,多思考多看,一定没坏处(好在现在有一点点思维了)。另一方面你没有编程思维又怎么练习,又怎么写出真正有效的代码?至少刚开始的时候我是懵逼的。问题又来了,实操的时候该选择什么样的练习题,该怎么去学着编程设计?

特意强调上面两个问题,一方面是对自己思路的一个整理,另一方面也找到了之前学习效率低的原因,这对于后续的学习是很好的经验,也是必经之路。其实多看多写本质上没有问题,只不过可能各人的悟性不一样,所以对于我来说没有任何准备就去看复杂代码真的不是一个好选择,时间花费了,效果也不好,焦虑感也上升了。这就是为什么我暂时搁浅小甲鱼习题的原因,而且他的题还挺复杂的。

好在去图书馆借了很多关于编程基础的书,闲着没事就会翻翻看。加上最近Python那本书也一直在啃基础,今晚看《程序设计基础》就突然大彻大悟了。突然明白编程到底是怎么回事,也明白了程序员到底是在做什么事。最搞笑的是在今晚之前,我一直以为自己知道编程是什么(输入-数据处理-输出),我也一直以为我知道程序员是干嘛的(写代码)。可是输入-数据处理-输出又是在干一件什么事?写代码又是在干一件什么事?我之前没有深入思考,实在是愧疚,因为也不是什么难题。编程就是在解决问题,程序员就是一群用代码解决问题的人。怪不得乔布斯说每个人都应该学习编程,因为会编程本质上是掌握了解决问题的能力。

根据解决问题这一宏观的思路,编程首先做的一件事就是(发现)分析问题,要精确准确的分析问题,了解问题是什么。其次是拿出一套解决方案,正如日常生活中我们这干一件事之前都会做计划,即编程设计。接着执行计划,把方案用代码表现出来,即直接敲代码。最后检验结果,即运行代码。但一件事不可能一遍就做好,编程也一样,所以需要反反复复地去实施每一步,并不断发现问题。这也和之前说的输入-数据处理-输出是一个道理。

有了这个思维我再返回去做昨天没做好的题,发现自己可以把代码准确无误写出来了,即便是很简单很简单的题,但还是很有成就感。之后的学习也有了信心,最主要的是好像有了自己的方法。

基础真的太重要了,思维也很重要,两者相辅相成。突然在想如果我之前多问一下我程序员朋友,应该会走很多弯路。有人带的确会好一些,没有人带自己摸索也必须迅速准确发现自己的问题并不断改进。但不管怎么说都一定要努力,我一直相信自己可以学会,也会学好。这个漫长的过程中,日积月累结果总不会太差,后面还有很多内容要学,加油啦!

你可能感兴趣的:(Python学习日记)