最初的问题

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

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

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


当前回答

你的问题取决于你兄弟的年龄和教育程度,但如果他是一个孩子/青少年,我建议你先做一些GUI编程或图形编程(使用Canvas等)。看起来不错,而且效果立竿见影。算法很无聊,对年轻人(比如说15岁之前)来说太抽象了。

当我开始在ZX Spectrum上编程时(我大概12岁),我喜欢在屏幕上画各种各样的东西,这仍然很有趣。我直到18岁才真正了解算法技术。不要被这种“简单”的编程是错误的开始所误导;学习它的人的兴趣是它最重要的部分。

所以,我会研究PyKDE, PyGTK, PyQt或Python + OpenGL(网上当然有一些教程,我知道一些捷克语,但这对你没有帮助:))。

当然,如果你的哥哥比你大,并且接受过数学方面的教育,你可以直接学习算法等。

其他回答

Python编程绝对初学者

Python编程绝对初学者封面http://safari.oreilly.com/images/1592000738/1592000738_xs.jpg

不管他们写什么,让他们在第一次运行时在调试器中逐行逐行地检查。让他们自己看看电脑在做什么。这消除了许多神秘感,减少了恐惧(“哦,每一行真的都那么简单!”),并帮助他们学习调试技能,并认识到为什么常见错误是常见的(以及为什么它们是错误)。

书籍:面向孩子、父母和祖父母的Java编程(PDF)

我没有使用那本书学习的个人经验,但它看起来很不错,因为它很快就能产生一些可见的东西,而且没有在语法细节上花费太多时间。有人试过用那本书吗?

If he is interested than I wouldn't worry about focusing on games or whatnot. I'd just grab that beginners 'teach yourself x' book you were about to throw and give it him and let him struggle through it. Maybe talk about it after and then do another and another. After then I'd pair program with him so he could learn how shallow and lame those books he read were. Then I'd start having him code something for himself. A website to track softball stats or whatever would engage him. For me it was a database for wine back in the day.

在那之后,我会开始真正的书籍,领域设计等。

我认为一旦他掌握了基本知识(变量,循环等),你应该试着帮助他找到他感兴趣的具体内容,并帮助他学习实现这一目标的必要条件。我知道如果我对某件事感兴趣,我会更倾向于去做,也更有动力去做。同时,确保让他在一些更棘手的问题上挣扎,没有什么比你自己解决问题的那一刻更令人满足的了。