这个问题下面这么多人推荐了这么多 Python 资源,估计零基础新手看到了会眼花缭乱吧。

作为非计算机专业出身、自学编程的过来人,我知道想找到一份适合自己的入门教程不容易。不如就在这里分享一下,如何鉴别一份 Python 教程是否适合新手。

鉴别要点1:这份教程是否支持 Python3?

在2020年,Python 核心团队就会停止支持 Python 2 了。目前不少主流库的新版本也停止支持了 Python 2 ,包括 Django、Flask、Numpy 等等。

如果你是现在开始学 Python,当然要选 Python 3 了!这听起来简直像是废话。

然而,在知乎上被热捧的 Learn Python the hard way 的作者 Zed.A.Shaw 就是 Python 2 的顽固分子。你在京东上能看到的《笨办法学Python第3版》就是基于 Python 2 写的。 />

想要分辨 Python 2 还是 Python 3 很容易,你看 print 的写法就知道了。 />

所以,如果你执意要选择这份教程上手,那肯定选了是一条难走的路啊,这可不是 the hard way 么。在别人开始学语法的时候,你需要折腾各种兼容问题,比如教程里的代码没法在你电脑上正常运行,比如报错了无法获得帮助。有多少人是在这个坑放弃学习 Python 的,举个手呗

还有啊,另一个在知乎上被热捧的 code cademy , 也是用的 Python 2,并且丝毫没有要更新的意思。也许这家2011年创立的公司,已经落后于这个时代了吧,可惜了。 /> />

鉴别要点2:这份教程是否把概念解释清楚了?

所有教程都会标榜自己适合零基础,但是不是真的适合零基础,要看有没有把概念解释清楚。

无论教程的形式是直播、录播、博客、论坛还是书籍,能把概念讲清楚才是最重要的,这才让新手有了学明白的可能。

对于零基础新手来说,什么是「变量」、什么又是「函数」,这些编程常识新手是没有接触过的,但是很多大牛根本不屑于去讲清楚这些,因为他们学编程学了太久了,这些常识就像「早上要刷牙」一样已经根深蒂固了。

这么说可能你还不信,那可是知乎上千万人都点赞的教程啊,怎么可能讲不清楚概念?那我们就来扒一扒,各个教程是怎么讲「变量」这个概念的。

R 教程:变量是存储在内存中的值。这就意味着在创建变量时会在内存中开辟一个空间。小白心声:哈哈哈,啥玩意?内存我知道,什么是在内存中开辟空间?我需要关心这个么?

这就是典型的用一个抽象概念解释另一个抽象概念,如果你看的是这样的教程,看的越多,就发现自己不明白的概念越多。

V 教程:Python 的变量不需要声明,你可以直接输入:>>>a = 10。

那么你的内存里就有了一个变量a, 它的值是10小白心声:变量这一节上来第一句话就是「变量不需要声明」,我是不是错过什么了?声明是什么?不需要声明意味着什么?如果需要声明是什么样子的?

这让我想起我家猫有次得猫藓,京冠医院院长给开了瓶药,第一句就说「这个药可以舔。」当时我是懵逼的,难道这个药是口服的?后来才知道,这个药是用来涂抹的,但一般用来涂抹的药都是猫不能舔的,京冠独家研发出来了这种猫舔了也没关系的药,很安全,所以院长十分骄傲的先介绍这个特性。但不了解这些背景,当然就不明白他为什么那么说。

这是不是和 V 教程上来就说「变量不需要声明」很像?

L 教程:变量的概念基本上和初中代数的方程变量是一致的,

只是在计算机程序中,变量不仅可以是数字,还可以是任意数据类型。小白心声:初中代数我学过,x+1=2 嘛,所以变量就是那个 x,是未知数的意思喽?好嘞,那我接着往下学。诶,这有个 x = x + 1 是啥意思?x 是未知数的话,两边一消掉变成了 0 = 1 ??? 这个在数学上不成立啊?难道我初中数学没学好……

这个例子说明了,不恰当的类比会给零基础新手带来错误的印象,以为自己理解了,其实还是没理解。

不是故意找反例,这些都是找的知乎上热捧的知名 Python 教程节选的。为了避免得罪人,这里就不说这些教程分别是谁的了,再说下去估计要有人找我问多少钱能删帖了。你也可以看看你手里的教程是怎么解释变量这个概念的,看看较真起来的话你真能看懂么。

不是自卖自夸,我找了一圈真没找到一个能讲明白的,所以在这里只能拿我写的教程来举个例子,大家来对比下了。 />来自麻瓜编程《让小白学上瘾的 Python 入门课》https://www.mugglecode.com/introduce

可能我是第一个提出这个说法的,变量的作用就是用来给数据起名字的。为什么要给数据起名字?在这一页之前你会做20个交互练习,做完你就发现那些数据就消失了,没办法再次使用了。

