在我们的生活中,我们总会遇到学习新语言的情况(无论是工作要求还是出于兴趣)。就我个人而言,我正在尝试学习Objective-C,而我的编程背景是几年的php编码。我的问题是,我对一些普通的起始程序感到厌倦(其中大多数来自数学;例如:斐波那契数列)。当你学习一门新语言时,你写的第一个算法和程序是什么?我在考虑我们可以列出一些有趣的问题来解决,这将使学习曲线至少更加有趣。最后编辑: 我的问题是关于有趣的事情(也很有用),但不像 Code Kata或其他非常无聊的数学内容(我已经做了很多了)最后编辑[2]: 我今天发现了this,那里的问题似乎很有趣。
我喜欢Larry O'Brien的这一系列文章。 http://www.knowing.net/index.php/2006/06/16/15-exercises-to-know-a-programming-language-part-1/ http://www.knowing.net/index.php/2006/06/16/15-exercises-to-know-a-programming-language-part-2-data-structures/ http://www.knowing.net/index.php/2006/06/16/15-exercises-to-know-a-programming-language-part-3-libraries-frameworks-and-mashups/
每当我学习一门新语言时,我都会尝试用它来解决SPOJ上的问题。他们基本上支持所有主流语言(以及一些像Intercal和Whitespace这样的奇怪语言)。这些问题大多来自世界各地的各种ACM和类似格式的比赛,因此可能非常难,并且对于每个人的口味来说可能过于计算机科学/数学化。任何语言的教程问题都相当容易解决。我还建议将该语言的标签添加到您的SO感兴趣的标签列表中。许多SO问题涉及小代码片段,尝试回答它们并查看其他答案可能非常有启发性。但是,一旦我掌握了基础知识,我选择的策略是尝试制作一个非常小的项目。通常这是一个简单的游戏、GUI应用程序或微型webapp。这很有价值,因为有些东西只靠编写小的孤立代码块是无法学习到的。
你也可以尝试理解或改进现有的开源项目,如此处所建议。尽管答案有一定的Cocoa偏见,但这应该是一个不错的起点。通过这种方式,您可以根据自己的选择(理解、调试、改进)和兴趣方向(UI、特定库等等)深入了解。 编辑:当我说起点时,我的意思是您可以浏览objective-c代码的存储库,例如sourceforge。