自学python无法入门_为什么自学Python看不进去?

我自学编程的入门语言不是 Python,但看书时同样常常感到无论怎么努力都“看不进去”,明明每句话好像都懂了,但转头就忘,让人极其崩溃,后来花了很大力气才搞定。

Python 是我学的第二门语言,和学第一门时相比,奇迹般的顺利了好多,之后又学过很多新的语言和技术,虽然也会经历不少困难,但这种完全“看不进去”,一筹莫展的无助感觉,却再也没有出现过。

事后回想,我才明白,自学时“看不进去”,可能和具体语言无关,而是因为还没真正入门:学第一门语言时,特别容易被这样的问题困住;学第二门乃至更多语言时,就很少遇到这种问题了。

为什么会这样呢,简单分析一下。

所谓“看不进去”或者“记不住”,本质上还是“看不懂”。你可能觉得书上写的都理解了,示例代码照着敲下来,也能正常运行,怎么能说看不懂?

其实只要你发现一段话翻来覆去读了好多遍都记不住,就说明肯定还没懂,想想那些你已经真正理解透彻的东西,是不是好像有种它天生就在你脑子里,根本不是后来才装进去的错觉,而且还能随意变换各种方式把它讲给别人。到这种程度,才算真正懂了。

初学者不容易弄懂的,是什么呢?

举个例子:比如任何一本关于 Python 的书,大概都会讲到 Python 常用的几种数据结构,通常都能把各种数据结构的定义解释清楚,再给出一些示例代码,告诉你这个数据结构怎么使用。对于已经有编程经验的人来说,读完这些基本就够了,实际开发时如果需要更多细节,可以再去 Python 的官方文档里查阅。

但对于零基础的初学者,就没这么简单。你能看懂“列表”和“字典”的概念和语法,也能照猫画虎套用书上的示例代码,但很可能并不太理解为什么要搞出这些奇奇怪怪的数据组织方式,更不知道如何用它们来解决实际问题。

再举个例子:对你来说,理解函数和类这样的概念可能不难,至于怎样定义和使用它,书上也写的非常清楚,做练习时因为题目往往要求很明确,也能顺利完成。但只要开始自己写代码,马上一团乱麻,根本没法用你学过的这些技术让代码结构变得更清晰。

以上种种,总结来说,就是初学者对“编程”这件事还没有形成清晰的整体认识,因此学习时无法把接触到的每个单独知识点快速体系化,只好先把它们胡乱塞进脑子里,和暂存在内存里的数据一样,一觉醒来可能就不记得什么了,然后发现自己怎么学完就忘。长此以往,挫败感越来越强,于是未入门即放弃,这是很可惜的。

如果学过开车,这种情况应该并不陌生,第一次握着方向盘,所面对的一切都是陌生的,很容易手足无措,一边手脚并用对付车上各种乱七八糟的装置,一边神经紧绷关注外面的路况,脑子里还要回想交规和教练规定的各种口诀,是不是感觉超难?而且不论你学车时用哪一款车,这种困难感都不会相差太多。但等你成为老司机之后,不管什么车,哪怕从来没碰过,只要摸索一下各个装置在哪里,马上就能开着上路。

编程也是这样,学第一门语言是最难的,因为你要搞定的不止这门语言,还包括它背后整套庞杂的体系和大量相关的背景知识,但只要咬牙跨过这道门槛,以后再学其它语言和技术时,难度就和开一辆新车差不多。

上面是原因。下面说说该怎么办,我有三个具体建议。

第一个建议:不求甚解。

没必要强求自己理解书上(或者各种形式的课程里,道理相同)每一个知识点,但要保证照着敲下来的代码能够正常运行。

前面分析过,除了少数天才,一个智商正常的初学者,在积累到足够经验之前,有些东西注定难以真正理解,只顾埋头跟它纠缠,容易耗光本来就不多的斗志,非常不值得。

好在编程很务实,代码是检验真理的唯一标准,即使有些概念暂时不懂,只要代码写对,就能得到正确的结果。

别小看这个要求,即使照着书抄,保证所有代码正常运行也不是件特别容易的事。拼错单词、把英文标点符号打成中文的、弄错换行缩进之类格式,这些新手易犯的错误你肯定也摆脱不了,但错过很多次之后,就会越来越细心,键盘敲的再快也很少出这类差错了。

当然,你还会遇到各种各样的报错。软件版本更新很快,你电脑的系统环境也可能和作者所用并不一致,所以书上的正确代码,在你的电脑上未必也能正确运行。这种情况太常见了,不论你用哪本书学都几乎一定会发生。

遇到书上根本没提到的报错信息时,唯一能做的,就是静下心来,搜索报错信息里的每个关键词,然后认真研究,想尽一切办法让报错消失。在这个过程中,你会不知不觉学到很多东西。解决掉的错误越多,你的能力就提升越快。

第二个建议:死记硬背。

我不是建议你背书,而是建议可以尽量把书上那些你已经运行成功的一段一段的代码背下来。这个方法听起来好像有点笨,但对还没有建立起知识体系的初学者来说,却行之有效。即使暂时不理解这段代码,只要能把它背下来,徒手敲进编辑器,并保证运行无误,这个过程重复五到十遍之后,就会渐渐发现,你好像已经开始明白是怎么回事了。人类的大脑就是这么神奇,不信可以亲自试试。

还记得小时候写作文吗,没几个同学能一动笔就写出几百字的文章吧,都得经历大量组词、造句的练习才行。编程也是如此,不先记住足够多的代码片段,是很难直接写出完整程序的。

具体要背哪些代码呢?如果在学第一门语言的话,我建议背每一段示例代码。可能你感觉有些代码真的太长了,不可能背得下来,但实际敲几遍就会发现,再长的代码,也有规律可循,或者是同样的模式重复很多次;或者是可以拆分成多个独立部分,每个部分各司其职。动手敲的遍数越多,这种规律性在你眼里就越清晰,清晰到一定程度之后,这段代码其实已经被你牢牢记住了。

第三个建议:守株待兔。

和一些学过编程的朋友交流,发现每个人入门时,或早或晚都需要经历一次“醍醐灌顶”的时刻,然后才感觉开始摸到一些门道,继续学习也慢慢有了章法。

那个神奇的时刻到来之前,脑子里很多概念和想法始终模模糊糊的缠绕在一起,怎么努力都理不清头绪,但某一天,可能是清醒状态,也可能还在睡梦里,好像通电一样,一瞬间所有困惑突然解开,全部道理和互相之间的关联变得明明白白。随后就产生了新的疑惑:这么简单的事情,我之前怎么就是死活都想不通呢?

这个时刻确实很爽,可你不能主动去找它,只有不断努力,重复练习,即使很长一段时间都感觉毫无进展,甚至似乎在退步,也不要放弃。坚持一段时间之后,一定会等到属于你的那个“醍醐灌顶”时刻。

这里重点推荐一本书,对初学者来说,好的入门书,结构是最重要的,也就是整本书覆盖哪些方面,以及各部分之间的逻辑关系,结构不合理的书,往往会让初学者越学越晕,事倍功半。这本书豆瓣评分高达9.1分,是公认结构特别棒,适合初学者的一本Python入门书。

我现在正在教自己家孩子学Python,也是参考这本书的结构体系来讲的,效果不错。

这本是电子版,用起来比较方便:

如果还是习惯读纸质的,这里是纸书版:

这两个是同一本书,区别只是载体性质不同,根据自己的习惯购买即可。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值