小白轻松学python,自学python入门
GitChat作者:锅玉米
分享更多IT技术,关注微信微信官方账号:GitChat技术聊天
本文主要基于作者两个月零基点300人python教学经验总结,适合零基点、负基础学习python编程语言的学生。
本文只描述方法,看这篇文章是学不到编程语言的。只要不走远路,就不会中毒。
介绍会讨论——如何从零开始学习python。
相信你看了这篇文章,脑子里一定有学习编程或者教编程的想法。本文分享的知识可以为这两个目标提供一些参考价值。
我为什么要来谈这个?这两个月,笔者在自己开发的教育平台——uband的朋友班开了一个python班。75%的申请人是零分用户,25%之前学习过,这25%中有负向用户。
怎么教?我会把课本给每个人,让他们教我。我们先来点理论学习,视频课好吗?
分析完情况,我发现了以下有趣的点:
来学习的70%都是女生。
学生和工人的比例是3:2。
大多数人每天只能学习1-2个小时。
几乎没有任何基础。
这一定是一个巨大的挑战。在这里,我将解释如何教学。
学习编程是基于理论还是训练?这个问题让我想起了我班上的学习过程。有这样一个故事。
“2012年,过年回家的火车上,我提着行李坐在拥挤的车厢里,对面的哥哥头发蓬松。我知道这可能是我的同事。从上海到贵州的24小时行程,并没有那么寂寞。因为我们讨论的是架构、算法、编程的学习……这五年来前辈给我们的建议是,你现在读的是架构、编程理论这类的书,你需要解决的问题太多了。你经验丰富,一回来就知道了。
两年多来,我没有看过关于python的任务书,用它写了七、七、八、八个上万行的脚本,解决各种问题。一群人在图书馆等着,顺手看了《Python cookbook》。大部分500页的书,我翻了那一页,等等候的人到了,我就看完了。
对不起,你已经等了多久了?
答案是“两个小时”。
这个故事让我思考了两种不同的学习模式。
学习模式——创造或模仿,首先展示两个学习者:
我想通过学习python编程来完成自己的个人网站。
希望通过学习python,比较和改进python与其他脚本语言的设计。
显然,这两个人的学习风格肯定是不一样的。
第一个人的学习重点是模仿3354,这是很多程序员的工作。在这个阶段,编程还不能说是一项创造性的工作,最多只能说编程是一项逻辑性的工作。只是模仿。
第二个显然是编程科学家。北美大学有一个研究方向叫编程语言。我以前的一些同学都在读这个专业的博士。另外,我们《网络名人》中著名编程期“zzdzxc”的同学也是这位专家。这个专家的使命是什么?3354“编写编程语言”或“改进现有编程语言”他们的工作光靠模仿是不够的。他们需要了解整个理论体系、设计原理、细节等等……他们不是靠模仿就能学会的。因为没什么好模仿的。
学习编程最大的悲剧是,cjdyf的目的是模仿,逐渐形成自己的技能,却误以为是创造新的东西。
在学习编程之前,你需要了解3354来做创造性的工作。或者做模仿工作。
创意实例:诗歌创作、生物研究、新型汽车设计、编程语言设计、新型网络容器设计。
模仿例子:英语诗歌朗诵,声乐,APP编程,开车,游泳,弹吉他,交际舞,小雕像雕刻,书法…
可见我们大部分的工作都是在模仿打字。模仿打字的时候,不需要从理论入手,需要从实践入手。比如学游泳,没有人是从看一个月的游泳书开始的。老师在水里和我说话。我就模仿他的动作,搞定。比如学英语,不用多说,所以很多人学了十几年都不会用,就是练的不够。
无论是学编程还是教编程,大部分都是模仿学习。模仿学习必须从实践或以实践为中心的训练开始。否则不看结果浪费大量时间的可能性很大。
(和我们接触过的编程学习者类似的情况有很多)
一旦我们明白了这一点,我们进行教育就容易了。也就是按照3354原则从头开始写代码。
在本文后面的部分学习如何在——中模仿python。如果你上面的目的是有创意的,那就不用看了。
那么,我们开始真正的学习吧。下面,参考我自己设计的教育流程,从零基点开始指导教育过程。
从一个故事中学习变量和判断,从妈妈买菜的故事开始。第一周是学习变量。请看下图。我们如何教授变量?这是记忆中的第一天。学习编程的第一天,就开始写代码。这是我在教育过程中必须坚持的。不管写多写少,都要从模仿开始。
如下图所示
像这样:
让我们看看代码。
#!/usr/rzdyg/python# -*-编码:utf-8-*-# @作者:Guoshushu#适合初学者# 1。变量-数字,字符串,布尔型# 2.if # 3。===# 4.printdef main (): who=肖妈妈 good_price=6 #ckdhm的价格good_description=西双版纳大白菜 #ckdhm的招牌是_便宜=假#是不是便宜_ price=5 #妈妈能接受的最高价格buy_amount=2 #准备买2kg #开始你的表演#走吧我们带一组print %s在街上看到%s,卖%d元/kg% (who,good_description, Good _ price)如果good _ price=合理_ price: print 她觉得很便宜 is _ price=True print 她买了%d斤 % (buy_amount) Else: print 她觉得很贵 is _ price=False print 她没买,带走了 #作业#1。 看day 1-homework . py # run function if _ _ name _= _ _ main _ _ :main()。看,这个代码实现了我们的需求,
#对于初学者# 1。变量-数字,字符串,布尔# 2。如果# 3。===# 4.打印出来可以注意到,我没教你学if _ _ name _="_ _ main _ ":这些东西是什么意思?相反,我们开始模仿。我们都是成年人,都是精明的。
你能理解上面的代码吗?
不,我会让我的学生自己在电脑上打出来。他们做了之后,会发现理解也没用,因为会有以下问题。
没有文件另存为。运行代码前的py;
if后面的符号是中文:(冒号)。
缩进错误书写不正确。
真真假假写成真真假假。
name写成姓名。
64位系统安装成32位python,虽然有提醒。
变量名之间使用一个空格,并报告一个错误。
….
这些问题不实际写代码是发现不了的,但好消息是一旦发现了,就不会再出错了,所以我们说编程出错要练习编程模仿,报告bug。
如何学习列表这是另一个学习列表的例子。让我们看看下面的代码:
#-*-编码:utf-8-*-# @作者:guoshududef main (): good1=大白菜 good2=空心菜 good3=菜花 good4=生姜 good5=小龙虾 #.省略100 good100=蚌壳 Print Mom saw % s %(good 1)Print Mom saw % s %(good 2)Print Mom saw % s %(good 3)Print Mom saw % s %(good 4)Print Mom saw % s %(good 5)def main 2():goods=大白菜,菠菜,菜花,生姜,小龙虾 Print Mom saw % s %(good 2)def main 3():Print - lst=[。姜,小龙虾]# list for lst _ item in lst:# Traverse print Mom saw % s %(lst _ item)if _ _ name _= _ _ main _ _ :main()main 2()main 3()我相信你看过这一段。
看上面的三个函数,就可以明白,链表数据结构的演变过程,其实就是变量不够用。用更强大的结构一次放很多数据是很自然的。
我用类似的方法教过祖先,数组等。你想如何学习它们?我给你的建议是,利用它,利用它。
3周的学习码都在我的github上,可以自己拿。当然,我不可能在一篇文章里全部说完。你可以去github下载我们的代码记录,模仿一下。
下面附件中的github地址是我们28天的教学记录和作业记录。这个聊天的同学可以尝试开始写,但是很抱歉不能提供视频教程。
经过一个月的碎片化学习,我们的学生可以完成以下作业:
这周你可以用github代码自学,我们会在聊天中讨论这个。
教学经验最好的态度就是不断犯错,不怕犯错。我们的教育告诉我们不要犯错,但是在编程中,我们写了一个bug,编译器给了我们一个错误,所以这是一个学习的机会。
看到错误的时候,心态是——。我又有了一次学习的机会。而不是——。他妈的怎么又出错了?是时候面对太多的错误了。
原因我都说完了,同时你可以跟着我的github代码学习模仿。最重要的当然是坚持,但我倾向于写成——,坚持用正确的方法学习。你可以很容易地学会它。如果你想教编程老师,请用模仿来教别人,不然会被人误会,切记。有什么问题可以在我的聊天里讨论。
前面提到编程的学生大部分是女学生,我发现她们的学习能力也是超级的。很神奇的是,他们在一个月的指导下就能基本掌握编程的基础知识,而且几乎都是每天一个小时左右。
社区的力量还是很大的。刚开始学习,配置环境,写第一行代码的时候,组里的同学也是鸡飞狗跳。我真的觉得我有勇气开一个在线编程课程来教学生动手操作。要知道,一般大家为了省事,都是用视频讲一个看似很详细的课程来避免这个麻烦。
但是,在实践中,这种效果真的是最好的。我们可以在聊天中聊一聊,我也会邀请我的学生来分享他们的学习心得。
编程类github菜鸟教程python。github包含所有4周的作业和同学提交的作业。在作业文件夹里,你可以下载它们来模仿学习。在这一个月的时间里,菜鸟教程基本已经教完了,是一个潜移默化的过程。
反馈与总结以下是学生的一些总结,我会贴出来供大家查阅。
一个月的知识总结:
学员写的部分邮件:
我真的很欣赏舒舒的编程课。这就像他给我们所有的“编码穴居人”带来了一个启发的火炬。
我的女朋友是台湾“R女孩”的组织者,她几乎也在做同样的事情。我们都相信女孩和男孩一样会编程。只是,女生教育第一人是谁?
无论如何,非常感谢。希望下次我能加入这个班。
报名之初,我以为既然这个月是毕业季,就不用上课了,只要做好论文答辩就可以了,我以为可以扩大自己的知识面。英语专业的我脑子一热就报了编程班。结果没打N篇论文的人都不好意思说要毕业了,准备答辩,毕业季帮老师做各种事情。更可怕的是,我9月份还要参加司法考试。这期间无数次想放弃编程课是真的。但我一直相信一句话,选择了路就要跪着走,所以无论如何都要把自己挖的坑填上。还好,不用每天交作业。只要我有时间,我就听我的视频课,练一个代码。如果我不明白,我就暂时放一放,再考虑一下。练完后,我会问群里的朋友,有没有过不去的。所以,这个月就这么磕磕绊绊的过去了,真的觉得自己成功了!同时感谢群里的朋友和队友们对我的帮助,耐心解答我的问题。真的真的非常感谢本尼迪克特的详细讲解,让抽象的编程知识变得通俗易懂。我也觉得当老师真的很难。每天都要录视频到深夜才能保证第二天的推送。老师都这么认真。作为学生,也要对自己负责,学好日常知识。
个人感受
我大学期间只学了简单的计算机入门,然后自己考了一个office,基本上就是考前刷了一些题,通过了,但是这和编程真的有很大的区别。随着基础知识的深入,学到更多的知识,真的感觉编程是一个全新的世界。每次开始运行代码,发现错误就很慌张。为什么我又装了窃听器?感觉成了大麻烦,学不会。但是我叔叔一直强调学好编程是一个不断调试的过程,所以我每天都被各种花哨的错误攻击。慢慢的,我的心态发生了变化。我学会分析自己的错误,一点一点改正。最后,跑步成功的喜悦真的是无法形容的。还记得画小乌龟的那一课,看着屏幕上的效果图很有成就感。联系到类的概念,我觉得编程不仅仅是解决问题,更重要的是成功的捷径,所以它有一个高度抽象的概念;字典、元组、列表等。都让死板的数据有条理。上了一个月的编程课,感觉自己有了分析解决简单问题的能力,把要实现的内容一步步规划出来,而不是只看到需求背景就慌了手脚,不知道怎么解决。这是最大的进步。
课程建议
建议在基础知识讲完之后,s2班可以有不同的导师交替讲课和讲解,这样也可以分担老师的教学责任。
服务,同时学生也可以体验不同程序员的编程思路。
不足反思
在这一个月的学习中,我发现自己举一反三的能力有待提高和加强,可能是自己练习的不够。用小背景写同样功能的代码要花很长时间。同时我也只是每周复习一下学过的知识,但是我觉得如果能讲给另一个人听会更好,这样别人也能理解我自己,然后我才真正理解了我学的东西。如果不系统总结自己的错误,有时候自己犯过的错误下次会在不经意间出现。你要多想想自己的错误,在以后的学习中不要再犯。
学习感悟
持续了一个月左右的编程课很快就结束了。在这个阶段,我基本学会了python的基本内容。虽然不能说完全精通,但至少在脑子里留下了印象。至少在叔叔的指导下,我能够输出一些代码,完成一些任务。从“一无所知”到“入门”(就是入门),我学到了很多。一开始我想自己学点编程,后来就一直没有结果。这一次,我和叔叔还有大家一起坚持下来,还是挺开心的。
但是在日常实践中,我自己的思考还是比较少,有所欠缺,经常跟着叔叔的思路走,所以独立思考和解决问题,可能是实践的太少了。所以,我写大作业的时候,基本上没有什么想法,需要叔叔建议的帮助才能完成作业(唉==#看来我的学习能力还不够强,要多做练习,多打代码)。
最近一段时间的学习,由于有一段考试周,学习断断续续,投入时间不多。往往随着任务的完成而结束(不应该)。而且平时参与小组讨论少,看书少(敲敲脑袋,反省一下自己)。
课程体验
备课细致,讲解地道,通俗易懂。
任务合理,基本能按要求完成。
非常适合这类非专业零基础的学生。
小组成员积极讨论,可以很好的帮助你解决问题。同时还有问题集,有助于复习。
下期计划
继续跟舅舅学,哈哈。
反复学习玉米的学习资料。
认真完成每天的作业。
认真总结,与同行交流。
多学习,多阅读相关资料,网站等。
敲多码,敲多码,敲多码。
不管怎样,我报了一个编程班,是基于自己的兴趣(我觉得我并不厌学)。希望能在编程课上和大家一起学习,掌握一门技术(技能多,没压力,哈哈),学以致用!
更多内容将在聊天中提供。
空谈是廉价的,给我看看你的代码。
在练习编程入门的过程中,确实是最重要的。希望看到这篇文章的同学,如果对编程学习有想法,一定不要停止看书或者虚心学习。这个技能是一行行打出来的。
相互鼓励。
记录:《郭意亮: Python 编程入门实战解析》
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。