Programming languages 如何开始学习新语言

Programming languages 如何开始学习新语言,programming-languages,Programming Languages,自从大学毕业(06)以来,我主要从事java和J2ee堆栈的一些成员的工作。我在尝试在工作中整合一些东西(没什么大不了的)时,使用了一些groovy脚本 我厌倦了做同样的废话,想学点新东西,但每次我坐下来看要学的东西时,我都会被信息压得喘不过气来。从c#到python,从ruby到groovy,再到10种框架。男人应该从哪里开始 如果我选了一本书,我不想只选一本书,一边读一页又一页,一边输入书中证明过的代码。那么我应该先计划我的小项目吗? 在学习一门新语言的同时,是否有任何事实上的项目可以尝试实

自从大学毕业(06)以来,我主要从事java和J2ee堆栈的一些成员的工作。我在尝试在工作中整合一些东西(没什么大不了的)时,使用了一些groovy脚本

我厌倦了做同样的废话,想学点新东西,但每次我坐下来看要学的东西时,我都会被信息压得喘不过气来。从c#到python,从ruby到groovy,再到10种框架。男人应该从哪里开始

如果我选了一本书,我不想只选一本书,一边读一页又一页,一边输入书中证明过的代码。那么我应该先计划我的小项目吗? 在学习一门新语言的同时,是否有任何事实上的项目可以尝试实施。这些项目将尝试覆盖相关领域的所有方面(web/独立)


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

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

从几种语言的HelloWorld开始,看看它们会把你带到哪里。唯一真正开始的方法,就是开始

你可以看看,看看这是否是你想要的。它们不是很大的项目,但它们是很好的实践


我通常试着用一种新语言写一个数独解算器作为我的第一个“真正”项目。一旦我能做到这一点,我就非常自信地掌握了该语言的基本知识。

迷你网络服务器和奇怪的twitter客户端似乎非常流行。正如你所知,写博客平台是新的“你好,世界”


当我学习一门新语言时,我喜欢钻研精确性,例如,为了处理unicode,我必须学习该语言的哪些方面?我如何处理本地化?IPC看起来像什么。。。如何管理线程?通常有助于我更快地写更严肃的事情。

我学习新语言的方法是将我已经编写的程序移植到新语言中

处理一些标准问题的一种方法是使用Project Euler:
这是一系列需要编程来解决的数学问题,其中一些问题可能非常具有挑战性。人们为此使用各种语言(你可以在网站上看到语言分类)。然而,你需要对数学有所了解。

我想,如果你在学习过程中有一个真正的问题需要解决,那么学习一种新的语言或框架总是比较容易的。试着在工作中找到一个有趣的、非琐碎的问题,或者仅仅是一个你想抓挠的个人问题,然后潜入并开始使用你想学习的工具。第无数次写“你好,世界!”只会让你走到这一步。

我会像蜥蜴比尔那样推荐代码卡塔。最近这对我来说非常成功。我曾经是ASP.NET/C的开发者,但在最近的一个项目中不得不学习RubyonRails

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


我认为这让我在学习Ruby方面有了一个更好的飞跃,因为我可以与我在C#中所做的事情联系起来,并缩小两种语言之间的知识差距。

以下是我在学习一门新语言时发现的一些帮助(它们可能对你不起作用):

  • 获得一个规范。你会犯错误,所以你需要知道如何正确使用东西,而不是教程可能会说什么
  • 从小事做起。什么对你来说算“小”取决于你以前的编程经验。控制台应用程序很好,因为它们很简单,可以让您熟悉该语言,而无需处理图形框架
  • 有明确的目标。它可以像写一个简单的计算器,一个谜题求解器,或者一些练习-这是一个常见的爱好,但我也喜欢这些问题-我发现它们往往没有欧拉项目那么抽象
  • 学习语言的范例。不要试图做语言不该做的事情。这是最重要的一点——如果您尝试用C编写Lisp,您将只知道痛苦。如果您正在学习Erlang,请使用流程模型,否则您实际上没有学习该语言。重要的是不要强迫语言去做它不能做的事情,否则你就不会喜欢它。您会发现这很困难,特别是考虑到您是一名Java程序员,已经被灌输了一种真正的面向对象方法(提示:事实并非如此)

    • 我自己也对Java数据库应用程序感到厌倦

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