分类档案: 教学

在哈佛用软件木工教授Python

BScO7AGIMAAvVZj.jpg-中

Mike用Python教Hamlet。照片版权Chris Erdmann: //twitter.com/libcce/status/371281901191196672

I’是纽约市名为Software Carpentry的组织的一部分。它使用志愿者向大学,大型政府组织和其他感兴趣的人群教授不同级别的编程。我之前曾在哥伦比亚大学任教,上周末在哈佛大学举办,由 克里斯·埃德曼,哈佛-史密森天体物理学中心的首席图书馆员。

在使用Software Carpentry之前,我的教学经验仅限于向亲朋好友讲解编程方面的内容,以及在日本为儿童和成人教英语和法语的一年时间的一部分。教学很难。它’批评老师很容易– I’我经常发现自己是如此,而没有考虑将复杂的概念传达给一群背景和动机各不相同的学生的努力和压力。一世’ve从我最近的两次SWC活动中得出了有关如何优化教学风格的一些结论:

星期六’s Teacher line-up

运作良好的事情

  • 幽默。迈克在教程中撒了一些有趣的轶事,这使全班都很活跃。
  • 相关和有趣的主题。哈姆雷特(Hamlet)是一个不错的选择,因为面向图书管理员的观众也喜欢在拼字游戏中作弊。字典带来了几个有趣的条目,例如:  grep “。* s。* s。* s。* s。* s。* s” |
  • 添加轶事来拯救人们谷歌搜索。我认为很多程序员’他们的活动仅仅是寻找一个’已经完成了您想做的事情,并做了一些修改–或连接构建块。因此,在结束时谈论诸如 附加()  与串联加号之类的 第一+第二 ,我提到类似 双端队列()  and  格式() .

下次要记住的事情

  • 慢慢打字。我在MongoDB上工作很多,所以最终从 pymongo 进口 连接; c = 连接()  每天进入终端机20次以上。这可能变得如此之快,对于新来者来说,这样的事情似乎令人迷惑。
  • 使用带有大字体和昏暗灯光的高对比度终端,使其从房间的背面超级容易看清。

什么can advanced programmers get out 的 教学 such basic things?

  • 您’从老师和学生那里学到很多东西’s questions
  • 社区参与是简历中的一项重要资产,它向潜在的雇主表明您有能力/有能力培训未来的同事
  • 当在社会或商业上向非技术人员解释技术问题时,它有助于在教学过程中掌握现有的类比和轶事。
  • 您’会遇到许多志同道合的人,参与社区的感觉很棒。

什么did I learn?

  • 要求 图书馆。我通常使用 urllib2 从网页抓取HTML。事实证明,Urllib2只是一个用于HTTP请求的可扩展性更大的库,如下所示 stackoverflow说明.
  • 有关Git的更多信息。我在工作中使用SVN,因此不要’真的向github提交任何东西。 Git很难。 Erik是一位出色的讲师,从容不迫地从基础知识过渡到了.gitignore和diff之类的细节。
  • 什么“immutable”真正意思。我听到了很多这样的声音,这基本上意味着事情可以’被分配给一个对象。例如。的。 分裂()  的 myString.分裂()  can’t成为变量。非常简单。