最初的问题

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

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

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


当前回答

在我的偏见看来,C是最好的起点。语言很小,它的高级功能无处不在,低级功能让你学习机器。

我发现C Primer Plus第5版对于一个几乎没有编程经验的初学者非常有帮助。它假定没有编程经验,读起来很有趣,并深入介绍了C语言(包括最新的C99标准)。

其他回答

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

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

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

我同意上面的superjoe30,但我还没有足够的声誉来留下评论。

我做了四年的计算机科学教授。语言是Basic,然后是Pascal,但语言是什么并不重要。

作为一名新教授,我学到的最大的一课是,无论我认为一个概念有多简单,它对新手来说都不简单。不要比你的学生快。我怎么强调都不为过。非常非常慢。

我会从非常简单的东西开始,阅读和打印,也许是一个简单的计算,只是为了让学生习惯输入和输出一些东西。然后是IF语句。然后是非常简单的FOR循环,总是根据学生可以编写的内容,并从中获得乐趣。

然后我会花3个星期的时间教授一种非常简单的机器语言,用于一台叫做SIMPL的伪十进制机器,你可以一步完成。这样做的原因是为了让学生看到“橡胶遇见道路”的地方,计算机一步一步地做事情,事情发生的顺序是不同的。如果没有这一点,学生们倾向于认为计算机可以读懂他们的思想,并一次性完成所有事情。

然后回到基本。几周的阵列,因为那是一个很大的减速带。然后是顺序文件,这是另一个减速带。我所说的“减速带”是指学生可以很自信地前进,然后你给他们一个像数组这样的概念,他们又完全迷失了,直到你让他们放松下来。

然后,有了这些技能,我会让他们选择一个学期项目,因为这让编程变得有趣。没有用处,真的很无聊。我会建议各种各样的项目,比如游戏、会计课程、科学课程等等。看到它们被打开真是太好了。他们经常会向我寻求帮助,这很好,因为你知道他们在学习。

当他们在做他们的项目时,我们将继续介绍更高级的编程技术——搜索、排序、合并,以及如何创建一个简单的数据库等等。

祝你好运。教书是一项艰苦的工作,但当你看到学生的成长时,你会感到满足。

这可能看起来很奇怪,但我在以前的工作中通过自动化任务和数据分析开始编写代码。这是通过记录和研究Excel宏生成的代码来完成的。当然,这种方法假设您可以通过VB学习。

让它变得有趣就好!

令人惊讶的是,如果您尝试Kojo, Scala可能是最简单的

这个线程是非常有用的我作为一个初学者(>100行代码)程序员。

基于我所经历的,一旦我完成了“Hello World”,并移动到变量和“if/else”语句,我得到了太多的语法;不知道该拿他们怎么办。

因此,通过一个有趣的简单项目,我可能会重新燃起我的兴趣。这里有很多项目建议。

我能问个问题吗?

先学习像Autohotkey这样的脚本语言会更好吗?

编辑:[Justin Standard] 我认为学习一些基于宏的东西,比如Autohotkey,只会有最低限度的帮助。试着先学习一门“真正的”编程语言。最简单的入门(根据大多数人的说法)是python和ruby。我更喜欢python,但两者都很简单。 还有一个完整的stackoverflow帖子回答了从哪种语言开始的问题。