为什么说Python是伟大的入门语言

本文作者列举了一些Python特性,并认为Python是最适合入门的编程语言,一起来看一下。

最近发表了三篇关于我的艺术史背景是如何影响我教学的文章。现在要分享一篇,为什么Python对于青少年和成年人是入门语言的最佳选择。

伟大的入门编程语言有什么特征呢?或者换一种方式问,“当我们教他们编程时,应该给予他们什么?”对于成年人和青少年学生,我认为以下五点非常重要。

学生从入门语言获得的五样东西

  • 非常棒的首次体验,就像一本书的第一页,首先需要“入迷”,学习新知识不可避免的会遇到挫折,但要有持续的热情和好奇心,这对于那些从未接触过编码的年轻人来说是至关重要的;
  • Web编程的能力,对于职业发展和程序工艺来说,Web编程越来越重要,学生有机会就应当掌握一定的Web架构基础;
  • 桌面编程能力,尽管将来趋势将更多的转移到Web应用上,但没什么能比开发和运行一个本地程序来的直接;
  • 有市场的职业技能,尽管在学术和业余编程中已经非常出色,但教授学生的技能在职业环境中也应该能派上用场;
  • 社区支持和轻松的语言环境,这里再一次强调,对于那些从未接触过编码的年轻人来说是至关重要的。

一些老师或者学生可能不同意这些作为入门语言的必要条件。但我的观点和经验是,没有任何一门语言能像Python一样做到以下五点。

1. 非常棒的入门体验

按照惯例,用户写的第一个程序是打印“Hello World”。在所有实现“helHello World”程序的语言中,Python可以说是最简单的。只需要在Python编译器中简单的输入以下这些,然后按下回车。

这个互动示例值得尝试!

Python代码的可读性使它成为入门语言的最佳选择,尤其是当它与语法冗长明显的Java语言对比时:

编写以上Java代码后,还需要进行编译,然后在命令行运行。这些不可避免的流程让学生觉得编程困难。而那些输入 print(“Hello World”) 然后按下回车就能实现的学生,会有机会和信心学习更多。

2. Web编程

Web上Python广为熟悉,不同于C.Frameworks这样的低级语言,而像Django,Pyramid和Flask,可以让学生创造出真正的Web应用程序,这类应用程序与他们每天使用的网站一样强大。Flask是我个人非常喜欢传播的语言,因为它与免费的Heroku账号组合,能让学生在一个小时之内部署他们自己的简易博客。添加一条web应用的响应路径也是如此简单。

这几行代码并不简单,但几次课程之后学生便可以自己理解。在信心和好奇的驱使下,学会以最基本的方式响应Web应用请求,也是巨大的进步。

3. 桌面应用

专为Web设计的PHP和JavaScript语言限制了学生对Web的开发,然而Python在本地计算机开发同样广为熟悉。Pygame,wxPython和其他为桌面程序使用的开发库,让学生勇于建立和运行他们自己的桌面应用。我使用Pygame教青少年和毕业生开发桌面应用,乐趣多多。下面是一款被称为Starpusher的游戏,强烈推荐教学开发。

