原文:
Why Python is a Great First Language
作者:Elliott Hauser
翻译:黑色巧克力
本文作者列举了一些Python特性,并认为Python是最适合入门的编程语言,一起来看一下。
最近发表了三篇关于我的艺术史背景是如何影响我教学的文章。现在要分享一篇,为什么Python对于青少年和成年人是入门语言的最佳选择。
伟大的入门编程语言有什么特征呢?或者换一种方式问,“当我们教他们编程时,应该给予他们什么?”对于成年人和青少年学生,我认为以下五点非常重要。
-
非常棒的首次体验
,就像一本书的第一页,首先需要“入迷”,学习新知识不可避免的会遇到挫折,但要有持续的热情和好奇心,这对于那些从未接触过编码的年轻人来说是至关重要的;
-
Web编程的能力
,对于职业发展和程序工艺来说,Web编程越来越重要,学生有机会就应当掌握一定的Web架构基础;
-
桌面编程能力
,尽管将来趋势将更多的转移到Web应用上,但没什么能比开发和运行一个本地程序来的直接;
-
有市场的职业技能
,尽管在学术和业余编程中已经非常出色,但教授学生的技能在职业环境中也应该能派上用场;
-
社区支持和轻松的语言环境
,这里再一次强调,对于那些从未接触过编码的年轻人来说是至关重要的。
一些老师或者学生可能不同意这些作为入门语言的必要条件。但我的观点和经验是,没有任何一门语言能像Python一样做到以下五点。
按照惯例,用户写的第一个程序是打印“Hello World”。在所有实现“helHello World”程序的语言中,Python可以说是最简单的。只需要在Python编译器中简单的输入以下这些,然后按下回车。
Interactive Python Console
>>> print("Hello World")
Hello World>>>
这个互动示例值得尝试!
Python代码的可读性使它成为入门语言的最佳选择,尤其是当它与语法冗长明显的Java语言对比时:
public class HelloWorld { public static void main(String[] args) {
System.out.println("Hello, World");
}
}
编写以上Java代码后,还需要进行编译,然后在命令行运行。这些不可避免的流程让学生觉得编程困难。而那些输入 print(“Hello World”) 然后按下回车就能实现的学生,会有机会和信心学习更多。
Web上Python广为熟悉,不同于C.Frameworks这样的低级语言,而像Django,Pyramid和Flask,可以让学生创造出真正的Web应用程序,这类应用程序与他们每天使用的网站一样强大。Flask是我个人非常喜欢传播的语言,因为它与免费的Heroku账号组合,能让学生在一个小时之内部署他们自己的简易博客。添加一条web应用的响应路径也是如此简单。
@app.route("/about")def about():
return render_template("about.html", now=datetime.datetime.now())
这几行代码并不简单,但几次课程之后学生便可以自己理解。在信心和好奇的驱使下,学会以最基本的方式响应Web应用请求,也是巨大的进步。
专为Web设计的PHP和JavaScript语言限制了学生对Web的开发,然而Python在本地计算机开发同样广为熟悉。Pygame,wxPython和其他为桌面程序使用的开发库,让学生勇于建立和运行他们自己的桌面应用。Katie
Cunningham写了一本我认为是
关于Pygame教学的权威指南
的书。我使用Pygame教青少年和毕业生开发桌面应用,乐趣多多。
下面是一款被称为Starpusher的游戏,强烈推荐
教学开发
。
不同于Scratch或者Logo语言教学,Python在专业和学术界有更广泛的用途。它是一门可以伴随学生开始和成长的语言。如果学习低级语言会发现Python与C紧密融合,而探索如Ruby的更高级语言会发现也能平滑过渡。如果想对Web应用程序进行更紧凑的控制将发现Javascript技术能与Python
Web框架很好地结合在一起。倘若要探索像函数式编程的范例,会发现可以在不学习一门新语言的情况下实现。
然而最重要的是,开始编程时有更好体验的学生,会有足够的意愿和好奇心去发展最符合自己目标的专业技能。
我之前写过如何让代码有内涵。学生参加社区交流会就是再明显不过的方法,我也常去参加(更多信息点击这里:http://blog.trinket.io/art-history-programming-meetups/)。Python社区交流会必然最受欢迎,因为那是开始探索事物真相和接触未来挑战的绝佳场所。
样例实际发挥作用的部分是内置于Python的Turtle组件,它提供了简单有效的方式去教授抽象的Python基础知识。Turtle组件第一次被MIT’s Seymour Papert采用,后来到了1960年在设计Logo语言中得到进一步推广。
【
Python机器学习实战
】
由超级数学建模和机器学习
一线实战专家
唐宇迪老师联合推出
现已经在腾讯课堂火爆开课
唐宇迪
:同济大学计算机博士,专注于机器学习与计算机视觉领域,深度学习领域一线实战专家。
参与多个国家级计算机视觉项目,多年数据领域培训经验,丰富的教学讲解经验,出品多套机器学习与深度学习系列课程,课程生动形象,风格通俗易懂。
课程内容 :
1. 快速掌握Python库的使用方法并进行实战演示。
2. 实例演示如何应用机器学习算法解决实际问题。
3. 使用Python库完成建模与评估工作。
{}课程大纲{}
第一章:Python快速入门(免费试听)
机器学习必备Python基础,快速掌握Python基础语法与常用结构。
第二章:回归算法(免费试听)
走进机器学习世界的第一个算法,详解回归算法的数学原理推导与求解过程。由回归算法过度到逻辑回归算法,讲解最优化原理与梯度下降求解方法。
第三章:科学计算库Numpy
Python科学计算库Numpy,在数据科学领域我们面对的都是矩也就是数据是由样本和特征所组成的,详解Numpy里常用函数的使用方法。
第四章:数据分析处理库Pandas
Python数据分析处理库Pandas,从数据的读取和预处理开始,讲解如何使用Pandas进行数据的分析和处理操作。
第五章:可视化库Matplotlib
Python可视化库Matplotlib,讲解如何对分析的结果进行可视化展示以及常用函数使用方法。
第六章:使用Python库分析科比的生涯数据
使用Python库分析科比的直接生涯数据,从数据读取开始,一步步讲解如何使用Python进行数据预处理以及建模操作。
第七章:案例实战—信用卡欺诈检测
案例实战信用卡欺诈检测,从问题的挑战开始,一步步解决样本不均衡数据,提出两种解决方案,基于逻辑回归建立模型并进行模型评估。
第八章:决策树与随机森林
从熵原理开始,详解决策树建立的衡量标准,实例讲解决策树节点的选择方法与决策树剪枝策略并由决策树算法延伸到随机森林。
第九章:Kaggle竞赛案例—泰坦尼克获救预测
选择经典Kaggle竞赛案例,从数据预处理开始一步步完成整个模型的建立过程。
第十章:支持向量机算法
经典算法支持向量机,从原理推导开始讲解SVM如何得出最好的分割线并引入核函数打造一个强大的分类模型。
第十一章:神经网络基础
把复杂的神经网络模型分模块讲解,逐个攻破神经网络中所涉及的每一个细节知识点。
第十二章:神经网络架构