学python听不懂怎么办_有人对他说:如果连 Python 都学不会,你就不要学编程了...-程序员宅基地

技术标签: 学python听不懂怎么办  

后来知道,侯爵本人的学习经历也和我接触过的人不太一样,他是设计背景出身的,不像科班出身的很自然就能养成编程思维,而是通过自学克服了入门的困境。

接下来的这篇文章来自侯爵,讲述了一个非科班出身、从入门到精通的Python工程师是怎么炼成的。

作者 | 侯爵(麻瓜编程创始人)

在我决心开始学编程的时候,由于工作很忙,每天只能抽出来1小时去学习编程。那时候翻遍了知乎上大家推荐的国内外的书和课程,但教程中抽象枯燥的术语根本看不懂,基础教程大多都是几十章的教程或者是上百个视频,一点点看下去感觉像是在从 A 到 Z 背字典,就算背下来了也不知道怎么应用。而教程里的例子大多是1+1、小明的身高这类低龄益智题,让我觉得很无聊,感觉学了也没什么用,提不起学习的兴趣。那段时间学学停停,学到很难受了就停两天,就会觉得有点不服气,为什么我学不会呢?

69eebe53ada74c29b669ae9a4c452d69.jpeg

后来我偶然看到了一个国外的博客,它里面用了一个车的例子,让我真正理解了方法和函数的关系。那时候我突然意识到,原来抽象概念是可以学会的,只要跟自己的实际生活相关联,总能找到一些类比去理解抽象概念。遗憾的是那个博客里面并不是每个概念都有这样的例子,于是我就试着自己去想象一些类比来帮助自己理解抽象概念,然后再敲一些简单的代码去验证,看看是不是和我猜想的一样的。

用了这样的学习方法之后,我的编程学习效率高了许多,不到两周时间就过完了主要的 Python 基础知识,建立起了基本的知识模型。回过头来想,之所以这种方法适合我,能让我学会,是因为我有了情景,我把编程用起来了。之前看很多教程,基本都是从第一章开始觉得会了,但实际上又不知道学的这个要怎么去使,这种感觉就一直在我的脑子里嗡嗡的转。那些教程实际上讲的是语法规则,但是这个东西不能教会你说话。促使你学会说话的是情景,是你妈妈问你「宝宝你吃苹果么?」,你就自然理解了吃的意思是什么。而那些教程都在一丝不苟的教语法,但有了情景,我这样的初学者才能学会。

有了这段经历之后,我就特别能理解初学者的感受。有些程序员会说,“Python 很简单啊,看一遍文档就都懂了”(潜台词:我很聪明,我是学霸)、“如果连 Python 都学不会,你就不要学编程了”(潜台词:只有我这样有天赋的人才能学编程)。我觉得可能是他们做这一行太久了,已经忘了初学时的痛苦和挣扎了,人是会篡改记忆的,会认为现在拥有的都是轻松获得的,但真实的经历永远是坎坷曲折的。

为了能让更多的编程小白轻松地入门编程,我把自己的学习经验结合 Python 中的核心知识,写了一本入门书(截止目前这本书已经有十万多读者了)。由于这段特殊的经历,各种机会向我抛出橄榄枝,我又做了两门课程,还成为网易云课堂 Python 微专业的合作伙伴。

信号与噪音

严格来说,你接触一门新的技能的时候,其实从信息的角度来讲,方方面面的信息你都应该知道。比如学滑雪的时候,少任何一点你都不能成为一个滑雪高手,但对于初学者最先应该知道的是怎样安全的滑行和刹车。也就是信息对于初学者是有重点的,但是很多编程教学者没做到这一点,他们把所有的信息都铺了出来。

筛选重要的信息,不光要选择那些看起来最明显的信息,同时还要选择那些为后面埋下根基的信息。比如说我要盖一座桥,也许这块现在不盖东西,但要把暗桩打好,让以后盖桥的时候有地方下脚。有本书叫《信号与噪音》,这也是我在做的事情,筛选出来对初学者入门有帮助的信号,暂时不需要关注的噪音就做降噪处理。

以使用为核心的学习

你在 Python 官网看到的文档,是语言的设计者和社区来撰写的,这个已经很权威、很官方了,语法规则讲的很全面,但它是以语言特性为中心的教学模式。初学者刚入门的时候不是为了了解语言,而是为了使用而学习,所以说对我来讲很有挑战的一点是,我找出了一个以使用为核心的教学模式。

这就如同于你刚一岁学说话的时候,你妈妈给你讲语法和语言学,这肯定是不对的,大家都知道这个道理,但是一换到一门形式语言、讲一门编程语言的时候,大家就不考虑初学者如何使用了。

