最初的问题

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

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

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


当前回答

Robert Read写了一个很有用的指南,如何成为一个程序员,它涵盖了广泛的编程问题,初学者会发现很有帮助。

其他回答

我建议首先教授几乎所有语言都使用的基本知识,但不需要语言。概述所有的基本概念If-Else If-Else,循环,类,变量类型,结构等。这是大多数语言的基础。然后转向真正理解布尔、比较和复杂的and或语句,以了解更复杂语句的结果。

通过这样做,他将理解编程的概念,并更容易地进入语言,从那里它只是学习语言的复杂细节,它的功能和语法。

一些额外的信息可以附加到Jason Pratt之前关于Alice的帖子中…具体来说,是一个讲故事的爱丽丝变体。

虽然这项研究针对的是中学女生,但你可能会觉得凯特琳·凯莱赫撰写的白皮书很有趣。

Python包VPython—3D Programming for Ordinary Mortal(视频教程)。

代码示例:

from visual import *

floor = box (pos=(0,0,0), length=4, height=0.5, width=4, color=color.blue)
ball = sphere (pos=(0,4,0), radius=1, color=color.red)
ball.velocity = vector(0,-1,0)
dt = 0.01

while 1:
    rate (100)
    ball.pos = ball.pos + ball.velocity*dt
    if ball.y < ball.radius:
        ball.velocity.y = -ball.velocity.y
    else:
        ball.velocity.y = ball.velocity.y - 9.8*dt

VPython弹跳球http://vpython.org/bounce.gif

我曾经教过编程,你哥哥有一个主要的优势,他比我的大多数学生都想学:)

如果你决定使用C语言,一个朋友有一个网站,上面有一些老一代使用的程序,被认为是基本的输入程序。其中更复杂的使用ncurses,这在某种程度上否定了它们作为教学辅助的作用,但其中一些是很小的东西,你可以在没有教的情况下学到很多东西。

我个人认为Python和Ruby会是很棒的第一语言。

编辑: 一夜之间出现的初学者编程作业列表可能正是你正在寻找的。

这可能听起来很傻,但你为什么要教你的兄弟编程呢?

最好的学习环境通常包括一个初学者可以达到的目标(一个示例程序),充足的资源(谷歌/教程/书籍),以及在需要时可以提供指导的知识渊博的建议来源。

你当然可以为前两项提供建议,但最后一项才是你的主要角色。