这款游戏可以从pygame.org下载,或者从我Github的仓库获取(https://github.com/silshack/starpusher),它也可以在Raspberry Pis平台上预装。

4. 专业技能

不同于Scratch或者Logo语言教学,Python在专业和学术界有更广泛的用途。它是一门可以伴随学生开始和成长的语言。如果学习低级语言会发现Python与C紧密融合,而探索如Ruby的更高级语言会发现也能平滑过渡。如果想对Web应用程序进行更紧凑的控制将发现Javascript技术能与Python Web框架很好地结合在一起。倘若要探索像函数式编程的范例,会发现可以在不学习一门新语言的情况下实现。

然而最重要的是,开始编程时有更好体验的学生,会有足够的意愿和好奇心去发展最符合自己目标的专业技能。

5. 社区支持

我之前写过如何让代码有内涵。学生参加社区交流会就是再明显不过的方法,我也常去参加(更多信息详见http://blog.trinket.io/art-history-programming-meetups/)。Python社区交流会必然最受欢迎,因为那是开始探索事物真相和接触未来挑战的绝佳场所。

样例实际发挥作用的部分是内置于Python的Turtle组件,它提供了简单有效的方式去教授抽象的Python基础知识。Turtle组件第一次被MIT’s Seymour Papert采用,后来到了1960年在设计Logo语言中得到进一步推广。2009年关于组件的最新特征介绍可参见http://blip.tv/file/1947495。Trinket使得Turtle组件更易使用和学习。更多信息可以查看我们主页上的交互示例(https://trinket.io/)。

使用Python教学吧!

我的下一篇文章会写关于Python教学的最好互动资源。同时我在下面列了一份清单,包括为初学者提供帮助的社区资源,以及其他讨论为什么Python是一门伟大的入门语言的文章,希望对你有所帮助!

  • Python软件基金会维护的新手教程和指南,它们都有对新语言支持的特征。

https://wiki.python.org/moin/BeginnersGuide https://docs.python.org/2/tutorial/index.html#tutorial-index

  • Python教育的特殊兴趣组。

https://www.python.org/community/sigs/current/edu-sig/

  • 公开于Python.org的系列优秀视听资源链接。

https://www.python.org/doc/av/

  • 从Java转向Python的大学研究论文。非常感谢北卡罗来纳州州立大学研究生Michael Head的贡献。

http://dl.acm.org/citation.cfm?id=1409847

  • 生活骇客文章写到Python在关于最好的入门语言读者投票中获得了第一。

http://lifehacker.com/five-best-programming-languages-for-first-time-learners-1494256243/1497409477

  • Jessica McKellar最近PyTennessee的发言陈述Python学校教育事件,以及一些我们可以支持的特定的操作步骤。
  • Jessica McKellar最近在PyTennessee报告中陈述了Python教育在学校的情况,并指出我们可以采取一些具体行动步骤表示支持。

http://web.mit.edu/jesstess/www/pytennessee_keynote.pdf

  • 你好世界程序讲述为什么Python是伟大的入门语言。

https://thehelloworldprogram.com/python/why-python-should-be-the-first-programming-language-you-learn/

原文发布于微信公众号 - CSDN技术头条(CSDN_Tech)

原文发表时间:2017-05-23

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏平凡文摘

理解程序员并不是一项简单的任务, 即使你当过程序员

1524
来自专栏chenssy

八年Java架构学习经验总结:第六点尤为重要!

你有没有静下心来思考过:同样是做了x年Java开发,为什么你的技术比别人差很多?为什么别人每月28K你却只有10K?

592
来自专栏Golang语言社区

每个优秀程序员必须具备的技术技能

我特别支持软件开发者在他们掌握技术技能的同时去学习“软技能”——事实上,我写了一本关于这方面的书——但是不可否认的是:技术技能很重要。 我的意思是,如果你不能编...

3426
来自专栏纯洁的微笑

如何成为一位「不那么差」的程序员

也不知道啥时候我居然成人生导师了。当然我不排斥这些问题,和大家交流都是学习的过程。

1223
来自专栏java一日一条

每个优秀程序员必须具备的技术技能

我特别支持软件开发者在他们掌握技术技能的同时去学习“软技能”——事实上,我写了一本关于这方面的书——但是不可否认的是:技术技能很重要。

831
来自专栏ytkah

“小程序矩阵”时代来临 “小程序互跳”的N种玩法

  两个小程序终于实现跳转了,对于小程序来说,这是具有划时代意义的。我们来剖析一下这个能力的意义和玩法儿。6月21号晚官方放出新能力后,萤连长和几个小程序开发商...

6075
来自专栏SDNLAB

Brocade发布SDN APP助力OpenDaylight性能提升

日前,Brocade介绍了一款app,能解决运行在OpenDaylight软件定义网络环境流量相关的大量问题。该特性将有助提升OpenDaylight性能。 ?...

3626
来自专栏软件测试经验与教训

如何管理测试项目(二)

2926
来自专栏灯塔大数据

探秘 | 写了一百万行代码是什么体验?

搞程序的累计写到一百万行代码到底是什么体验呢? 如果一百万是标量的话,来和大家研究一下这个数据,假设最好的情况,一天100行高质量代码,一年36500,100/...

3974
来自专栏CDA数据分析师

【扫盲】五分钟了解Python

? 前言 Python 是当下十分流行的编程语言,那么用 Python 可以做些什么? 有些什么优势、缺点?在这篇文章中都能找到你的答案。 如何描述 Pyth...

2127

扫码关注云+社区

领取腾讯云代金券