在我们生活中的某些时刻,我们会陷入困境,学习一门新语言(无论是工作要求还是激情)。就个人而言,我正在尝试从几年编写php的背景中学习Objective-C。我的问题是我对你的平均起始程序感到厌倦(大多数来自数学;例如:Fibonacci)。
在学习新语言时,您编写的第一批算法和程序是什么?
我想我们可以列出一些有待解决的有趣问题,这将使学习曲线至少更具娱乐性。
稍后修改: 我的问题是关于有趣的事情(也很有用),但不像Code Kata或其他非常无聊的数学内容(我已经完成了很多这样的事情)
稍后修改[2] : 我今天找到了this,那里的问题似乎很有趣。
答案 0 :(得分:3)
尝试开发适当的东西,某种类型的项目;解决算法问题实际上只是教会你应用算法,而不是真的很多关于你使用的语言。
决定一个有用的项目然后决定一种语言然后“做”它将涵盖学习一门新语言所需的许多基础。
答案 1 :(得分:1)
看看这些:
答案 2 :(得分:1)
同样的想法:看看The Computer Language Benchmarks Game。
的问题当您完成一个片段后,您可以将您的解决方案与提供的解决方案进行比较。
答案 3 :(得分:1)
我喜欢Larry O'Brien的这一系列文章。
http://www.knowing.net/index.php/2006/06/16/15-exercises-to-know-a-programming-language-part-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