你学习语言的方式是什么?

时间:2010-08-07 15:41:26

标签: java

我刚开始学习Java(参考Head-First书)。

我只是想知道学习任何语言的最佳方式是什么?

如何充分利用这本书?

是否需要研究本书的内容,然后稍后在计算机上尝试该代码或同时执行此操作? (学习概念并在同一时间在计算机上试试)

就我而言,我指的是这本书,并在论坛的帮助下。另外我想知道何时开始在Stack Overflow上回答:)因为我是语言的新手,所以我不太了解。

(我只是定期阅读其他人的答案)

15 个答案:

答案 0 :(得分:13)

“最佳”方式取决于您 - 我自己的方法可以概括为:

  • 读一本书
  • 写一些代码
  • 重复

但是有些人不会那么学习,喜欢更正式的东西,比如参加培训课程,我不能坐以待毙的东西,尽管作为一名前导师,我曾经很高兴很多人感觉不然。

答案 1 :(得分:2)

我通常首先阅读书籍并在每章后进行练习,试图理解基本概念并熟悉其功能

答案 2 :(得分:2)

我做了一些有趣的事情并尝试用新语言重写我的IRC机器人。这让我可以学到很多东西,包括

  • 使用语言使用的任何GUI框架
  • 使用套接字,流等方式
  • 同步
  • OOP样式(如果语言为OOP)
  • 多线程
  • 动态执行(对于插件)
  • 如果我在征求代码审查时正确地执行此操作。
  • 如何使用其他框架

在java中,这几乎是任何 SE 桌面应用程序的范围。在PHP中(是的,我在我放弃的一些看起来很糟糕的PHP中做到了这一点),我学到了许多有趣的东西,主要是PHP没有做到这一点。

使用此功能可以让您深入了解该语言的许多功能。它有时也很有趣。

答案 3 :(得分:1)

这是重复的,因为我记得很久以前没有回答这个问题,但对我而言,这取决于语言以及我是否需要只学习语言或全新的想法。

使用像Haskell这样的语言,考虑到它与我以前的习惯完全不同,我认为很难,我开始学习书本。然而,实际经验是必不可少的,但我不是从头开始尝试任何雄心勃勃的事情,而是专注于对现有代码的小修改。

使用像Ruby这样的简单语言,或者实际上是Java,我可以做一个教程,然后我会尝试从头开始编写应用程序。当我遇到任何一面墙时,我只是四处寻找答案,或者在这里问问,而且学习也来自经验。

实际上做事是关键,无论如何。

答案 4 :(得分:0)

当我想学习一门语言时,我为自己设定了一项艰巨的任务,比如Huffman Coding或Facebook Puzzles,并在这个网站的帮助下开始抨击它。

您可能希望使用一本书来获取该语言的基础知识,但是......

答案 5 :(得分:0)

我通过提出一个项目来学习新语言。也许你已经用另一种语言或者你会发现有用的东西(比如编程工具)。然后尝试用您想要学习的语言编写它,首先使用您对语言的理解,并从书籍和网站中收集。当您完成项目时,请开始在社区中询问有人查看您的代码并询问问题区域的问题。

重要的是要意识到语言通常非常普遍,而问题会给它带来背景。例如,我可能知道如何开发Java应用程序,但这并不意味着我知道如何开发J2EE应用程序。相同的语言,不同的背景;因此,您可能希望在提出学习项目或项目时考虑这一点。

我还强烈建议使用非常繁重的单元测试来构建项目。编写单元测试将为您提供一组固定的工具,他们不会在书中向您展示,您的代码将得到改进,更重要的是,任何意想不到的语言习语都会像......一样失败的测试。< / p>

答案 6 :(得分:0)

对我来说最重要的事情总是找到我真正想要用我想要学习的新语言做的事情。否则很难真正有动力。但是一旦我对某些事情有所了解,我就会阅读有关该语言的教程和文章,并开始构建我的项目学习。

我曾经阅读过很多书,但今天随着stackoverflow和教程到处都发现我的自我需要的越来越少。

答案 7 :(得分:0)

