最初的问题

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

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

我们正在使用的语言是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(我对此一无所知),但例如,使用ASP。NET让人们理解模型背后的页面/代码可能是一个真正的挑战,但关键是他们理解它。举个例子,我最近在论坛上遇到了一个关于“我应该把我的数据访问代码放在哪里,在“cs”文件中还是“aspx”文件中”的问题。

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

好运!

其他回答

Microsoft Small Basic是一个免费的基于。net的编程环境,旨在为初学者提供一个“有趣”的学习环境。该语言是VB的一个子集。NET,甚至包含一个Logo语言中熟悉的“Turtle”对象。该网站包含一个循序渐进的教程。

对我来说,在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工作过。

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

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