最初的问题

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

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

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


当前回答

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

程序设计方法学

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

其他回答

一个很好的python课程是麻省理工学院的A Gentle Introduction to Programming Using python。网上都是免费的,你不必是麻省理工的超级学生也能理解它。

编辑[Justin Standard] 本课程使用这本免费的在线书籍:如何像计算机科学家一样思考 我确实发现它很有用。

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

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

原因如下:

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

Something you should be very mindful of while teaching your brother to program is for him not to rely too heavily on you. Often when I find myself helping others they will begin to think of me as answer book to all of their questions and instead of experimenting to find an answer they simply ask me. Often the best teacher is experimentation and every time your brother has a question like "What will happen if I add 2 to a string?" you should tell him to try it out and see for himself. Also I have noticed that when I cannot get a concept through to someone, it helps to see some sample code where we can look at each segment individually and explain it piece by piece. As a side note people new to programming often have trouble with the idea of object oriented programming, they will say they understand it when you teach it to them but will not get a clear concept of it until actually implementing it.

学术地球提供顶尖大学的免费计算机科学课程链接。他们有一个部分是针对初级计算机科学的。初级课程所教授的语言各不相同:

麻省理工学院-计算机科学与编程导论- Python 斯坦福-计算机科学I:编程方法学- Java 哈佛大学-计算机科学概论I - C(主要方向) 还有一些是为了 良好的度量(例如,SQL, PHP, LISP, 汇编程序等) Berkeley -一种LISP语言的方言

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

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

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