我通常谷歌可以获得最好的书(一个有大多数推荐的书),我会非常快速地浏览它,只是为了获得语言的一般概念,良好实践等等。然后我要么想一想,要么google一个程序能用这种语言覆盖你可能做的一切(好吧不是每个人,但尽可能多)。就像我学习Java EE(JSP,Servlets,JPA)时一样,我决定编写一个简单的hangman游戏,首先我要做基础知识,然后我会添加数据库etcetc。 - 首先我做了一个非常基本的程序,然后我添加了越来越多。当然,在写这篇文章的时候,我总是会google一些好的做法,因为你可以编写一些代码并且它可以工作,但是将来维护它可能会很难。

我认为,如果你正确地执行它,用你正在学习的语言写东西是最有效的方法。

答案 8 :(得分:0)

我个人仍然拥有NetflixPrize数据集的副本,我用这种语言编写算法来解决或者只是用它来解决。不幸的是,数据集不再公开(至少官方来自Netflix本身)。

无论如何,找一个有趣的项目,你很清楚你需要做什么来完成它并解决,然后学习语言和平台设施以及解决它的最佳实践。一旦你的脚湿了,然后分支出来,用你正在学习的语言/平台开始新的项目。

答案 9 :(得分:0)

对我来说:我只是通过启动项目来学习语言。今年夏天,我通过在C#上启动一个Web项目来学习C#.NET。当我遇到困难时,我要么谷歌它,要么只是从stackoverflow中受益! 如果你不自信:用Java开始一个迷你项目并看看它是怎么回事!

答案 10 :(得分:0)

如果你正处于学习编程的最初阶段,那么我认为在你阅读本书的过程中学习你所学到的东西会更有教学意义。不要等到你读完它才能进行练习。您可以理解这些知识,但能够充分应用它需要大量的练习。如果你不运动,很容易忘记你一周前学到的东西。

因此,当我学习一门新语言时,我通常会做的就是尝试解决一些问题。这有助于我评估我对语言的理解程度,并帮助我发现语言的深度。我在学习新语言时尝试解决的问题示例:

答案 11 :(得分:0)

如果您从未有任何编程经验,我认为开始一个项目并不是一个好主意,在这个项目中您会发现自己大部分时间都陷入困境并且需要Google或stackoverflow的帮助。

相反,获取一本书,浏览每个示例,尝试章节问题的一些结尾,从示例中键入代码并考虑根据您的需要修改程序的创造性方法。 您还可以通过观看Stanford's Engineering Everywhere或麻省理工学院OCW提供的视频讲座来补充您的学习。 在您的情况下,斯坦福大学的第一个免费视频讲座系列从Java开始,继续使用C ++,然后更深入地了解MIPS和一些脚本语言。

检查出来: http://see.stanford.edu/see/courseinfo.aspx?coll=824a47e1-135f-4508-a5aa-866adcae1111

至于开始回答开头的问题,你总是可以说出你最喜欢的TAGS是什么,并将其设置为“初学者”,这样StackOverflow就会显示更多“初学者”的问题。

答案 12 :(得分:0)

我经常做以下事情:

  • 阅读谈论相同的事情的书(前Java介绍,Java初学者,Java头先等)

原因是他们谈论同样的事情,但有时会使用不同的例子和不同的编码风格,这有助于我理解各种编码方式。通常,一个例子还不足以完全理解当你遇到困难时会发生什么。

  • 读取其他人写的代码。

上网并搜索您要查找的代码,他们以不同的方式撰写,您会发现哪种方法有利有弊。

  • 加入论坛并参与讨论。

确保在发布问题之前花一些时间。人们不喜欢简单的解决方案寻求者。我通常花几个小时寻找答案,如果我无法弄清楚,那么就开始尽可能详细地在线询问,这样我就得到了准确的答案。

答案 13 :(得分:0)

您是否拥有计算机科学或编程背景?如果没有,重要的是要学习数据结构和算法以及实际语言。有很多免费资源,虽然本书对你有所帮助,但你可能需要考虑参加CS课程来帮助解决一些概念。

如果您(或阅读此问题的任何其他人)感兴趣,您可以查看This site以获取计算机科学的介绍。开放课件还有很多其他好的课程。这个课程特别是所有100%的MID教师的所有流量或可下载的讲座视频,包括作业,测试和测验。

如果您已经拥有CS背景,那么请忽略我:)

答案 14 :(得分:0)

我认为开始一个小项目是最好的方式,最初坚持一本书总是有帮助的