最初的问题

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

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

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


当前回答

我不知道怎样对你弟弟最好,但我知道我是从蟒蛇开始的。我从很小的时候就开始玩各种各样的游戏,并想要制作自己的游戏,所以我的叔叔用pygame库向我介绍了python。它有很多教程,让一切都很简单(在我看来比openGL简单多了)。 它仅限于2d,但你应该从简单开始。

我的叔叔推荐python,因为他当时对它很感兴趣,但我推荐它,现在已经相当有知识了,因为它很容易学,直观(或像编程语言一样直观),而且简单(但肯定不简单)。

当时我个人觉得简单地学习编程非常无聊,但随着学习的深入,我又有了相当大的热情。我真的很想学习是为了创造一些东西,而不仅仅是学习。

其他回答

我认为,因为你想学习编程而学习编程,永远比不上因为你想做某事而学习编程。如果你能找到一些你弟弟感兴趣的东西,因为他想让它起作用,你可以把谷歌留给他,他会做的。他会让你在他身边检查他是否走对了路。

I think one of the biggest problems with teaching programming in the abstract is that it's not got a real-world context that the learner can get emotionally invested in. Programming is hard, and there has to be some real payoff to make it worth the effort of doing it. In my case, I'd done computer science at uni, learned Pascal and COBOL there, and learned BASIC at home before that, but I never really got anywhere with it until I became a self-employed web designer back in the 90s and my clients needed functionality on their web sites, and were willing to pay about 10x more for functionality than for design. Putting food on the table is a hell of a motivator!

所以我学习了Perl,然后是ASP/VBScript,然后是JavaScript,然后是Flash/ActionScript,然后是PHP——所有这些都是为了让我想要的东西发生。

如何设计程序

计算机程序的结构与解释“,”视频讲座网址:http://www.swiss.ai.mit.edu/classes/6.001/abelson-sussman-lectures/

Python is easy for new developers to learn. You don't get tangled up in the specifics of memory management and type definition. Dive Into Python is a good beginners guide to python programming. When my sister wanted to learn programing I pointed her to the "Head Start" line of books which she found very easy to read and understand. I find it's hard to just start teaching someone because you don't have a lexicon to use with them. First have him read a few books or tutorials and ask you for questions. From there you can assign projects and grade them. I find it hard to teach programming because I learned it over nearly 15 years of tinkering around.

我同意Leac的观点。有时候无聊的时候我会玩Scratch。这是一种非常有趣的查看代码的可视化方式。

它的工作原理是,他们给你一堆“积木”(这些看起来像乐高积木),你可以叠起来。通过堆叠这些块,并与画布(游戏邦注:你可以在此放置精灵和图像)进行交互,你便能够创造游戏,电影,幻灯片等等。这真的很有趣。

当它完成时,你可以直接上传到Scratch网站,这是一个类似youtube的Scratch应用程序门户。不仅如此,您还可以从网站上下载任何提交的内容,并从其他Scratch应用程序中学习或扩展。

一开始我遇到了很多困难,但最简单的便是简单的机制。概念,我立刻接受了。但错过了结尾处的大括号?在一个非平凡的程序中,这很容易做到,但通常很难调试。

所以,我的建议是:不要低估基础(比如良好的打字)。这听起来像是补救,甚至有些愚蠢,但当我在学习过程的早期偶然发现输入代码结构的完整“骨架”然后填充它的简单技术时,它为我省去了很多痛苦。

对于Python中的"if"语句,可以从以下语句开始:

if  :

在C / c++ / c# / Java:

if () 
{

}

在Pascal / Delphi:

If () Then
Begin

End

然后,在开始和结束标记之间输入。一旦这成为一个牢固的习惯,你就会不假思索地去做,更多的大脑就会被释放出来做有趣的事情。我承认,这不是一个非常浮夸的建议,但我个人认为它有很多好处!

编辑:[Justin Standard] 谢谢你的贡献,Wing。与你说的相关,我试图帮助我哥哥记住python作用域的语法的一件事是,每当有冒号时,他需要缩进下一行,而每当他认为应该缩进时,最好有一个冒号结束前一行。