实际上,能不能学了就会用,取决于有没有情景化的信息,有没有还原情景的上下文信息。看过了足够多的情景之后,初学者就能通过模仿获得经验,从而知道怎么把学到的东西用起来。

带着兴趣学下去

最好阅读的文字媒介,在现实生活中一定是杂志,因为它经过精心的排版,在厕所的5分钟都能随手拿来看一点。我自己有阅读障碍和注意力缺失的问题,所以我会很看重视觉化呈现,至少给那些像我一样觉得纯文字很枯燥的人一条出路,可以通过视觉化的内容去更高效的理解。

和纸质杂志不同的地方在于,课程中穿插了一些交互式的练习,可以让你练练手,获得即时反馈。就像是健身的时候,你去看教学视频,记忆的是一种影像。但是在做的时候,积累的是一种通过实践习得的经验。获得这种实践经验就是练习的必要性。但前提是要在大方向清楚的情况下去练习,否则练得越多错的越多,会让你产生很多的困惑,让你痛苦。

我希望能通过这些传达信息效率更高的方式,帮助更多新手、曾经从入门到放弃的人、被大多数教程忽视的人,充满兴趣地跨过入门的困境,带着学习的热情在自学编程的道路上走的更远。

b7919de62c094e1e91cc9276bc9f86ce.jpeg

感谢你能耐着性子看到这里。能有兴趣阅读这么多文字到这里的,想必对于Python学习有一定的兴趣。

12月5日,麻瓜编程的侯爵老师将会在网易云课堂上进行一场免费的直播分享,主题是《初学 Python 遇到的问题和解决方案》。在这场直播里,他将会和大家来聊聊初学 Python 遇到的问题和解决方案。

关于这场直播,你需要了解

| 分享人是谁?

本次直播的分享人是麻瓜编程的创始人侯爵老师,他是10万读者喜爱的《编程小白的第一本 Python 入门书》的作者,创作过网易云课堂上最畅销的编程课。

| 我能学到什么?

这场直播主要解决两个问题:

1)初学 Python 的过程中会遇到什么问题?

2)学习Python时遇到问题了,有什么解决方案?

| 收费吗?

不收费:) 本次直播为免费分享

| 如何参与直播?

扫描下方QQ群二维码,加入直播交流群~在直播开始之前,助教MM将会放出直播地址,并挥舞小皮鞭敦促大家去听课~

以下是一条诚意满满的硬广

网易云课堂《Python Web 开发工程师》微专业由麻瓜编程与网易云课堂联合开发,课程以实战项目为主线,你会在实践中循序渐进的掌握完成一个网站的关键知识,独立完成实战项目的前后端开发,用6周做出别人用4个月才能做出的成果

81a2c62f03804ec18039e5fa93a5ce86.jpeg

12月4日-12月13日,《Python Web 开发工程师》微专业正在进行课程促销活动。在折扣的基础上,领券还可以立减100元,有兴趣的同学欢迎戳“阅读原文”了解活动详情~

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39630515/article/details/110284733

智能推荐

1.VScode刷LeetCode,C/C++中文路径无法运行_vscode中文路径-程序员宅基地

文章浏览阅读877次,点赞3次,收藏8次。VScode刷LeetCode,中文路径无法解决,配置launch.json和task.json_vscode中文路径

CSS3 基础(1)——选择器详解-程序员宅基地

文章浏览阅读115次。CSS3选择器详解一、 属性选择器  在CSS3中,追加了三个属性选择器分别为:[att*=val]、[att^=val]和[att$=val],使得属性选择器有了通配符的概念。选择器示例描述[attribute^=value][src^="https"]选择每一个src属性的值以"https"开头的..._1 2 3 4 5 documen

【模板】最短路_c++求图上最短路-程序员宅基地

