如何开始学习新语言

时间:2009-11-13 03:32:14

标签: programming-languages

从大学毕业后(06)我主要使用java和J2ee堆栈的一些成员。我曾尝试过一些时髦的脚本,同时试图在工作中得到一些东西(没什么大不了的)。

我厌倦了做同样的旧垃圾,想要学习新东西,但每次我坐下来看东西都要学习......我的信息过多了。从c#到python..ruby到groovy和10个框架。一个人应该从哪里开始?

如果我选择一个,我不想只是选择一本书并阅读页面到页面,同时输入书中证明的代码。那么我应该先规划好我的小项目吗? 是否有任何事实上的项目可以在学习新语言时尝试实施。这些项目将尝试涵盖相关领域的所有方面(网站/独立)。

当你学习第二语言时你做了什么?

10 个答案:

答案 0 :(得分:2)

从几种语言的HelloWorlds开始,看看它带你去哪里。唯一真正的开始,就是开始!

答案 1 :(得分:2)

你可以看看CodeKata,看看它是不是你想要的。他们不是一个非常大的项目,但他们是很好的做法。

我经常尝试用新语言编写一个Sudoku Solver作为我的第一个“真实”项目。一旦我能做到这一点,我就相信我掌握了语言的基础知识。

答案 2 :(得分:1)

处理一些标准问题的一种方法是使用Project Euler:http://projecteuler.net/ 这是一系列需要编程才能解决的数学问题,其中一些可能非常具有挑战性。人们为此使用各种语言(您可以在网站上看到语言细分)。但是,你需要在某种程度上进入数学。

答案 3 :(得分:1)

以下是我在学习一门新语言时会得到帮助的一些事情(它们可能不适合你):

  • 获取规格。你会犯错误,所以你需要知道如何正确使用 ,而不是教程可能会说的。
  • 小一点。对您来说“小”的依赖取决于您之前的编程经验。控制台应用程序很好,因为它们很简单,让您熟悉该语言而无需处理图形框架。
  • 有明确的目标。这可能类似于编写一个简单的计算器,解谜器或一些练习 - Project Euler是一个常见的喜爱,但我也喜欢Candian Computing Competition问题 - 我发现它们往往不如Project欧拉。
  • 学习语言的范例。不要试图做一些语言不应该做的事情。这是最重要的一点 - 如果你试图在C中编写Lisp代码,你就会知道痛苦。如果您正在学习Erlang,请使用流程模型,否则您实际上并不是在学习语言。重要的是不要试图强迫语言做它不能做的事情,否则你就不会喜欢它。你会发现这很难,特别是考虑到你是一个Java程序员,他被灌输了一种真正面向对象的方式(提示:它不是)。

答案 4 :(得分:0)

到目前为止,我从中学到的语言是lisp。 Paul Graham选择ANSI Common Lisp或On Lisp。阅读,评估,打印,学习。

答案 5 :(得分:0)

迷你网络服务器和奇怪的推特客户似乎风靡一时。而且,正如您所知,编写博客平台是新的“Hello,World”

我喜欢在学习新语言时深入学习,例如,为了处理unicode,我需要学习哪些语言?我该如何处理本地化? IPC看起来像什么......我如何管理线程?通常可以帮助我更快地写出更严肃的事情。

答案 6 :(得分:0)

我学习一门新语言的方法是将我已编码的程序移植到新语言

答案 7 :(得分:0)

恕我直言,如果您在学习时想要解决一个真正的问题,那么获取新语言或框架总是更容易。尝试在工作中找到一个有趣的,非平凡的问题,或者只是想要划伤的个人痒,然后潜入并开始使用您想要学习的工具。写着“Hello,World!”无数次只会让你到目前为止。

答案 8 :(得分:0)

我会推荐像蜥蜴比尔那样的代码卡塔。这对我来说最近非常成功。我一直是ASP.NET / C#开发人员,但不得不为最近的项目学习Ruby on Rails。

因为我已经在做代码kata来学习键盘快捷键是Visual Studio,所以我有一个项目我可以用一种新语言复制而不必决定如何开发它。我已经有了解决方案。在这一点上,它只是将其翻译成一种新语言。

我认为这让我更好地进入Ruby,因为我可以与我在C#中已经完成的工作建立联系,并缩小两种语言之间的知识差距。

答案 9 :(得分:0)

我自己也对数据库应用程序感到无聊。

我在斯坦福大学观看了这个iPhone课程,并对Objective-C和iPhone编程感到兴奋 你可以找到所有讲座的视频link text