自学网站编程?这篇国外网友的教程被fast.ai创始人点赞
还记得你大学时的Java、C、Python等语言是怎么学习的吗?让我们打开经典教材和网络课程看一下,几乎都是下面的套路:
学习变量、数组、对象等专业词汇;
查看编程示例,依葫芦画瓢写代码;
重复以上步骤,直到学完全部课程。
然而一位程序员Jeff Olsen却认为,这种教学方式太过时了。
编程和计算机科学的关系,就如同烹饪和化学的关系一样。即使没搞清楚化学变化,一样可以做出美味的煎蛋。
为此,他提出了一套编程教学的新思路,Jeff的想法在Haker News上获得了广大程序员的赞同。
甚至连课程平台fast.ai的创始人Jeremy Howard也来捧场:“这与我们平台上深度学习的教学方法相似。”
有网友指出,对于初学者而已,归纳推理能力的形成非常重要,
这种方法不仅对老师有意义,对于自学编程的人来说也不失为一种更好的学习方法。
改变教学方法
Jeff提出的教学方法叫做“预测至上”。先给学生一段简单的代码,让他们预测会发生什么,然后从运行结果中学习语言的一些特性。
为此,Jeff提出了编程教学的5条标准,符合这些标准的教学课程才能将知识点传达到位:
还不知道此语法的学生,能找出这段代码的作用吗?
这段代码是否与以后可能遇到的代码合理的相似?
命名的文字是否有意义,变量是否命名正确?
问题是否允许学生专注于代码中最重要的部分?
代码示例是否需要某些先验知识,还是能让所有人都能理解?
具体来说,就是不直接提概念,而是先提出一个难题供学生解决。
这个难题包含了当天的知识要点,然后要求学生根据这个难题创造一些新的代码,在解决问题的过程中学习专业术语。
这不仅是一份给教师的指南,我们在学习编程时,最好也带着问题去思考、学习代码,而不是机械地去重复书中的示例,这样才能真正掌握技能。
几个例子
Jeff首先展示了编程最基本的Hello World程序,他的方法与传统方法略有不同。我们先看这段代码:
name="Tamara"
print("Hello"+name)
运行以上程序会发生什么?
一般,我们凭借直觉能猜到运行结果中会出现Tamara,而实际的运行结果是HelloTamara,中间没有空格。
接下来如何让程序输出带空格的结果,必然要进行一轮调试。
在这个过程中,Jeff没有说过字符串、变量等概念,但是在解决这个问题的过程中,我们已经掌握了print函数、字符串的拼接等一系列用法。
Jeff还举了几个例子,希望能纠正传统教学课程里死板的内容。
1、条件判断
传统教学:
if1>2:
print("1大于2")
else:
print("1不大于2")
在这个例子中,学生只能查看代码,而不能通过使用代码学会条件判断。
Jeff建议把代码改成:
age=15
ifage>=18:
print("你可以购买R级电影票")
else:
print(f"再过{18-age}年你才满18岁")
终端中将输出什么内容?你的回答应该是:再过3年你才满18岁。
接着,Jeff丢出了几个问题:
整段代码里都没有3,你怎么知道会出现“ 3年”?我们如何更改程序来显示其他语句呢?缩进对我们的程序有什么作用。
通过这3问,学生知道了if-else语句的缩进格式,还知道如何用通过更改条件来实现其他的判断。
2、数组
传统教学:
a=[3,2,7,5,3,9]
print(a[2])
#returns7
在这个示例中,为何a[2]的结果是7,没学过编程的人可能无法理解,甚至会产生错误的理解:哦,原来是输出第2个数字后面的一个数字。
Jeff建议改成:
favorite_foods=["寿司","玉米粽子","披萨","烤鸡肉"]
print(favorite_foods[2])
这段程序的输出结果会是什么?我们如何打印出第一种食物、最后一种食物?如果把最后一句改成favorite_foods[10]会发生什么?
通过这个简单的示例,学生可以了解数组、索引已经索引超出范围的错误。
3、对象
传统教学
ClassDog:
def__init__(self):
pass
defspeak(self):
print("woof!)
Fido=Dog()
Fido.speak()
这段代码虽然用小狗做例子,看似生动有趣,其实存在着一些问题:
1、狗并不存在于网络空间中。
2、使用9行代码来创建和调用函数,实际可以更短。
3、这种方法创建的所有狗都只有相同的功能,那为何还要创建一个类呢?
Jeff建议改成:
user1=User("Ty","Tdog@aol.com",16,"Pa$$word")
user2=User("Sarai","SMendes@hotmail.com",15,"Kangaroo!")
user3=User("Osu","Osu22@gmail.com",12,"12345abcde")
print(user2.age)
提问环节:第一个用户的电子邮件是什么?哪个用户的密码最弱?最后一行将输出什么?
学生通过这种方式先学习了创建对象的方法,至于代码中出现的User(),接下来就可以很自然地教他们如何创建类了。
最后附上Jeff博客的链接,希望他的方法对你学习编程有所帮助。
推荐阅读
运动型轿车是什么 运动型轿车与普通车有何区别?
运动型轿车凭借着外观酷炫,动力性能强的特点,深受国内众多消费者的喜爱。特别是在年轻消费者心目中,运动型轿车基本上是购车的首选。但是 【详细】
汽油清洗剂是什么 汽油清洗剂加在汽油里是干嘛的?
最近有很多车主反映加油的时候总是建议用汽油清洁剂。但是,大部分人还是不太了解,还有就是一部分人纳闷汽油清洗剂加在汽油里是干嘛的?汽 【详细】
中国最便宜的汽车是哪个 最便宜的汽车汇总
现在汽车已经成为了大家最常见的交通代步工具了。但是,依然还是有很多的家庭非常的需要代步工具,却买不起特别贵的汽车。所以今天,我们就 【详细】
伊莱克斯冰箱质量怎么样 伊莱克斯冰箱质量好不好?
伊莱克斯冰箱质量怎么样:在2018年全球500强企业中,伊莱克斯排名第162位,在2020年全球2000强企业中,伊莱克斯排名第1965位,可见伊莱克斯 【详细】
劳动保护用品是什么 劳动保护用品有哪些?
劳动保护用品有哪些?劳动防护用品分为特殊劳动防护用品和一般劳动防护用品,一般劳动防护用品是指未列入目录的一般劳动防护用品。以下产品 【详细】
相关新闻
- 环球观点:至今还没有阳的人,他们天赋异禀,还是另有隐情?研究结果来了
- 新动态:iPhone 15 太炸了,标准版有大提升
- 全球即时看!vivo拒绝高价低配:骁龙870+144Hz屏,12GB+256GB跌至1769元
- 实现高并发秒杀的七种方式
- 全球看热讯:3D渲染引擎 HOOPS Visualize 2023全新发布-增加对顶点着色器支持
- 世界看热讯:「升级」Hubstudio多账号安全管理浏览器之扩展中心上线啦!
- 汽车早报 - 消息称蔚来布局百万元级别电动车 广汽称将继续为讴歌中国客户提供售后服务
- 今头条!车轮上的2022∣新能源与汽车出口带动:全国乘用车零售量同比增长1.9%
- 谷歌文档新功能:看到非打印字符
- 世界新消息丨一加新机质感高级,更有多项黑科技加持,3999的价格入手值吗?
- 焦点信息:中国手机品牌在2022年拿下俄罗斯市场份额65% 但高价机一个没有
- 2022年这5款熟悉的产品向我们告别
- 即时:陈副区长事件,引出一个老生常谈的问题,腾讯是否会保留聊天记录
- 我国首个具备独立运行能力的新能源储能项目在内蒙古并网通电
- 上海奉贤区初中转学条件2023
- 新冠病毒变异逻辑的猜测
- 世界讯息:充1次用10天!史上续航最强的国产手机,太猛了
- 全球视点!10个暗藏惊喜的微信小程序,个个好用不要钱,还请低调使用
- 世界热头条丨刘强东告别他的时代?回笼640亿携孕妻现身英国,祖宅半夜被泼漆
- 更便捷!威海市立医院互联网医院上线“新冠感染门诊”