文章浏览阅读493次。Floyd 这是DP!DP!DP!int V, E; int d[MAX_V][MAX_V]; void Floyd() { for(int k = 1; k <= V; k+ +) for(int i = 1; i <= V; i ++) for(int j = 1; j <= V; j ++)_c++求图上最短路

动态规划 解 青蛙跳石过河-程序员宅基地

文章浏览阅读2.4k次。题目描述:A frog is crossing a river. The river is divided intox units and at each unit there may ormay not exist a stone. The frog can jump on a stone, but it must not jump into the water.If the f_青蛙跳石

js实现一键复制功能_scriptvar clipboard = new clipboard( .copy-btn , [-程序员宅基地

文章浏览阅读845次。原生实现function copy(data){ var oInput = document.createElement("input"); oInput.value = data; document.body.appendChild(oInput); oInput.select(); document.execCommand("Copy"); oInput.className = "oInput"; oInput.style.display ._scriptvar clipboard = new clipboard( .copy-btn , [text: function. return doc

用计算机弹的铺子,干货铺子 • 计算机二级报名指南-程序员宅基地

文章浏览阅读105次。原标题:干货铺子 • 计算机二级报名指南 计算机二级 江西省2018年3月全国计算机等级考试(NCRE)考生需登陆江西省教育考试院官网进行报名网上注册报名时间:2017年12月18日08:00—28日18:00考试时间:2018年3月24日—26日 啦啦啦~计算机二级的报考已经开始啦~充满智慧的干货也来了~轻松备考哦~Pass!Pass!Pass! 考试简介“全国计算机等级考试(National ..._用计算机弹工营

随便推点

JDBC访问数据库的步骤,以及三种数据库的驱动和连接字符串_goldendb连接串如何写-程序员宅基地

文章浏览阅读1k次。一、JDBC访问数据库的具体步骤:1.导入数据库的驱动,加载具体的驱动类2.与数据库建立连接3.发送sql语句,执行4.处理结果集(查询)**二、三种数据库的具体驱动:** 1.Oracle:驱动jar:ojdbc-x.jar具体驱动类:Oracle.jdbc.OracleDriver连接字符串:jdbc:oracle:thin:@localhost:1521:OR......_goldendb连接串如何写

并发、消息队列、缓存_消息队列与缓存的区别-程序员宅基地

文章浏览阅读4.3k次,点赞3次,收藏7次。"并发"会引发关于"顺序"的问题,及如何能够在使用高并发提高效率的同时,又在一定程度上能够控制/维持一定的操作顺序。更广泛的,有关并发的"锁"操作,也都会围绕同样的思路来解决问题。没有银弹。想要在维持并发的同时,通过什么魔法来同时维持顺序是不可能的。最基本的核心想法是,将并发的操作变为串行,那么操作也就自然会有了顺序。这是一个看似有些矛盾的解决方案。并发的目的不就是为了提高效率么?!如果将并..._消息队列与缓存的区别

从nacos客户端的TIME_WAIT说起_nacos timed_waiting-程序员宅基地

文章浏览阅读802次。问题起因前段时间调研nacos,用来代替zookeeper当作dubbo的注册中心,使用的是nacos的1.1.4版本。还用了nacosSync,一款nacos提供的迁移工具,可将常见的注册中心上的服务同步到nacos上。这玩意很不好用,至少不是生产级别的工具。但这与本文无关,后面会专门写一篇文章来介绍这个同步工具的优缺点,以及生产级别还需要做哪些改造。开始测试时,总有服务莫名奇妙的下线了,一直找不到原因。后来在调研的过程中,nacos发布了1.2.0-beta.0版本,于是去github上看了1.2.0_nacos timed_waiting

FL Studio21.1无限试用版体验新功能变化介绍_fl试用版能用多久-程序员宅基地

文章浏览阅读341次。许多刚刚接触音乐创作的新朋友,通过各种渠道了解到FL Studio,但并不知道我们的历史以及在音乐创作方面所产生的影响,今天分享一篇来自coco玛奇朵博主Rio的深度科普文章,相信对新人会有很大启发。_fl试用版能用多久

专题论坛 | 时空知识图谱与地理大模型(SpatialDI2024)-程序员宅基地

文章浏览阅读45次。原文来源于微信公众号“ACM SIGSPATIAL CHN分会”。转载或者引用本文请注明来源及原作者,版权归原作者及刊载媒体所有。ACM SIGSPATIAL中国分会致力于推动空间数据的研究范式及空间智能理论与技术在时空大数据、智慧城市、交通科学、社会治理等领域的创新与应用。为进一步促进空间数据智能研究的理论发展与应用,交流相关领域的新理论、新问题、新方法,ACM SIGSPATIAL中国分会创办..._基于北斗高精度时空信息和位置语义图谱的地理交通时空大模型构建

关于compile() 函数简单实用示例_c#的compile用法-程序员宅基地

文章浏览阅读1.4k次。3、AST分析和修改:将源代码字符串编译为AST对象,然后使用ast模块进行分析和修改操作,例如静态代码分析、代码转换等。1、动态执行代码:可以将源代码字符串编译为代码对象,然后使用exec()函数执行。2、动态求值表达式:将单个表达式编译为代码对象,然后使用eval()函数求值。在使用某些代码需要提炼出公共的代码块是可以使用,方便后续的使用和添加;compile将代码编译为代码对象,应用在代码中可以提高效率。首先code下新建demo.py。编写调用脚本test.py。返回表达式执行结果。_c#的compile用法