最初的问题

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

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

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


当前回答

首先,像其他人一样开始:使用Hello World程序。这很简单,它让他们对程序的布局有了基本的感觉。试着回想一下你第一次编程的时候,以及一些概念有多么困难——从简单开始。

在Hello World之后,继续创建一些基本变量、算术,然后是布尔逻辑和if/else语句。如果你有一本旧的编程教科书,可以查看一些早期的例子,并让他浏览一下。只是不要一下子介绍太多,否则会让人不知所措。

其他回答

如果他感兴趣,那些小细节不就是好地方吗?使用python时,您已经切断了GUI,这样就不会有困惑了。为什么不选择一个项目,一款游戏或其他东西,然后执行它呢?经典的高低数字猜谜游戏可以简单地从命令行中用20-30行代码(当然取决于语言)实现,并为您提供变量、条件、循环和用户输入。

我强烈推荐John Zelle所著的Python编程:计算机科学介绍第二版。它面向初学者,并处理编程的语义。阅读后,您将能够更快地学习其他语言,因为Zelle的语义vs.语法方法。点击这里查看详情!

I would recommend also watching some screencasts - they are generally created in context of a specific technology not a language, though if there's Python code displayed, that'll do :). The point is - they're created by some good programmers and watching how good programmers program is a good thing. You and your brother could do some peer programming as well, that might be an even better idea. Just don't forget to explain WHY you do something this way and not that way. I think the best way to learn programming is from good examples and try not to even see the bad ones.

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

Python编程绝对初学者

Python编程绝对初学者封面http://safari.oreilly.com/images/1592000738/1592000738_xs.jpg