英文原文:http://www.fromdev.com/2012/11/Best-Way-To-Learn-Java.html
我们都清楚这样一个事实:在学习一个新事物的时候,需要在所有可能的学习方式中找到最好的一种去开始。这可能是项非常困难和耗时的任务,而且通常这会成为影响是否你会继续你的追求的决定性因素。
你可能已经找到了hundreds of free java learningresources(成百的Java 学习资源),接触了许多种不同概念的框架。
最后,如果你决定了学习Java 编程,在开始你可能不清楚该从什么地方开始学习,这也是本文为了指导你解决这个问题的主要写作目的,本文将带你领略学习Java的最佳途径中许多经受时间考验的方法。
第1步:下定决心——不受别人的看法影响
不是每个人都喜爱Java 编程,因此,有些人会用他们自己喜爱的语言来劝阻你学习这门语言。编程世界里充斥着许多语言,他们相互竞争,各个千秋。所以,选择一门最好的语言是不切实际的。因为,解决同样的问题,一门语言对你来说很适合,但对于其他人却不一定。
因此,你要做的不是打量Java语言哪些好那些差,而是将你的注意力重点放在你所选择的语言的学习上。
第2步:安装Java SDK和Eclipse IDE
尽管,通过仅仅只安装JavaSDK 来学习Java是非常有可能的,但是这种方式真的会局限你的学习曲线使你的进展缓慢。如果将JavaSDK 整合到一个IDE,这将使你能够更快速、更高效地学习,因为IDE为你提供了一个集成的开发坏境,很多其他跟学习无关的琐碎的事它都会帮你完成。而且在各种各样的IDE中,Eclipse毫无疑问是这方面做的最好的,还不收费。
Java SDK安装步骤
- 进入 Java Download Page(Java 下载页面)
- 点击“Download JDK”
Eclipse IDE安装步骤
- 进入 EclipseDownload Page(Eclipse 下载页面)
- 下载“Eclipse IDE for Java EE Developers”
- 解压下载的zip文件到一个文件夹
第3步:学习Java的原理
你必须熟知的一些关键性概念:
·面向对象编程的概念:继承、封装、抽象、多态
·为什么说Java是平台无关的?为何它可以轻易做到运行于各种操作系统上,例如:Unix、Windows和Mac?
·什么是Java虚拟机?它又是如何运作的?
·理解Java集合框架
·深入理解Java数据类型;和熟知java.lang包下的几个重要类的用法,例如:String、Math、System;以及理解Java IO流的概念等等其他概念
第4步:阅读资深前辈著作的经典书籍
我的选择是免费的 Thinking in Java(译注:中文名《Java编程思想》)。
还有 fewawesome java books that I recommend(一些我认为不错的Java书籍)。
第5步:开始用你所学知识写一个简单的程序
当然,我不是叫你去写像“HelloWorld”这类简单的程序啦,我将推荐你做一些像下面这些实际性的训练:
逻辑训练
·计算一个数的阶乘
·创建一个斐波那契数列
·找出1到100之间的质数
·将阿拉伯数字表示的数用对应的英文单词输出(例如:123= One Hundred Twently Three)
文件读取/写入处理训练
·读取一个文件并将其内容在控制台显示
·列出某个目录的所有文件
·创建一个文件,并在其中写入一些内容
·从控制台读取用户的输入
字符串操作训练
·在一个大文本文件中查找一个字符串
·替换字符串的某一部分
·将用表示的数的字符串解析为实际表示数的数据类型
除了上面这些练习以外,这里还有一些其他的练习 Java Basic Exercise(Java基础训练)。
第6步:进阶下一个水平——简单却还不足
如果你完成了以上的Java编程基础训练,并对这门语言的使用达到了能够上手的水平的话,你可以继续朝下一个水平走,创建要求更高复杂度和更高水平编程的程序和应用。这样做,你将亲身体会到一个程序员所需面对的现实生活复杂性。
在这个水平上,我将推荐你做一些像下面这些的训练:
·搭建一个任意高度的数字金字塔,其高度由用户输入决定
·尝试着做一个2人对战的文本小游戏(例如:TicTac Toe(井字棋))
·往这个游戏里加入一个“电脑玩家”选项,使人类玩家可以和电脑对战。现在,你将需要思考打败人类玩家的策略:)
第7步:学习Servlet和JSP
Web 应用程序是本质上是对应用程序服务器(或web)的扩展。Java EE 6的面世,相对于前一个版本,有了很大的提升,从专业角度讲就是加入了一些好的标准API,例如:Servlet、JSP。学习这些API将促使你接触新的事物,并将为你的Java 编程整入一些框架和工具。
如果你已经完全理解了Servlet技术和JSP技术,我将推荐你做一些像下面这些的训练:
·搭建一个用于采集用户填写的表单信息的应用程序,并将这些信息通过JDBC存入MySQL数据库
·搭建一个基于Web的简单Tic Tac Toe游戏(双人博弈)
·为这个游戏添加授权过程,以确保用户只能通过提供用户名和密码来使用
第8步:学习JSF
JSF(全称:JavaServer Faces) 是一个基础Web框架,它进入Java web应用程序领域,就是为了帮助简化用户界面的开发,它可以通过在一个页面里装配各种可重用组件来完成简化。而且,它还附带许多受欢迎的功能,例如:通过标签库操作和访问组件、自动保存表单数据、并由它的“表单数据再置入(不确切的翻译)”功能使的保存的表单数据能在客户端显示。
如果你已经完全理解了JSF技术,我将推荐你做一些像下面这些的训练:
·搭建一个简单的基础web的聊天程序
·搭建一个简单的购物车应用程序
第9步:搭建一个不错的Web应用程序
Web 应用程序分为两类,展示型和服务型。基于你喜欢的类型, 通过运用目前你已学到的web组件创建一个不错的web应用程序。
在这一点上,我推荐你从研究一些优秀的JSF框架开始,它们中的每一个适用于其所对应的需求。
第10步:保持学习和跟进最新技术趋势
最后,如果你是一个程序员,你是无法逃避学习的。这是因为,在编程世界里没有地方能够容下老套、已淘汰的专业技能。因此,跟进最新技术趋势,以获得比其他人更具竞争力的技能,对于一个Java程序员是非常重要的。做到这点的最好方法是,将你新学到的知识应用到实践中。
对此我推荐你阅读这些Java and related Technology Sites and Blogs from experts(技术牛人们的Java及相关技术站点和博客)。