最初的问题

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

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

我们正在使用的语言是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编程:计算机科学介绍第二版


当前回答

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

其他回答

用现实世界的类比和想象的人物来教他们编程。比如当我教人们变量和控制语句的时候。

通常我从计算器的例子开始。我说,想象你有一个盒子,每个变量都有10个卡板,上面印着数字0 - 9。假设这个盒子一次可以装一个纸板,用类似的方法解释编程元素是如何工作的

并强调每个操作符是如何工作的。像简单的'='操作符一样,总是先将右边的值计算为一个值。然后将该值放入名为num_1(变量名)的框中

这是非常非常有效的,因为他们能够非常快速地想象流动。

一些额外的信息可以附加到Jason Pratt之前关于Alice的帖子中…具体来说,是一个讲故事的爱丽丝变体。

虽然这项研究针对的是中学女生,但你可能会觉得凯特琳·凯莱赫撰写的白皮书很有趣。

首先,我认为已经有了一些很好的答案,所以我会尽量不欺骗太多。

让他们写大量的代码,让他们不停地问问题,让他们的大脑保持流动。 我想说的是,不要陷入真正详细的信息,直到他们遇到这些信息的含义,或者他们问。

我认为我要确保的最重要的一点是他们理解框架的核心概念。我知道你正在使用Python(我对此一无所知),但例如,使用ASP。NET让人们理解模型背后的页面/代码可能是一个真正的挑战,但关键是他们理解它。举个例子,我最近在论坛上遇到了一个关于“我应该把我的数据访问代码放在哪里,在“cs”文件中还是“aspx”文件中”的问题。

所以我想说,在大多数情况下,让他们指引方向,在他们需要的地方支持他们,并提出更多的问题来保持兴趣。只要确保他们有基本的基础,不要让他们在会走之前就跑。

好运!

一旦你教会了他们如何编程,他们可能会想学习如何开发软件。 为此,我认为格雷格·威尔逊的软件木工课程很棒。它还使用Python作为学生的语言。

我建议采用类似于《加速c++》这本书的方法,在这本书中,它们涵盖了c++中通常对编写简单程序有用的部分。对于编程新手来说,我认为花点功夫就能展示一些东西是保持他们兴趣的好方法。一旦你掌握了Python的基础知识,那么你就应该坐下来,让他来实验这门语言。

在我这学期的一门大学课程中,他们采用了一种名为“基于问题的学习”(PBL)的方法,即通过讲座来激励学生使用不同的方法来解决问题。既然你哥哥很热心,你也应该采取类似的方法。让他做一些小项目,让他自己想办法。一旦他完成了,你可以通过他的方法,并与不同的方法进行比较和对比。

如果你能给他适当的帮助,引导他在正确的方向,那么他应该没事。为他提供一些好的网站和书籍也是一个好主意。

我还建议在开始阶段远离IDE。使用命令行和文本编辑器将使他更好地理解编译/汇编代码所涉及的过程。

希望我能帮上忙。:)