“动手做”项目建议,以提高编程技能或学习新语言。


10

既然最好的学习方法是在项目上工作,那么有哪些好的软件可以尝试使自己增强某些编程技能或学习一种新的语言呢?


3
克隆此站点。

Answers:


11

我发现以下程序为使用新语言提供了良好的开端:

康威的人生游戏

易于实现。简单使用容器类为您提供了一个良好的开端。输出结果不一定需要图形。

另外,您可以编写3D版本,并使用游戏引擎进行输出(例如,像Panda3D这样的简单内容)

数独解算器

稍微复杂一点。复杂度可以根据您的需要进行调整。只是取消数字并在不再可能的情况下停止,或者继续执行搜索树以解决更复杂的问题。网上有大量的Sudokus测试程序的难度和问题的解决方案。关于可能策略的材料也是如此。

欧拉计划

您可能想要的每个难度级别上的问题。并将您的解决方案与每种主要编程语言中经验丰富的程序员的解决方案进行比较。


您可以尝试在各种平台上实施生命游戏。我是在HTML5 / Javascript画布上完成的。太棒了!
毛里求斯


5

只需登录以下任意站点,看看您是否应对它们带来的编码挑战:SPOJTOPCODER等。

这些站点中的大多数为您提供了多种编程语言的编码选项,因此您可以使用最熟悉的一种。

如果您是游戏高手,那么总会有ICPC


3

我会说任何满足以下三个要求的项目:

  • 您发现有趣的东西
  • 您可以快速了解进度的事物(例如,尝试避免创建3D游戏之类的事物)
  • 符合该语言编程范例的东西。例如,如果这是一种功能语言,那么您将在一个项目中进行一些数据操作,数学运算或其他操作。

2
您的第一点是关键。如果您对项目不感兴趣,将很难保持进度和热情,您需要学习。
克里斯·弗雷德

2
  • 转到Sourceforge.net或GitHub,以该语言搜索项目,然后看看哪个使您感兴趣。
  • 考虑一下您在“现实生活”中最常使用的库。您是否编写了很多Web服务?尝试为新语言编写一个Web服务框架。做很多图形编程吗?尝试编写一个简单的渲染引擎。做数据分析吗?实施基本的统计数据包。等等。这样做的好处是您已经看到了该实用程序(因为您每天都使用类似的东西)并且已经拥有一些域知识。这些类型的项目也往往是您可以花费无数的时间进行调整(即从中学习更多的东西),最终可能希望开源的项目,并且如果它们成为一种语言的话,将使您继续参与其中。持续的爱好;不利的一面是它可能永远不会真正“完成”,而那是
  • 根据开发领域的不同,可能会有一些专门指导您完成项目的书籍。在游戏开发平台(iOS,XNA)上尤其如此。

1

对于初学者

字符串操作:

  • 子手游戏。

数据库:

  • 待办事项
  • 某种锻炼或个人日记

随机数处理:

  • 旋转轮子

矩阵和基本图形

  • 俄罗斯方块

1

您想要继续做的任何事情。最多的学习是在辅助项目中通常忽略的最后1%中完成的,但这是工作产品中非常重要的一部分。

因此,该项目的可能是一个非常个人的选择。这就是为什么那里有这么多伟大的OS项目的原因,以及为什么每个人都说,当他们在简历/简历上时,他们是如此重要:那个人努力工作,并从最后1%的工作中学到了很多东西它可供其他人使用,并喜欢他们的工作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.