最初的问题

我目前正在教我弟弟编程。他完全是个初学者,但很聪明。(他真的很想学)。我注意到我们的一些会议陷入了一些小细节,我觉得我不是很有条理。(但这篇文章的答案有很大帮助。)

我怎样才能更好地有效地教他?是否有一个逻辑顺序,我可以用一个概念一个概念地运行?是否有什么复杂的问题我应该在以后再讨论?

我们正在使用的语言是Python,但任何语言的建议都是受欢迎的。


如何提供帮助

如果你有好的答案,请在你的答案中添加以下内容:

初级练习和项目想法 初学者教学资源 屏幕视频/博客文章/免费电子书 印刷适合初学者的书籍

请用链接描述资源,以便我可以看一看。我想让每个人都知道,我确实在使用其中的一些想法。你提交的内容将在这篇文章中汇总。


初学者在线教学资源:

A Gentle Introduction to Programming Using Python How to Think Like a Computer Scientist Alice: a 3d program for beginners Scratch (A system to develop programming skills) How To Design Programs Structure and Interpretation of Computer Programs Learn To Program Robert Read's How To Be a Programmer Microsoft XNA Spawning the Next Generation of Hackers COMP1917 Higher Computing lectures by Richard Buckland (requires iTunes) Dive into Python Python Wikibook Project Euler - sample problems (mostly mathematical) pygame - an easy python library for creating games Invent Your Own Computer Games With Python Foundations of Programming for a next step beyond basics. Squeak by Example Snake Wrangling For Kids (It's not just for kids!)


推荐印刷书籍的教学初学者

加速c++ Python编程绝对初学者 Charles Petzold编写的代码 Python编程:计算机科学介绍第二版


当前回答

我不知道是否有人在这里提到过,但是你可能想看看Zed Shaw的《用艰难的方式学习Python》

希望这能有所帮助

其他回答

首先问他这个问题:“你想用你的电脑做什么事情?”

然后选择一组符合他的答案的活动,并选择一种允许这些事情完成的语言。如果它是一个简单的(或可简化的)脚本环境(例如Applescript, Ruby,任何shell (Ksh, Bash,甚至.bat文件),那就更好了。

原因如下:

如果他对结果感兴趣,他可能会比你让他数斐波那契兔子更有动力。 如果他得到了他喜欢的结果,他可能会想出你创造的活动的变化。 如果你在教他,他(目前)还没有追求一份正经的职业;以后总是有时间切换到“行业实力”语言的。

如果你的兄弟有iTunes,他可以下载新南威尔士大学理查德·巴克兰教授的计算机科学入门课程的视频。他是一个有吸引力的讲师,涵盖了计算和C语言的基础知识。如果不出意外的话,让你的兄弟把视频作为背景播放,一些概念可能会通过潜移默化的作用慢慢地吸收进去。:)

COMP1917高等计算- 2008年会议1 http://deimos3.apple.com/WebObjects/Core.woa/Browse/unsw.edu.au.1504975442.01504975444

如果链接不起作用,这里有一个路径:

Home -> iTunes U ->工程-> COMP1917高级计算- 2008会话1

关键的是,这个人需要有一些他们想要解决的问题。如果你没有一个你想要编写的程序(并且是一些合理且定义明确的东西,而不是“我想要编写下一个Quake!”),那么你就无法学习编程,因为你没有任何激励你的东西。我的意思是,你可以读一本书,粗略地了解一种语言的语法和语义,但除非你有一个你想要编写的程序,否则你永远不会迎难而上。

如果这种推动力存在,那么其他一切都只是次要细节。

如果你想教授编程的基础知识,而不是特定语言,有一个叫Scratch的应用程序是在麻省理工学院创建的。它旨在帮助人们培养编程技能。当用户创建Scratch项目时,他们学会了创建条件、循环等。还有一个scratch项目社区,可以从那里下载项目——这样你就可以探索其他人的程序,看看他们是如何构建的。

我认为Python是一种非常好的开始语言::-)

我建议你试试http://www.pythonchallenge.com/

它就像一个小冒险,每个解决方案都将你链接到一个新的好问题。

解决问题后,你可以进入一个不错的论坛,讨论你的代码,并看到其他人创建了什么。