Language agnostic 新程序员的玩具项目

Language agnostic 新程序员的玩具项目,language-agnostic,Language Agnostic,当我刚开始自学编程时,在完成一个教程之后,我会觉得我仍然不能用这种语言做任何事情。所以,我环顾四周,想找点事情做。由于我刚刚学到了一些基本知识,查找、阅读和添加开源项目所涉及的工作量似乎是无法克服的。取而代之的是,我开始了几个玩具项目,最终受益匪浅 看到了很多初学者提出的类似于“我现在应该做什么?”的问题,以及很多类似于“开始为开源项目工作”的答案,我觉得对一个新程序员来说,应该有更好的建议。虽然在开源项目上工作肯定会带来很好的经验,但有一个明显的进入障碍 相反,我认为,如果新的程序员被鼓励开发

当我刚开始自学编程时,在完成一个教程之后,我会觉得我仍然不能用这种语言做任何事情。所以,我环顾四周,想找点事情做。由于我刚刚学到了一些基本知识,查找、阅读和添加开源项目所涉及的工作量似乎是无法克服的。取而代之的是,我开始了几个玩具项目,最终受益匪浅

看到了很多初学者提出的类似于“我现在应该做什么?”的问题,以及很多类似于“开始为开源项目工作”的答案,我觉得对一个新程序员来说,应该有更好的建议。虽然在开源项目上工作肯定会带来很好的经验,但有一个明显的进入障碍

相反,我认为,如果新的程序员被鼓励开发一个与他们的兴趣相关的玩具程序,那将是一件好事。由于编程可以为您提供很多方向,我认为列出一些简单(但有趣/有价值)的项目会很有趣,这些项目按照新程序员希望追求的方向进行分组。例如:

游戏设计:

写一篇文字冒险(比如Zork)

自然语言处理:


创建一个写无意义但语法正确的文章的程序。

我最近问了一个类似的问题(),并获得了提供问题集和验证的网站链接。退房:


虽然这些问题通常不构成项目,但它们仍然很有趣。我很想看看人们在这里想出了什么主意。

编写一个程序来呈现Wolfram自动机(特别是)

参见示例代码。

我实际上认为一种方法可能更好。。。程序员仍然可以选择感兴趣的主题,但他们实际上是在为一个真正的项目争取奖金,他们得到了反馈。坦率地说,TopCoder有点臃肿,据我所知,他们不允许人们进行免费竞争。如果有一个TopCoder/StackOverflow类型的站点,那就太好了:人们可以提交代码,就他们的实现进行投票,然后玩得很开心


我甚至会提出我的想法,我开始开发我自己版本的TopCoder/StackOverflow混合怪物,名为(尽管除了购买域名外,我还没有做任何事情)。

从编写21点模拟开始。选择第一次跑步所需的策略

下一步,开始为不同的策略添加额外的跑步,比如当你的手的值是15对16对17对18,以及手是软的还是硬的(ace的值被计算为1或11)时,击球/站立。交易商的策略,因为他们实际上是在赌场

到最后,您的程序将运行每个策略组合的1000个实例。它将打印每个展位价值和硬/软组合的手牌获胜率(击败经销商的次数百分比)的摘要


这是我做过的最喜欢的项目之一,它可以用您选择的语言巩固一些技术。另外,如果你有主动权开始学习一些(相当简单的)离散数学,作为一个辅助项目,你可以获得更好的体验。谁知道呢,也许你可以抛开电脑的东西,开始点卡?

运行所有Infocom游戏的引擎其实没有什么“玩具”。我建议做一些简单的游戏,比如一个互动的21点游戏。21点游戏其实很有趣,很多年前我自学了一些复杂的游戏,我也是这么做的。当我发现利用这些技能有多像工作时,我决定我宁愿继续从事软件:)@fuzzy:引擎不必很复杂。当我第一次在HS学习BASIC时,我们会自己制作并分享基于文本的冒险游戏。你特别提到Zork,它符合解决方案的复杂性,初学者不会写Zork,所以我坚持我的建议,Zork(看起来很简单,不是)对于初学者来说,这是一个不好的建议。这是否属于数学的一个兴趣领域?或者与图灵完整性有关?分类是任意的,因为你的问题毫无意义。你可以使用SO引擎。查看以获取详细信息。它是免费的!我支持这个想法。@Adam,好主意。。。我在area51上创建了一个项目:计算卡片的唯一问题是,它的工作量至少和软件开发一样多。哦,是的,事实上,当你真正精通软件时,你的老板不会把你开除:)