最初的问题

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

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

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


当前回答

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

其他回答

一个很好的python课程是麻省理工学院的A Gentle Introduction to Programming Using python。网上都是免费的,你不必是麻省理工的超级学生也能理解它。

编辑[Justin Standard] 本课程使用这本免费的在线书籍:如何像计算机科学家一样思考 我确实发现它很有用。

对我来说,在IDE中探索和实验帮助我学习了Java和Visual Basic,但我学习编程的基础是艰苦的:Perl 5。那时候还没有一个免费的IDE,所以这意味着在记事本中输入代码,保存它,然后运行perl解释器。

我想说ide使学习编程基础更容易。先试试控制结构和变量。用Java说:

int a = 5;

for (int i = 0; i < a; i++) {
     System.out.println("i is now " + i);
}

基本上,简单地学习控制结构和变量就可以让初学者开始编写有趣的东西。

你可以试试爱丽丝。这是一个为编程入门课程设计的3D程序。

对于新程序员来说,最大的两个障碍通常是:

语法错误 动机(写一些有意义和有趣的东西而不是做作的)

Alice使用拖放界面来构造程序,避免了语法错误的可能性。Alice允许你构建3D世界,让你的代码控制(简单的)3D角色和动画,这通常比实现链表有趣得多。

有经验的程序员可能会把Alice当作玩具,嘲笑拖放代码行,但研究表明这种方法是有效的。

免责声明:我为Alice工作过。

There is a book called Code. I can't remember who wrote it, but it goes through the basics of a lot of stuff that we (programmers) know and take for granted that people we talk to know also. Everything from how do you count binary to how processors work. It doesn't have anything dealing with programming languages in it (well from what I remember), but it is a pretty good primer. I will admit that I am also of the school that believes you have to know how the computer works to be able to effectively program things for it.

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