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

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

编辑:

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

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

===============>>#1 票数:4 已采纳

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

我建议你做这样的事情:

1)避免制作电脑游戏

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

2)尽早教图形

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

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

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

4)需要时间

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

5)尽早并经常获得反馈

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

6)玩得开心

玩得开心。 激情是具有感染力的,如果你的学生看到你对这个主题有多少兴趣,那么一些热情也会对他们产生影响。

我希望有所帮助!

===============>>#2 票数:2

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

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

关键是选择一个足够简单的项目,这样当你查看项目标题时,它的一些功能就会立即显现出来。 当真正给出一个想法时,将揭示您可以添加的更多功能。

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

===============>>#3 票数:1

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

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

===============>>#4 票数:1

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

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

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

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

===============>>#5 票数:0

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

===============>>#6 票数:0

看看Absolute Beginner的Python Programming一书中的代码示例

===============>>#7 票数:0

文字冒险。

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

  ask by OysterD translate from so

未解决问题?本站智能推荐:

86回复

教初学者编程的最佳方法是什么? [关闭]

原始问题 我目前正在教我的兄弟去编程。 他是一个初学者,但非常聪明。 (而他实际上想学习)。 我注意到我们的一些会议陷入了细微的困境,我不觉得自己组织得很好。 ( 但这篇文章的答案有很多帮助。 ) 我能做些什么来有效地教他? 是否有一个逻辑顺序,我可以使用概念按概念运行?
68回复

关于编程的初学者最有害的误解? [关闭]

可能重复: 什么是你持续时间最长的编程假设,结果是不正确的? 对于那些刚接触过编程的人来说,你认为对编程最有害的误解是什么?
8回复

关于网络技术的初学者问题[关闭]

我只是将手插入网络技术。 我从HTML开始,现在开始使用JavaScript和PHP。 我脑子里有各种各样的问题。 我是一名核心.NET Windows开发人员,并以此为生。 但是现在我想深入了解Web,所以这是我的疑问: (1)我开始使用PHP。 我也想学习Ruby with
1回复

作为初学者,看起来“深入”是个坏主意吗? [关闭]

我最近尝试开始学习C编程语言,但是这个问题并非特定于一种语言,也不是针对该问题的任何一种语言。 我发现我很后悔像在学习过程中一样早就要求信息/最佳实践,这仅仅是因为我收到的信息太多了 。 例如,我问了一个与C中数组有关的问题: 是否使用宏“优秀实践”来定义数组的长度? 我发现
6回复

这些初学者风格代码有什么问题?

我是一个初学者,正在阅读https://stackoverflow.com/questions/237241/what-c​​oding-mistakes-are-a-telltale-giveaway-of-an-experienced-programmer 。 我什么都没得到。 1.
6回复

编程中你会向初学者推荐哪些专业领域[关闭]

我是一名学习软件开发的学生,我觉得编程一般来说太过广泛,无法尝试了解所有内容。 要精通,你必须决定哪些领域要集中你的学习和理解。 某些技能组合相互协作,如数据驱动的Web开发和SQL体验。 但是,世界上所有的win32 API体验可能都不会直接适用于linux开发。 这让我相信,作为一名
7回复

初学者应该从哪里开始计算机视觉? [关闭]

我是一名大学生,他发现计算机视觉很有吸引力。 计算机视觉的新手应该从哪里开始?
87回复

在<10行简单代码中你能做的最酷的事情是什么?帮助我激励初学者! [关闭]

我正在寻找你能用几行简单代码做的最酷的事情。 我敢肯定你可以在15行中用Haskell编写一个Mandelbrot集,但很难遵循。 我的目标是激发学生编程很酷 。 我们知道编程很酷,因为你可以创造你想象的任何东西 - 它是最终的创意出路。 我想激励这些初学者,让他们尽可能多地学习
1回复

复杂性(初学者问题)

这些陈述的复杂性是什么? 解释表示赞赏。
5回复

适合初学者的Clojure演示文稿?

我需要为初学者做一个关于Clojure语言的演讲。 您对选择主题有何建议? 我需要包括哪些要点? 注意:初学者,我的意思是他们在其他编程范例中有经验,但在函数式编程模型中没有。