开始学习java

语言发展:C->C++->java,未来可能是Go。知道要学的东西处在什么样的一个位置很重要。

自学的难处,一是不知道学习路线(road map),二是难知道自己在哪个阶段,选材料的时候就比较困难,解决方法是看别人的建议,两者多试,找合适自己的。

学习材料以文字资料为主,视频有太多的不方便。

陈皓的建议

陈皓在“程序员技术练级攻略”一文中写道学习java的方法,在“进阶加深”阶段:

  • Java 的学习主要是看经典的 《Java 核心技术编程 Core Java》和《Java编程思想 Thinking in Java》(有两卷,我仅链了第一卷,足够了,因为Java的图形界面了解就可以了)
  • 学习JDK,学会查阅Java API Doc http://download.oracle.com/javase/6/docs/api/
  • 了解一下Java这种虚拟机语言和C和Python语言在编译和执行上的差别。从C、Java、Python思考一下“跨平台”这种技术。
  • 学会使用IDE Eclipse,使用Eclipse 编译,调试和开发Java程序。
  • 建一个Tomcat的网站,尝试一下JSP/Servlet/JDBC/MySQL的Web开发。把前面所说的那个PHP的小项目试着用JSP和Servlet实现一下。

注意这并不是针对新手的,而处于“进阶加深”阶段。

在”高级深入”阶段:

  • Java是真正的面向对象的语言,Java的设计模式多得不能再多,也是用来学习面向对象的设计模式的最佳语言了(参看Java中的设计模式)。
  • 推荐阅读《Effective Java》 and 《Java解惑
  • 学习Java的框架,Java的框架也是多,如Spring, Hibernate,Struts 等等,主要是学习Java的设计,如IoC等。
  • Java的技术也是烂多,重点学习J2EE架构以及JMS, RMI, 等消息传递和远程调用的技术。
  • 学习使用Java做Web Service (官方教程在这里

C++和Java都不是能在短时间内能学好的,C++玩是的深,Java玩的是广,我建议两者选一个。我个人的学习经历是:

  • 深究C++(我深究C/C++了十来年了)
  • 学习Java的各种设计模式。

10 Ways to Learn Java in just a Couple of Weeks

  1. Java Basics - Oracle出的
  2. Introduction to Programming in Java - 作者是Princeton University的 Robert Sedgewick ,也是《Algorithms, 4th Edition》的作者。
  3. Learn Java Online - 交互(interactive),可以在线写代码,很方便
  4. Learn Java the Hard Way - 要收费。
  5. Programming by Doing
  6. Java for Complete Beginners - video
  7. CodingBat - 交互(interactive)
  8. Java (Beginner) Programming Tutorials - youtube视频,java7的
  9. Object-Oriented programming with Java - coursera课程,加州大学的
  10. Java Programming Exercises - 练习,有答案
  11. 参考网站:StackOverflow, and Reddit

quora上的回答

quora:What are some tricks to learn Java quickly?

A Java Beginners Tutorial - How to Get Started with Java?

The Java™ Tutorials

知乎上的回答

知乎:哪本书适合推荐给 Java 初学者?

这里说《Core Java》适合初学者。

这个答案总结的不错(我加了一些参考链接):

入门

进阶

高级

J2EE

不过我打算看英文的。

stack overflow上的推荐

Language Books/Tutorials for popular languages 里有关于java的:

Online Tutorials
Sun’s Java Tutorials - An official tutorial that seems thourough, but I am not a java expert. You guys know of any better ones?
Books
Head First Java - Recommended as a great introductory text by Patrick Lozzi.
Effective Java - Recommended by pek as a great intermediate text.
Core Java Volume 1 and Core Java Volume 2 - Suggested by FreeMemory as some of the best java references available.
Java Concurrency in Practice - Recommended by MDC as great resource for concurrent programming in Java.

The Java Programing Language

不过推荐的有点粗糙。

风格

Google Style Guides 中有Google Java Style Guide ,写代码的时候可以参考style,有人把它翻译成了中文的:Google Java编程风格指南.

小结

先看《core java》


再补充。。。