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

这个问题下面这么多人推荐了这么多 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.comv2-d60440d4a0bbebb2e390169393ae6ff8_180x120.jpg

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值