最初的问题

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

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

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


当前回答

Python的挑战

其他回答

有一本维基百科非常适合学习python。

我不知道其他语言的维基百科是怎样的,但我个人是从2007年2月的维基百科上学习python的

Ps -如果你不熟悉维基书,它基本上是维基百科版本的书籍创作。这有点难以描述,但如果你看了几本书你就会明白它是如何工作的

起初,我对不同的程序是如何工作的很感兴趣,所以我从查看源代码开始。然后,当我开始了解程序的工作原理时,我会改变某些参数,看看会发生什么。所以基本上我在学会写字之前就学会了阅读。巧合的是,大多数人都是这样学英语的。

所以如果我想教别人如何编程,我会给他们一个小程序,让他们试着阅读和理解它是如何工作的,让他们只是玩玩源代码。

只有这样,我才会给他们布置“任务”去完成。

现在,如果他们有一个特别的原因想要学习如何编程,那么从他们想要完成的事情开始肯定是一个好主意。例如,如果他们想精通blender这样的应用程序,从Alice开始肯定是个好主意。

我绝对推荐使用具有垃圾收集功能的语言,如D、Perl或一些解释性语言,如javascript。在Perl 6接近完成之前远离Perl可能是一个好主意,因为它解决了阅读和理解Perl的一些困难。

这完全取决于你哥哥的学习风格。许多人通过亲自动手学习,在学习和积累知识的过程中明确概念和大局,从而学得更快。

对我来说,我更喜欢从大局出发,深入到细节。我想知道的第一件事是它是如何组合在一起的,然后是面向对象的官样文章,然后是类和实例等等。在我学习语法之前,我喜欢了解基本的概念和一点理论。我有一点优势,因为我在20年前用BASIC写过一些游戏,但之后就没有什么了。

也许在实际编写代码之前,先从总体任务陈述开始,然后是计划和/或流程图,然后细化成一些伪代码(倾向于您最终将使用的语法),这是很有用的。

这里的黄金法则就是弄清楚你学生的学习风格。

首先问他这个问题:“你想用你的电脑做什么事情?”

然后选择一组符合他的答案的活动,并选择一种允许这些事情完成的语言。如果它是一个简单的(或可简化的)脚本环境(例如Applescript, Ruby,任何shell (Ksh, Bash,甚至.bat文件),那就更好了。

原因如下:

如果他对结果感兴趣,他可能会比你让他数斐波那契兔子更有动力。 如果他得到了他喜欢的结果,他可能会想出你创造的活动的变化。 如果你在教他,他(目前)还没有追求一份正经的职业;以后总是有时间切换到“行业实力”语言的。

If he is interested than I wouldn't worry about focusing on games or whatnot. I'd just grab that beginners 'teach yourself x' book you were about to throw and give it him and let him struggle through it. Maybe talk about it after and then do another and another. After then I'd pair program with him so he could learn how shallow and lame those books he read were. Then I'd start having him code something for himself. A website to track softball stats or whatever would engage him. For me it was a database for wine back in the day.

在那之后,我会开始真正的书籍,领域设计等。