最初的问题

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

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

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


当前回答

无论你选择哪种语言和环境,如果学生是出于专业原因或“真正的”编程(不管那是什么)而学习,让他们先在纸上写下他们的初始程序,然后带着它们去运行。返回输出和/或错误结果,并让他们在纸上修复错误。

刚开始,这并不比在屏幕上执行并点击运行更难,但当他们开始发现bug的奇妙世界时,事情会变得容易得多。

1)简短地说:“你好,世界!”-type仍然有一些逻辑和/或计算的程序,对一些可能有bug的程序这样做

其他回答

I would recommend also watching some screencasts - they are generally created in context of a specific technology not a language, though if there's Python code displayed, that'll do :). The point is - they're created by some good programmers and watching how good programmers program is a good thing. You and your brother could do some peer programming as well, that might be an even better idea. Just don't forget to explain WHY you do something this way and not that way. I think the best way to learn programming is from good examples and try not to even see the bad ones.

学习任何东西最好的方法就是从基础开始。你可以找到任何一本好的教科书来解释什么是编程,内存,算法。

下一步选择语言,这取决于老师知道什么或者学生为什么想学。

然后就是代码,代码,代码。对书中的每个例子进行编码。然后稍微改变它来做另一个动作。学习编程是一个主动的过程,而不是被动的过程。你不能只读了Dietal写的c++如何编程,然后就指望在阅读时不主动地编写c++代码。

即使你是一个有经验的程序员,写书中的代码来学习一些新东西也会有帮助。

不如这样:纳特·托金顿(Nat Torkington)的《培养下一代黑客》。

《谁害怕c++》 由海勒

也许值得一试

一旦他掌握了基本知识,我建议他去河内塔作为一个很好的锻炼。 如果你有木制玩具,我建议你从木质玩具开始;让他试着自己解决这个问题,并系统地描述他的方法。告诉他递归在哪里发挥作用。给他解释一下,棋局的多少取决于棋牌的多少。 然后让他写一个程序,用你选择的语言打印出动作的顺序。