想要下次能方便的使用数据,就需要给这个数据起名字,也就是变量赋值。

我自己是新手自学过来的,所以我知道用概念解释概念有多讨厌。我的思路就是先让你置身于使用情景,然后你就自然明白为什么了。

这块可能说的有点多了,我想说的是,找一份能把概念解释清楚的教程上手去学吧。也不是说非得是我的教程,哪个你能看懂,你就学哪个。

记住,你看不懂,不是你的错,一定是教程的问题。看不懂赶紧换。

鉴别要点3:有没有概念的使用场景

最后这点不知道会不会有争议。先确认一个事情,你学 Python 是为了拿来用的对吧?你不是为了研究编程语言进化史的吧?

如果这点有共识,那么你学每一个新语法的时候,就会很自然的想到:我学的这个东西能用在哪呢?怎么用呢?

那么你可以去看下,你手中的教程有没有回答你的这个问题。

这里只举一个典型例子,L 教程条件判断那一节:

age = 3

if age >= 18:

print('adult')

elif age >= 6:

print('teenager')

else:

print('kid')

这个程序是为了判断 age = 3 是属于成年人、青少年还是儿童。我有个傻问题啊,既然已经知道了 age = 3 ,干嘛还去判断呢?

其实大多数基础教程都有这个通病,例子是伪代码,大多数都是1+1,abc 这种例子,没什么实际意义。这也就是为什么你看完基础教程,却不知道怎么去用。没学过使用场景嘛,怎么可能自己想到。

那么多教程,却很少有人能点破这个事情,为什么要用条件判断?因为有些事情的发生是未知的啊。之所以要用条件判断,是为了预测程序可能发生的不同情况,再针对每种情况制定对应的解决方案。

所以,如果把上面那个例子中的 age = 3 改成 age = input(),这就说得通了。来自用户的输入是未知的,所以我才要分门别类的判断。这才是条件判断在实际使用中的用法。

当然,这里只是举个例子,并不是说改一下这个例子就变成好的使用场景了。一个好例子和一个坏例子从根本思路上就是不同的。

别人怎么写例子的我不知道,我自己在写例子的时候,看了大量源码,总结出来核心的几个使用场景。

比如说,条件判断这块,我总结了3个使用场景:值比较、看结果、猜有无。可以说,只要用到条件判断,就逃不出这3个场景了。

这里又不小心说多了,总之,找一份有使用场景的教程,你看完就知道学的东西在哪用了。

还是那句话,你学完不知道怎么用,不是你的错,一定是教程的问题,赶紧换。

总结一下,判断一份 Python 入门教程适不适合新手的3个核心要素:鉴别要点1:这份教程是否支持 Python3?

鉴别要点2:这份教程是否把概念解释清楚了?

鉴别要点3:有没有概念的使用场景

这3点都满足了,才是好教程。

其他一些你以为重要的,其实不重要。是不是写教程的人资历越牛逼,就越好啊?

真不一定,专家不一定是能体恤初学者的好老师,你要是找 Python 之父 Guido van Rossum 教你,他可能就从 Python 的垃圾回收处理机制讲起了。是不是教程写的越长就越系统啊?

砖头厚的教程你看的完么?最重要的尽快练起来啊,在使用场景中理解基础知识。

可能有人会喷,别人都觉得这些教程挺好的,就你事多说看不懂,是不是没事找茬啊?是不是就为了推自己的教程啊?真不是。

在所有学科中,数学、英语,编程等等,就编程的教学年头最短。在教学上传承的越远的学科,在教学环节上就打磨得越好,可以让任何一个普通人学懂。

而编程是一个很年轻的学科,它还没有经历过一种可以被传承的教学模式,没有形成一个可以让任何人都能学会的教学方法。

所以说我做的事情,就是让编程的教学方法更成熟,让任何人都能学会编程。

也许我看起来像这个行业的搅局者,但实际上,即使我不出来也会有人做这个事情,因为编程这个学科会越变得越来越流行,也越来越成熟。

一定会的。

学 Python ≠ 100G 视频资料

学 Python ≠ 傻瓜式的在线填空题

只有多写实操项目,才能学的高效。只有建立自己的知识体系,才能学的踏实。

这是我们一直在强调的学习方法,试过的人都学成了,没听进去的人都吃亏了。于是这一次,我们把学习方法做进了课程体系里。

学习顺序按照「学习-测评-实操」进行,强制你多写代码多练习,让你学的高效。

课程按照「建立知识模型-用法必知必会-上手项目案例-系统学习脑图」的知识体系,逐个模块系统递进,既有完整实操项目从零到上线,又有系统脑图的体系化,让你学的踏实。

这是只在「Python 后端工程师培养计划」才有的学习体验。

查看课程目录、免费试听:Python 后端工程师培养计划​www.mugglecode.com

