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

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

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

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

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

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

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

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

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

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

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

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

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

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

第一个建议:不求甚解。

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

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

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

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

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

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

第二个建议:死记硬背。

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

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

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

第三个建议:守株待兔。

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

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

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

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

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

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

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

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

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

  1. php java python容易入门_先学习Python之后再学习PHP与java会更好吗

    学过python语言之后在去学习PHP javascript 这些编程语言是不是会更好的能快速理解, 有python基础之后,再去学习php语言 理解上 是不是更方便上手, 我现在主要想学习专研 PH ...

  2. 如何学python新手入门_如何学习Python,以及新手如何入门?

    好久以前就想写这个回答了. 学校里面开了一门极其火的python通识课,我幸运选上,加上我对python还是比较感兴趣的.就这样我开始了我的python学习之路. 提前说明吧,我真的还只是一个纯纯纯新 ...

  3. python学起来难不难-自学Python很难吗,为何会看不进去!

    原标题:自学Python很难吗,为何会看不进去! 首先学习python一定要以实用性为导向! 盲目看教程,结果大多是浅尝辄止,从入门到放弃.这里小九想给大家指引一条清晰的规划路!如何在一个月内入门py ...

  4. 【python教程入门学习】学python要多久,0基础学python有多难

    学python要多久,0基础学python有多难,这是很多想学习python语言同学绕不开的问题,都害怕花完钱最终没有应有的回报!对于毫无经验0基础的同学来说学习python什么最重要,方向选对坚持下 ...

  5. Python基础入门教程:使用 Python 3 协程快速获得一个代理池

    Python基础入门教程:使用 Python 3 协程快速获得一个代理池 前言 在执行 IO 密集型任务的时候,程序会因为等待 IO 而阻塞.比如我们使用 requests 库来进行网络爬虫请求的话, ...

  6. Python学习入门基础教程(learning Python)--5.6 Python读文件操作高级

    前文5.2节和5.4节分别就Python下读文件操作做了基础性讲述和提升性介绍,但是仍有些问题,比如在5.4节里涉及到一个多次读文件的问题,实际上我们还没有完全阐述完毕,下面这个图片的问题在哪呢? 问 ...

  7. Python从入门到精通— 初识Python

    Python从入门到精通- 初识Python Python基础知识学习系列博客,持续更新 Python从入门到精通- 初识Python Python从入门到精通- 初识Python 1.Python简 ...

  8. 文科生自学python要多久_怎么自学python,大概要多久?

    都让开!本人文科生,自学Python 2年半,作为一个曾经完全0基础,啥都不懂纯靠自学学会python的文科生,有一些不成熟的小建议可以分享一下. 首先不要觉着编程难,只要你认识26个英文字母,有一点 ...

  9. python怎样编程_怎么自学python编程

    如何自学Python编程?一堆的Python教程却感觉无从下手呢?我想这应该是很多Python初学者正在纠结的问题. 今天想要分享给大家的是如何自学Python编程,学习这件事 还真不是人人都擅长的, ...

最新文章

  1. Hashtable类
  2. 关于你不知道的特征归一化/标准化
  3. Mysql 连接查询
  4. [转]Google的C++代码规范
  5. java 反射获取实体类_Java 通过反射给实体类赋值操作
  6. python中等高线填充颜色_Python matplotlib等高线图对数颜色
  7. tornada-数据库
  8. spring boot aop 记录方法执行时间
  9. 死锁Waiting--DeadLockDemo
  10. 基于Centos6.2 X64系统下的邮件系统(二)
  11. 腾讯云服务器 - 定时备份MariaDB/MySQL
  12. Integer在webservice的传递
  13. 解决mysql中文乱码问题。
  14. 版本设置X:none node Title golang版本错误
  15. Filezilla Server使用教程
  16. 二补数 (2's complement)
  17. 华为快应用接入广告服务开发指导
  18. Pandas入门基本知识点
  19. macbook pro 连接无线鼠标卡顿问题解决
  20. SecureCRT背景颜色

热门文章

  1. html标题和段落一样大,HTML标题和段落
  2. Flashlight小工具实现
  3. linux查看当前ssh版本,Linux查看ssh版本的方法
  4. 上百个微信小程序源代码下载,超过100个完整项目文档
  5. ChatGpt的出现,前端真的会失业吗?
  6. 计算机中k,K和b,B以及kb,kB,Kb,KB的区别
  7. 星号棱形,数字棱形及其他对称图形的分析方法
  8. 上传文件到服务器并通过浏览器直接下载附件(springboot)
  9. http拨测是什么意思_腾讯云拨测使用常见问题汇总
  10. DNS拨测shell脚本