学习新语言时需要解决的算法/问题

时间:2010-07-07 08:16:32

标签: algorithm programming-languages

在我们生活中的某些时刻,我们会陷入困境,学习一门新语言(无论是工作要求还是激情)。就个人而言,我正在尝试从几年编写php的背景中学习Objective-C。我的问题是我对你的平均起始程序感到厌倦(大多数来自数学;例如:Fibonacci)。

在学习新语言时,您编写的第一批算法和程序是什么?

我想我们可以列出一些有待解决的有趣问题,这将使学习曲线至少更具娱乐性。

稍后修改: 我的问题是关于有趣的事情(也很有用),但不像Code Kata或其他非常无聊的数学内容(我已经完成了很多这样的事情)

稍后修改[2] : 我今天找到了this,那里的问题似乎很有趣。

8 个答案:

答案 0 :(得分:3)

尝试开发适当的东西,某种类型的项目;解决算法问题实际上只是教会你应用算法,而不是真的很多关于你使用的语言。

决定一个有用的项目然后决定一种语言然后“做”它将涵盖学习一门新语言所需的许多基础。

答案 1 :(得分:1)

答案 2 :(得分:1)

同样的想法:看看The Computer Language Benchmarks Game

的问题

当您完成一个片段后,您可以将您的解决方案与提供的解决方案进行比较。

答案 3 :(得分:1)

答案 4 :(得分:1)

每当我拿起一门新语言时,我会尝试使用它来解决SPOJ处的问题。他们基本上支持那里的每一种主流语言(以及像Intercal和Whitespace这样的一些esolang)。问题主要来自世界各地的各种ACM和类似的格式比赛,所以可能很难,也许对于每个人的口味来说太CS /数学。任何语言都可以使用教程问题。

我还建议将该语言的标签添加到您感兴趣的标签列表中。许多SO问题涉及小代码片段,并且试图回答它们并查看其他答案可能非常有启发性。

但是一旦我掌握了基础知识,我选择的策略就是尝试一个非常小的项目。通常这是一个简单的游戏,GUI应用程序或一个小型的webapp。这是有价值的,因为有些事情你只能通过做一些小的孤立的代码来学习。

答案 5 :(得分:0)

尝试使用您的新语言解决these个问题。这是怎么回事:

  

在软件中我们练习   这份工作,这就是我们制作的原因   工作上的错误。我们需要找到   分裂实践的方法   行业。我们需要练习   会话...

答案 6 :(得分:0)

我有时会使用Structure and Interpretation of Computer Programs前几章的练习。

答案 7 :(得分:0)

您也可以尝试理解或改进现有的开源项目,如此question所示。即使答案是可可有偏见的,它应该是一个很好的起点。

通过这种方式,您可以深入了解您的选择(理解,调试,改进)以及您感兴趣的方向(UI,特定库等等)。

编辑:当我说起点时,我的意思是您可以浏览目标代码的存储库,例如sourceforge