- J2SE SDK Download
- J2EE SDK Download
- Open JDK
- Netbeans Download
Chapter 1: Overview: The Mental Landscape
Chapter 2: Programming in the Small I: Names and Things
Chapter 3: Programming in the Small II: Control
Chapter 4: Programming in the Large I: Subroutines
Chapter 5: Programming in the Large II: Objects and Classes
Chapter 6: Applets, HTML, and GUI's
Chapter 7: Advanced GUI Programming
Chapter 8: Arrays
Chapter 9: Correctness and Robustness
Chapter 10: Advanced Input/Output
Chapter 11: Linked Data Structures and Recursion
General Java Resorces
Sun's Java FAQ's. Collection of Frequently Asked Questions on various Java-related topics.
The Java Community Process. How to be involved in the Java specification development.
Sun's Java training courses (US). (If Sun's courses seem a bit steep, or you want something on-site, or prefer an instructor with more hands-on Java development experience, also see these courses.)
Java Certification. Although it is highly controversial if certification actually proves anything about your Java skills, in many cases certification is useful in getting a new or better job.
Specific Java Products & Technologies
Java Servlets. (Also see this servlet programming resources page.)
JavaServer Pages (JSP). (Also see this JSP programming resources page.)
JavaServer Faces (JSF) (Also see this JSF tutorial.)
We're told that the future of applications relies on app servers and rich, graphical clients. But will market share or common sense determine which method of building RIAs that developers choose most?
Up to now, Google has been the one with the RIA platform that has tried to leverage Java, along with JavaScript (which is related in style but not in architecture, and which is essentially a product of Mozilla). Google Web Toolkit uses Java tools as a staging ground for Asynchronous JavaScript (AJAX) applications. Mozilla has been testing the waters for some time with its own RIA platform experiment called XULRunner; and Curl has had the wherewithal to go it alone, with both a development environment and a runtime that rely on no single pre-existing platform. (Some dispute whether AJAX truly qualifies as RIA, but I tend to say that if an application can run outside the browser with full graphical resplendence, as though it had been installed on the user's computer directly, then it's an RIA.)
To this mix of players, enter Sun Microsystems. Its JavaFX platform formally exited beta on Monday, and its objective is to further extend the Java 6 runtime platform onto more systems. Rich graphical applications built with JavaFX, like other Java apps since the 1990s, can run outside of the Web browser though maintain their links to servers through HTTP.
But JavaFX Script -- the programming language for this new platform -- is not Java, and it's not JavaScript. While it's not exactly a foreign language, especially for Web developers who find themselves learning new ones practically every month, it is -- like Flex for Adobe -- its own beast.
Got Advice for Students?
A very good java.sun.com article
(http://java.sun.com/developer/technicalArticles/Interviews/studentdevs/i...)
has 11 leading Java developers -- from Joshua Bloch to Tor Norbye to Chet Haase -- offering advice about how to become better developers. It's very useful if you're trying to figure out how to make it as a Java developer.
Here's a brief sampling:
Josh Bloch:
"Write lots of code. Have fun with it! Collaborate with people who are more experienced than you and learn from them. Join an open source project. Code reviews are a great way to learn."
Tor Norbye:
"Learn to use your tools. And I don't mean just enough to get by. I mean really learn how to use your tools. Become an expert user..."
... Learn how to make trade-offs....
... Finally, learn the platform APIs."
Chet Haase:
"Take the math courses you need. It doesn't need to be higher-level stuff, but I've leaned heavily on linear algebra and some amount of calculus for a lot of what I've done."
Rags Srinivas:
"Don't be overwhelmed by the language or the platform. If you break it down, the basics of the language are based on object-oriented programming, threading, concurrency, and event-driven programming. It's necessary to become a master of these concepts since the rest of your career will depend on this foundation. "
It's worth checking out.