最初的问题

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

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

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


当前回答

一行一行地复制一些简单的代码,让他们一边读一边理解。他们很快就会解决的。我开始用Acorn杂志上的代码片段在Acorn Electron上编程。在我6岁的时候,我对编程一无所知,我习惯抄写文本,但渐渐地我学会了不同单词的意思。

其他回答

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

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

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

我会让他写大量的代码。你们做什么事都让他插手,随时回答问题就好。

信不信由你,在写了几个月的烂代码之后,他会开始明白这个想法,并开始写更好的程序。在这一点上,你可以陷入细节(内存等),也可以谈论一般的设计原则。

我听说伟大的艺术家和平庸的艺术家的区别在于,他们每次练习都会在某些方面有所改进,不管这些改进有多小。让你弟弟练习,他每次坐在键盘前都会进步。

编辑:[Justin Standard] 埃斯特班,这让我想起了最近的一篇编程恐怖文章,我认为你是对的。但我认为仍然值得寻找方法来指导他的实践。毫无疑问,我希望他能写尽可能多的代码。这是我要求样本项目的原因之一。

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

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

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

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

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

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

if  :

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

if () 
{

}

在Pascal / Delphi:

If () Then
Begin

End

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

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

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

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

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

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