每个程序员制作的软件

时间:2009-03-18 19:02:44

标签: c#

我正在寻找个人项目。 “每个程序员”*所做的那种。原因在于,大多数开发人员倾向于处理具有特定特征的个人项目,这些特征对所有其他开发人员都很有意义。软件如:

  • Bug跟踪器(制作一个)
  • CMS(制作一个)
  • 博客引擎(没有做过;不想做)
  • UI'图书馆'和图形'引擎'(通常用于游戏开发人群)
  • 密码管理程序

我正在寻找一些东西

  • 有趣
  • 有趣的
  • 不是特别具有挑战性(我的工作很难 - 或者说模糊不清)
  • 无论如何都不一定是原创
  • 最好是申请(即不是网站)
  • 不是一个铁杆学习经历,这完全是为了摆脱工作的乐趣

话虽这么说,但我发现“有趣”和“具有挑战性”这两个术语并不一定对开发人员具有与为其他人相同的含义(并且经常是可以互换的 - 我不是在寻找某些东西简单或微不足道)。与“学习”部分同上,我喜欢并想要解决问题,但我不打算深入研究设计方法或学习全新的API和语言来实现这一目标。

我问,因为我认为某些项目或项目类型由于特殊原因而吸引开发人员。我并不想知道这些原因是什么,也不关心,但我确实知道它们存在并且作为开发人员,所建议的项目很可能会吸引我。

如果有帮助,我的背景或首选媒体,而不是背诵我的简历,是针对Windows /平板电脑的c#开发; XNA;数据库设计/编程;

* by“every”,我的意思是“很多”。

20 个答案:

答案 0 :(得分:16)

您拥有XNA经验和数据库经验。

为数据库开发可视化工具,具有视觉吸引力,使挖掘数据更容易。

这可以从一个简单的浏览工具开始,最终发展成为一个成熟的数据库管理应用程序。

答案 1 :(得分:8)

如果你还没有写过,Conway's Game of Life的实施总是一个有趣的挑战。它也是一种项目,一旦你完成它就会导致看似无穷无尽的修修补补(“我只是再增加一个功能......”)

答案 2 :(得分:7)

图形总是很有趣,尝试编写程序来绘制Sierpiński三角形。生成这是一个相当简单的分形。我曾经制作了一个屏幕保护程序,可以在屏幕上随机抽取颜色和颜色。

如果您正在寻找更实用的内容,请尝试编写电子邮件或RSS客户端。学习与低级别的SMTP / POP3交互是非常有趣的。与RSS相同的是,它至少会让您了解网络,GUI和XML设计。

答案 3 :(得分:7)

也许写一个编译器?我想每个艺术家/工匠都应该学会如何构建他们的艺术或工艺工具。

答案 4 :(得分:4)

  

我正在寻找个人项目。 “每个程序员”*所做的那种。

如何编写自己的脚本语言解释器? 这是一件很常见的事情,通常不仅是一种高度教育的体验,而且还是有趣和有趣的。

一旦你完成了一些有用的工作,你就会开始对编程有不同的看法,它会改变你的思维方式!

答案 5 :(得分:4)

为您选择的纸笔RPG编写一个字符生成器。

它应该可以在两种模式中使用:Build-A-Character(可以让你从头开始构建一个角色)和Generate-An-NPC(给定一些指导,会生成一个不错的NPC)。

这实际上是我已经工作了一段时间的项目,我发现它很有趣。 YMMV,特别是如果你不经常比赛。

编辑 - 想想我会给出一些我觉得很有趣的理由。

  1. 这是我和我的朋友实际使用的东西
  2. 这有助于我更好地理解游戏,知道什么决定可以成为一个好角色
  3. 随机字符生成中有一些(有限的)AI(主要是带有一些随机跳转的简单决策树)
  4. 总的来说,这是一个单人开发团队的合理项目。

答案 6 :(得分:3)

数独游戏(或连接四,线索等)。 某些东西主要依赖于逻辑,而非人工智能(如国际象棋)。

答案 7 :(得分:3)

光线追踪器怎么样?如果你通过蛮力做所有事情,这可能非常简单。 它们写起来非常有趣,并且可能导致许多有趣的问题。编写光线跟踪器符合您的所有条件=)

答案 8 :(得分:1)

为什么不滚动自己的

  1. Web MVC框架或
  2. 网页模板系统或
  3. 持久性框架(如果您制作OR映射器,则为+1)或
  4. 基于拦截器的面向方面的框架
  5. 但是,那些是2000年初的罪孽。

    那时候有什么东西? :)

答案 9 :(得分:1)

我一直很喜欢写一个小物理模拟器或规范的mandlebrot / julia集合生成器(并行扩展任何人:)

答案 10 :(得分:1)

我一直很乐意尝试使用编译器/解释器。我开始在我自己的Javascript交互式shell中做出可怜的尝试(我没有先前的经验或编译器/解释器的知识,只是试图躲开它)。而现在我将开始从头开始编写自己的词法分析器/解析器。

就个人而言,我觉得编译器和口译员很有趣。如果您愿意,也可以将它们或其组件用作其他项目创意的开头。此外,您可以使用您选择的任何语言与它们一起玩,因此如果您想学习或使用新语言并且不确定要关注什么,这可能不是一个糟糕的副项目。

答案 11 :(得分:1)

在开始当前的工作之前,我很开心编程音频播放器(如winamp / WMP)来学习.NET。有免费的库可以读取MP3文件(以及其他音频格式),因此可以解决复杂的部分问题;)

音频播放器不是太复杂,适合学习线程,UI和使用文件系统。

答案 12 :(得分:1)

个人'有趣'强烈重叠'困难',所以我有点不知所措......

...但也许你应该采取你可能拥有的非编程兴趣并尝试解决该空间中的一个简单问题

我的一位朋友曾经建立了一个模型铁路数据库,以便人们可以追踪他们拥有的火车。他试图卖掉它,虽然效果不是很好,但它很简单有趣。

答案 13 :(得分:1)

编写一个由人工智能虚拟生物填充的3D环境,在公共服务器上实现,我们都可以使用基于WPF的客户端进行访问。

答案 14 :(得分:1)

为了学习Ruby,我最近刚刚制作了一个迷你DSL / XML生成器,用于我在我的程序中使用的基于XML的自定义语言。我只是将一些真实文本转换为XML表示。这只是一个有趣的小方案项目,从长远来看并没有带来太多好处,但帮助我学习了这门语言。

所以......我建议尝试创建一个DSL。这种体验实际上可以证明是非常宝贵的,因为DSL非常有用。

答案 15 :(得分:1)

每个开发人员都不同。大约三年前,我在其他网站上问了你的问题。它没有带来任何东西,因为我们都有不同的兴趣。

也许打造一个专注于你喜欢的网站?就像大学内的小社区或其他人一样?

答案 16 :(得分:0)

为与iPhone竞争的Windows移动设备编写触摸屏游戏。也许就像'挤压臭虫'之类的东西。小鸡挖那种东西。

答案 17 :(得分:0)

搜索一个好的Flash益智游戏并为它实现一个求解器:)

答案 18 :(得分:0)

就个人而言,它基于您自己的喜好。对我来说,这是一本成绩簿计划。由于我总是有老师朋友,他们总是希望我更新它。所以我先在Pascal中编写它,然后想学习C,所以我写了一个C版本,然后是一个C ++版本等等。

我女儿正在打篮球,所以我想保持得分,当时我有一个PocketPC,所以我为它写了一个小应用程序。

我的$ .02

答案 19 :(得分:0)

某种GPS追踪器?我从来没有做过,但我相信许多开发者都做过。