python如何编程-编程零基础应当如何开始学习 Python?相关推荐

  1. 零基础自学python的app-编程零基础应当如何开始学习 Python?

    编程零基础的话我默认你现在只有一台电脑,然后你想学习python,做一些有趣的事情,比如爬虫,数据分析等等. 但是很多攻略往往还从输出hello world开始,并没有手把手的保姆级攻略.这是一篇非常 ...

  2. python编程零基础-编程零基础应当如何开始学习 Python?

    看到问题关于<编程零基础应当如何开始学习 Python?>,其实是在Python未来会很火的一个基础条件下,但是我觉得光光说学习Pyhon这件事,你首先得明白三件事: --如何判断你学习编 ...

  3. 编程软件python怎样开始学-编程零基础应当如何开始学习 Python?

    编程零基础应当如何开始学习Python 我觉得每个人学习新东西之前脑海里应该有个大致的地图和路径 比如学习编程,首先脑海里要比较清晰的思考寻找过下面几个问题的答案什么是编程 为什么学编程 编程可以干什 ...

  4. 入门Python难不难?零基础到底要怎么学Python?

    近几年的Python编程发展得非常好,又因为人工智能的发展而发展.入门Python难不难?零基础到底要怎么学Python?本文,小分享入门Python需要掌握的知识. 1.数据库:Python在数据库 ...

  5. 零基础学python知乎-编程零基础应当如何开始学习 Python?

    这个问题下面这么多人推荐了这么多 Python 资源,估计零基础新手看到了会眼花缭乱吧. 作为非计算机专业出身.自学编程的过来人,我知道想找到一份适合自己的入门教程不容易.不如就在这里分享一下,如何鉴 ...

  6. python入门需要多久-零基础小白多久能学会python

    学习任何一门编程语言,都是为了去实现一个个项目,来解决实际的问题.无论项目是大还是小,都关联着许多知识与技能. 例如要写一个「文件资源管理器」的应用,就需要MVC设计模式.组件化构建.对象集合及操作. ...

  7. 小白到学会python要多久_零基础小白多久能学会python

    学习任何一门编程语言,都是为了去实现一个个项目,来解决实际的问题.无论项目是大还是小,都关联着许多知识与技能. 例如要写一个「文件资源管理器」的应用,就需要MVC设计模式.组件化构建.对象集合及操作. ...

  8. 类似零基础学python的小说_零基础小白十分钟用Python搭建小说网站!Python真的强!...

    零基础小白十分钟用Python搭建小说网站!Python真的强!-1.jpg (128.29 KB, 下载次数: 0) 2018-10-8 18:51 上传 Python 和放大镜的二进制代码 人生苦 ...

  9. 零基础编程入门python视频-编程零基础应当如何开始学习 Python?

    Python很适好入门,尤其对于零基础,但是有些前置知识必须要清楚,不是程序代码计算机之类的认知,但泛舟认为比那些更重要的东西. 首先,为什么要程序?不管是为了完成任务还是为了炫耀技术还是为了什么,它 ...

最新文章

  1. 力扣(LeetCode)刷题,简单题(第19期)
  2. Angular 路由
  3. html中open打开新网页,JavaScript-打开新窗口(window.open)
  4. EL 表达式 JSTL 标签库
  5. IT真的很重要,还是会被边缘化?
  6. 如何用数学方法估算一个女生前男友的数量?
  7. android 自定义button,android – 如何添加自定义按钮状态
  8. 循环机换变速箱油教程_汽车变速箱油啥时更换?重力换和循环机换有啥区别?注意啥?...
  9. 2021-07-05 页面的生命周期
  10. kubernetes视频教程笔记 (10)-资源清单yaml常用字段解释
  11. python中capitalize函数_python capitalize
  12. C# ZIP文件压缩和解压
  13. 台式计算机分享无线网,台式机如何去共享wifi
  14. Word/WPS文档中缩小行距
  15. 高等代数 多项式环(第7章)3 一元多项式的根与不可约多项式
  16. 柔宇科技掀起的柔性电子潮流,正在加速改变我们的生活
  17. 17暑期ACM俱乐部个人训练赛第1场 (石油oj) 7.24号
  18. json的格式是什么?json的作用是什么?json是如何传递数据的?
  19. c++ ODBC使用
  20. 洛谷_2762 太空飞行计划问题

热门文章

  1. leetcode 136. Single Number
  2. 异常检测概览——孤立森林 效果是最好的
  3. NPM:Cannot read property 'pause' of undefined
  4. JQuery dataTable 扩展+Ajax Post,Get一些基本操作(一)
  5. LightOJ - 1265 概率
  6. phpstorm 使用技巧
  7. Android系统的进程分类
  8. ZOJ 3822 Known Notation(2014牡丹江Regional K题)
  9. WPF 4.0 DatePicker 快速录入
  10. 黑马程序员--打印流、序列输入流、Vector 类