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

Java 什么';你学习语言的方式是什么?,java,Java,我刚刚开始学习Java(参考第一本书) 我只是想知道学习任何语言的最好方法是什么 如何最大限度地利用这本书 一个人是应该研究这本书的内容,然后在电脑上尝试代码,还是同时进行?(学习概念,同时在电脑上尝试) 在我的情况下,我参考了这本书,并利用了论坛的帮助。我还想知道什么时候开始回答堆栈溢出:)因为我对这门语言还不熟悉,所以我知道的不多 (我只是经常在这里读别人的答案)当我想学习一门语言时,我给自己设置了一项困难的任务,比如哈夫曼编码,或者Facebook拼图,然后在这个网站的帮助下开始努力学习

我刚刚开始学习Java(参考第一本书)

我只是想知道学习任何语言的最好方法是什么

如何最大限度地利用这本书

一个人是应该研究这本书的内容,然后在电脑上尝试代码,还是同时进行?(学习概念,同时在电脑上尝试)

在我的情况下,我参考了这本书,并利用了论坛的帮助。我还想知道什么时候开始回答堆栈溢出:)因为我对这门语言还不熟悉,所以我知道的不多


(我只是经常在这里读别人的答案)

当我想学习一门语言时,我给自己设置了一项困难的任务,比如哈夫曼编码,或者Facebook拼图,然后在这个网站的帮助下开始努力学习

你可能想用一本书来了解语言的基础知识,不过…

最好的方法取决于你-我自己的方法可以总结为:

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

但有些人学习不好,喜欢更正式的课程,比如参加培训课程,我不能坐着不动,尽管作为一名前讲师,我曾经很高兴很多人有不同的感觉。

我通过一个项目学习了新的语言。也许你已经用另一种语言做了一些事情,或者你会发现一些有用的东西(比如编程工具)。然后试着用你想学的语言来写,首先用你对语言的理解和从书籍和网站上搜集到的东西。当您完成项目时,请社区中的人查看您的代码,并就出现问题的领域提出问题

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


我还强烈建议使用非常繁重的单元测试来构建项目。编写单元测试将为您提供一套坚实的工具,它们不会在书中向您展示,您的代码将得到改进,更重要的是,任何意外的语言习惯用法都会像一个。。。就像一次失败的测试。

这是一次重复,因为我记得不久前回答了这个问题,但对我来说,这取决于语言,以及我是否需要学习语言或完全新的想法

有了像哈斯克尔这样的语言,我认为这很难,因为它与我习惯的语言大不相同,我从书本学习开始。然而,实践经验是必不可少的,但我并没有从头开始尝试任何雄心勃勃的事情,而是专注于对现有代码的小修改

对于Ruby或Java等更简单的语言,我可能会做一个教程,然后我会尝试从头开始编写一个应用程序。当我碰到任何一堵墙时,我只是四处冲浪寻找答案,或者在这里提问,学习来自经验


事实上,不管怎样,做事是关键

对于我来说,最重要的事情总是找到我真正想用我想学的新语言做的事情。否则,就很难真正被激励。但一旦我有了一个想法,我就去阅读有关该语言的教程和文章,并开始在学习过程中构建我的项目学习


我以前读过很多书,但现在到处都有stackoverflow和教程,我发现自己越来越不需要它们了

我通常在谷歌上搜索尽可能最好的书(推荐最多的一本),我会快速浏览,只是为了了解语言的总体概念、良好实践等。然后我要么想一想,要么在谷歌上搜索一个程序,该程序能涵盖你使用该语言所能做的一切(当然不是每次都可以,但要尽可能多)。就像我在学习JavaEE(JSP、Servlets、JPA)时一样我决定写一个简单的刽子手游戏,首先我会做基本的,然后我会添加数据库等等。-首先我做了一个非常基本的程序,然后我添加了越来越多的。当然,我在写它的时候,我会一直用谷歌搜索好的实践,因为你可以编写一些东西,它会工作,但将来维护它可能会很困难等等


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

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

我个人仍然有一份我编写的NetflixPrize数据集的副本总的来说,微软说要解决这个问题,或者只是敷衍了事。不幸的是,这个数据集已经不再公开了(至少是Netflix自己的官方数据)


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

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

  • 使用语言使用的任何GUI框架
  • 使用套接字、流等东西
  • 同步
  • OOP样式(如果语言为OOP)
  • 多线程
  • 动态做事(针对插件)
  • 如果我在请求代码审查时做得正确
  • 如何使用其他框架
在java中,这几乎是任何SE桌面应用程序所能达到的程度。在PHP中(是的,我在一些我放弃的看起来很糟糕的PHP中做到了这一点),我学到了很多有趣的东西,主要是PHP不是