奖励*完整*初学者的代码项目

时间:2008-08-25 20:21:18

标签: language-agnostic

正在介绍编程的人的课程经常包括代码项目,我认为这是一种很好的学习方式。然而,这些项目往往过于人为,因此不值得回报。

您对奖励代码项目的想法是什么? (最好是易于开始,并且可以随意扩展以获得更高级!)。

编辑:

@Mark:感谢这个链接,虽然我对那些对编程完全陌生的人更感兴趣(这个链接似乎更多地指那些已经精通至少一门语言,并试图学习的人一个新的 - 我会说的典型SO观众:) - )。

@Kevin,Vaibhav的,加里:我在想谁是通过一个语言学习编程的人,所以在课程开始时有些不知道控制结构(甚至任何一种语法以下)任何东西。但是,我正在考虑一个相当大的项目(通常在1k-10k行代码范围内,可能是2或3名学生的组)。这就是我的学校为完整的初学者所做的事情,它确实对他们有用......除了他们大多数人发现他们的项目很无聊,无法继续工作!

7 个答案:

答案 0 :(得分:4)

正如已经说过几次,你想要教初学者的东西对于这个项目非常重要。

我建议你做这样的事情:

1)避免制作电脑游戏

虽然计算机游戏很有趣,但它并不能在程序员的早期奖励(这非常复杂)。您希望专注于小而有用的应用程序,例如Port Scanner。这个例子有点复杂,但它是我在网上看到的最好的学习项目之一。

2)尽早教授图形

尽早看到你工作的成果是有益的,它会激励你走得更远。无论您使用的是WinForms,MFC还是Win32 API,OpenGL或DirectX,都要尽早进行教学。

3)许多有深度信息的小课程

此原则之后是上面链接的端口扫描程序项目,它运行良好。彻底教导每个部分,并为初学者留出时间吸收课程。我认为ZophusX有一个很好的格式来提供信息。太糟糕了,他大部分都放弃了他的网站。

4)需要时间

不要急于求成。几个星期内,没有人会成为一名出色的程序员。尝试让课程变得简单,但要吸引人,并继续学习以前的课程。

5)尽早获得反馈

您可能认为某个项目非常有趣,或者某个特定的课程,但您不是那个学习的人。当你早日询问他们的情况以及他们想要了解的更多内容时,你的学生会非常感激。要足够灵活,以便能够满足其中一些要求。

6)玩得开心

玩得开心。激情是具有感染力的,如果你的学生看到你对主题有多少兴趣,那么一些热情也会在他们身上消失。

我希望有所帮助!

答案 1 :(得分:2)

一些好的奖励项目,就您可以学到的内容而言,在复杂性方面具有相当大的可扩展性,这些项目包括:

  • 游戏
  • 旅行和交通预订/预订系统
  • 百科全书或术语词典,文章
  • 转换计算器(货币,单位等)

关键是选择一个足够简单的项目,以便在查看项目标题时立即显示其中的一些功能。当真正给出一个想法时,将揭示您可以添加的更多功能。

该项目应该有足够的难度,以使其功能看起来超出初学者的范围,从而激励他一直学习新东西。

答案 2 :(得分:1)

如果您正在培训公司中的新员工,那么将其作为实习项目的实际资源附加在实际项目中是非常有益的。

这会增加主要开发人员的工作量(因为他们必须审查实习生所做的所有工作),但在人员的培训和发展方面还有很长的路要走。

答案 3 :(得分:1)

我认为游戏和谜题是一个很好的起点,因为它们可以为开发更复杂的版本提供很大的空间。例如, tic-tac-toe 程序最初可以构建为一个简单的命令行程序,让两个玩家可以玩游戏。

此步骤可用于显示简单数据结构或数组如何表示游戏板,简单输入以获取用户命令/移动,简单输出以显示游戏板和提示等。然后您可以开始显示如何算法可用于允许玩家与计算机模式。我喜欢 tic-tac-toe 的简单魔方数学算法,因为它基于非常简单的数学运算。在此之后,天空是极限,UI改进,使用文件I / O加载和保存游戏,更高级的算法,以使计算机更好地播放等。更复杂和令人满意的游戏仍然可以使用文本模式或简单的图形生成。 / p>

我使用推箱子游戏作为多年来展示大量技术的手段。

我使用的最简单的游戏是数字列表倒车游戏。这涉及1-9号的混合列表。玩家可以在列表左侧指定要反转的位数。目的是使列表排序。这对绝对的初学者来说非常棒。游戏的每个小部分都可以单独编写和测试。

答案 4 :(得分:0)

这实际上取决于你想要教初学者的内容。如果你正在尝试教授语法,那么简单的“Hello World”程序和那些吐出1到100之间每个奇数的程序都可以让它们启动。如果您正在尝试教授数据结构,那么可能就像20个问题的游戏或一些简单的排序程序。如果你正在尝试教授递归,那么可能是一个广泛的第一个搜索程序。如果你正在尝试教授数据库操作,那么像订单跟踪系统这样的东西就是合适的。

答案 5 :(得分:0)

查看书籍Python Programming for the Absolute Beginner

中的代码示例

答案 6 :(得分:0)

文字冒险。

  • 这是一个控制台应用
  • 你需要做一些有用的事情,保持库存,地图和房间状态并解析输入
  • 这很有趣,你可以把它给别人玩! :d