最初的问题

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

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

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


当前回答

我浏览了一下评论,似乎没有人提到www.CodeBetter.com上的编程基础。虽然它需要一些基础知识,但它肯定是学习过程中的下一步。

其他回答

你的问题取决于你兄弟的年龄和教育程度,但如果他是一个孩子/青少年,我建议你先做一些GUI编程或图形编程(使用Canvas等)。看起来不错,而且效果立竿见影。算法很无聊,对年轻人(比如说15岁之前)来说太抽象了。

当我开始在ZX Spectrum上编程时(我大概12岁),我喜欢在屏幕上画各种各样的东西,这仍然很有趣。我直到18岁才真正了解算法技术。不要被这种“简单”的编程是错误的开始所误导;学习它的人的兴趣是它最重要的部分。

所以,我会研究PyKDE, PyGTK, PyQt或Python + OpenGL(网上当然有一些教程,我知道一些捷克语,但这对你没有帮助:))。

当然,如果你的哥哥比你大,并且接受过数学方面的教育,你可以直接学习算法等。

这可能看起来很奇怪,但我在以前的工作中通过自动化任务和数据分析开始编写代码。这是通过记录和研究Excel宏生成的代码来完成的。当然,这种方法假设您可以通过VB学习。

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

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

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

需要考虑的事情……不是每个人都能编程:

有些人就是忘不了下面这些事情:

A = 1

B = 2

A = b

(这些人仍然会认为A = 1)

杰夫也谈到过这个问题。事实上,我的例子在链接中(并且已经解释了)。

非常好的斯坦福大学的视频介绍课程(不需要先验知识):

程序设计方法学

将教你每个程序员都应该知道的好“方法”和一些Java编程。