最初的问题

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

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

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


当前回答

My favourite "start learning to code" project is the Game Snakes or Tron because it allows you to start slow (variables to store the current "worm position", arrays to store the worm positions if the worm is longer than one "piece", loops to make the worm move, if/switch to allow the user to change the worm's direction, ...). It also allows to include more and more stuff into the project in the long run, e.g. object oriented programming (one worm is one object with the chance to have two worms at the same time) with inheritance (go from "Snakes" to "Tron" or the other way around, where the worm slightly changes behavior).

我建议您从微软的XNA开始。根据我的经验,如果你能在屏幕上看到一些东西,开始编程就会有趣得多,而XNA使得在屏幕上移动一些东西变得非常容易。做一些小的改变并获得另一种看法是很容易的,例如通过改变颜色,这样他就可以看到他的行动有效果->成功的印象。成功是有趣的,这是不断学习的巨大动力。

其他回答

一旦他掌握了基本知识,我建议他去河内塔作为一个很好的锻炼。 如果你有木制玩具,我建议你从木质玩具开始;让他试着自己解决这个问题,并系统地描述他的方法。告诉他递归在哪里发挥作用。给他解释一下,棋局的多少取决于棋牌的多少。 然后让他写一个程序,用你选择的语言打印出动作的顺序。

我建议采用类似于《加速c++》这本书的方法,在这本书中,它们涵盖了c++中通常对编写简单程序有用的部分。对于编程新手来说,我认为花点功夫就能展示一些东西是保持他们兴趣的好方法。一旦你掌握了Python的基础知识,那么你就应该坐下来,让他来实验这门语言。

在我这学期的一门大学课程中,他们采用了一种名为“基于问题的学习”(PBL)的方法,即通过讲座来激励学生使用不同的方法来解决问题。既然你哥哥很热心,你也应该采取类似的方法。让他做一些小项目,让他自己想办法。一旦他完成了,你可以通过他的方法,并与不同的方法进行比较和对比。

如果你能给他适当的帮助,引导他在正确的方向,那么他应该没事。为他提供一些好的网站和书籍也是一个好主意。

我还建议在开始阶段远离IDE。使用命令行和文本编辑器将使他更好地理解编译/汇编代码所涉及的过程。

希望我能帮上忙。:)

Python is easy for new developers to learn. You don't get tangled up in the specifics of memory management and type definition. Dive Into Python is a good beginners guide to python programming. When my sister wanted to learn programing I pointed her to the "Head Start" line of books which she found very easy to read and understand. I find it's hard to just start teaching someone because you don't have a lexicon to use with them. First have him read a few books or tutorials and ask you for questions. From there you can assign projects and grade them. I find it hard to teach programming because I learned it over nearly 15 years of tinkering around.

在浏览了几本免费电子书之后,我发现最适合学习编程的书是O'Reily出版社出版的《Head First Programming》。它使用Python作为语言,并从一开始就为您提供程序。它们都比“Hello World”更有趣。 我花在这本书上的钱是非常值得的,因为它已经发布了一段时间,你可能会在Ebay或亚马逊上找到更便宜的二手书。

我建议从C/ c++开始。我发现它是几乎所有其他语言的良好基础。此外,不同版本的BASIC语言最多也会很不可靠,而且与实际的编程没有真正的关联。