Java for the Beginner - The BEST Resources for Learning Java

Ranked #78 in Computers & Electronics, #969 overall

Everything you need to get started with Java

If you want to learn Java programming, you've come to the right place! Here you'll find everything you need to get off to a great start learning Java. You can start by downloading the Java Language and NetBeans Integrated Development Environment or Eclipse (for free!). Grab a few good books and tutorials (for free!), or purchase some of the best books written on the topic. I have personally used all these books and wouldn't recommend them if I didn't find them very helpful. You'll also find links to online support groups and forums where you can ask questions or search messages for fast answers, as well as links to code repositories with hundreds or thousands of source files where you can find practical examples of how others use Java.

Just what IS Java anyway?

Java is a (free!!) flexible programming language developed by Sun Microsystems, now owned by Oracle.

With Java, you can quickly build Web-enabled as well as full-featured stand-alone applications and games. Java programs are portable can be run on many different kinds of computer without being re-written. This was a revolution in programming languages and one of the biggest reasons why since it was first released in 1995, it has been one of the most popular languages ever.

The best part about Java is that the language itself is free from Sun Microsystems, and there are also several free options for training and support of programmers at all skill levels!

Free Java Book Giveaway!

Win one of 2 copies of "Java 7 New Features Cookbook "!

To thank me for including the book on this site, the publisher of the new book "Java 7 New Features Cookbook" contacted me and offered 2 free copies of the new book for readers of this page, To win your copy of this book, all you need to do is come up with a comment below highlighting the reason "why you would like to win this book" .

The contest is valid until the end of May, and is open to everyone. Winners will be selected on the basis of their comment posted. So get busy and write the best reason why you want the book. To receive the book, I will need an email address and your first and last name entered below, along with the comment. I will not sell or do anything else with this information, and I will not contact you unless you've won, but I will also need to provide your information to the publisher so they can get the book to you.

Enter a comment below with your name and email address. I will post the best comments and I will remove your email address and last name from the comment when I post them.

First Things First

Downloads you'll need to get started

Here you will find Links to download the Java SDK (Software Development Kit), NetBeans, Java's IDE, as well as other outstanding free tools like the Eclipse IDE and jEdit, a feature-rich java-based programmers' text editor. An 'IDE' is an "Integrated Development Environment" tool.

Note: While an IDE is not required to program in Java (without one you really just need the Java SDK and any text editor, and a huge amount of patience). I feel having an IDE is a great tool for the beginner and can really help with that learning-curve. An IDE is much more than just a text editor. The two most popular IDE's I am aware of are NetBeans and Eclipse. I personally prefer Eclipse, and if I were downloading just one tool besides the Java SDK, Eclipse would be it. Try them both if you have time and see what you like best - they are both free, but you probably only need one IDE.
Download Java and Netbeans directly from Sun Microsystems
Sun Microsystem's Java download page. You might also try NetBeans, a free development environment for developing Java applications.
Note: The SE kit will do for most beginners, the EE kit has added features for use with web server and networked applications, the ME kit has features especially for handheld devices.
Eclipse IDE for Java Developers - a must-have for beginners and Pros alike.
Eclipse IDE is an open-source (free software) project of the Eclipse Foundation. While there are several projects always going on within the Eclipse Foundation, the IDE itself is a very powerful, intuitive progamming tool and I highly recommend it. There is a rich library of plug-ins you can use to enhance your programming experience, however, even without extra plug-ins, the tool is a godsend for beginners - it actually will help with syntax, it debugs and compiles on the fly WHILE YOU PROGRAM, and makes suggestions to fix errors in your program.

In my own professional life I use a version of Eclipse every day. (An expensive commercial IBM product provided by my employer called Rational Application Developer which really is just Eclipse with some IBM Plug-ins). At home I use Eclipse.
jEdit - A great Java-based Programmers Text Editor (Optional)
jEdit is a mature, platform independent programmer's text editor. While jEdit beats many expensive development tools for features and ease of use, it is released as free software with full source code, provided under the terms of the GPL 2.0.

Free Java E-books and Tutorials

You'll find everything you need right here to get started now!

You'll find there are many books and websites to help with learning Java programming, but not all are very helpful for actually learning to program in Java. The links, and the recommended books below are the best I've found anywhere for beginners, and will give you a solid foundation from which to build. I will be adding more as I find them, or if you have suggestions, please feel free to mention them in the reader feedback section below.
The 'Official' Sun Java Tutorial Online - Free!
This is the newest version of the original Java Tutorial "Trail" - straight from the source, Sun Microsystems. While this is a great resource, and free, the web format can be tedious. A hard copy of the book can be purchased below at a reasonable price.
Essentials of the Java Programming Language, Part 1 - Free E-Book! Download
This book takes you on a straight and uncomplicated path through the more common programming features available in the Java platform. You will learn how to build applications, applets, and servlets, how to build a basic user interface that handles simple end user input, how to read data from and write data to files and databases, and how to send and receive data over the network. (Also see Part 2) While this is a great resource, and free, the download is in web format which can be tedious. A hard copy of both parts of the the book can be purchased in one volume below at a reasonable price.
Essentials of the Java Programming Language, Part 2 - Free E-Book! Download
This series of lessons builds on the material presented in Java Programming Language Basics, Part 1, listed above. The lessons and code examples for Part 2 are somewhat more complex. They walk you through network communications, building a user interface using more components, data encryption and decryption, and other advanced topics. (Also see Part 1) While this is a great resource, and free, the download is in web format which can be tedious. A hard copy of both parts of the the book can be purchased in one volume below at a reasonable price.
Introduction to Java - Online Tutorial
This is a very good Java tutorial e-book in 'Wiki' format, Introduction to Java starts with a great explanation of how Java works and covers several topics from the very basic to complex. This is a very nice resource.
Introduction to Java Programming| What is Java
An introduction to java programming page that relates the basics of how java works and has links to more tutorials and resources for learning Java.
Programming: Introduction to Programming Using Java
This book is great for the non-programmer wanting to learn Java - The approach is that of learning about Programming, with Java as the language used for the discussion and examples. While not a comprehensive primer on the Java Language, it is a great place to start to learn programming concepts AND a bit about Java. There is an HTML version online, and links at the bottom of the page to download the entire book as a PDF I also recommend buying a paperback version of this book, which is listed in the Amazon list below..

My Personal Java Book Recommendations:

It's essential to have a reference handy as you learn. On-line books are great, but nothing takes the place of having a hard-copy in front of you.

(Click on the picture or link to see more book details at Amazon)

My personal favorite is 'Thinking in Java', listed below. The author manages to explain the more difficult concepts in language that is clear and concise, yet doesn't talk down to the reader like some other books. Also - check out the other great books below, which I've found very helpful..

Thinking in Java (4th Edition) by: Bruce Eckel

This book is great! This is a good one for learning, yet stays very useful as a reference and for more advanced topics. Walks carefully through the concepts underlying all of Java programming using a lot of, right to-the-point examples, and also gets into more serious Java topics like Java AWT, multithreading, network programming with Java and covers those topics with the same thoroughness and simplicity. If you get only one Java book - this should be it! 1500 Pages.
Programming: Introduction to Programming Using JAVA by: David J. Eck

Completely new to programming? Get this book. As described in the free books section above, this book is a great book about programming for the beginning programmer, which happens to use Java. It give a well explained introduction to new programmers, with an emphasis on programming concepts and fundamentals using the Java Programming Language. If you'd like a free peek at this book, you will find a link to download it in the free books section above, However, I highly recommend purchasing the paper copy as it is (for me) a easier to follow, notate, and work with when you have a real book right in front of you.
Head First Java, 2nd Edition (See all Java Certification Books)

This very popular book takes a humorous approach and breaks things down for the reader, putting concepts into ever-day, easily understandable language. People love this book, it is an easy read, and a good way to really 'get' the concepts in your head, but I would also recommend a more comprehensive and technical resource, like Thinking in Java (4th Edition) to go with it.
Java All-in-One For Dummies
In the classic 'Dummies' style, you don't need to be a Dummy to get a lot out of this book. This newly released resource includes eight "minibooks" plus comprehensive online resources, covering everything new programmers need to get going with Java. It focuses on getting up and programming with Java and covers all the basics - explore programming essentials, object-oriented programming concepts, and special programming techniques. Also covers much more - including usage and syntax for Java 7 (the newest version), programing for mobile devices and more. This is a great resource, offering a lot for the beginner on up.
Order this book now on Amazon!Essentials of the Java Programming Language: A Hands-On Guide
by: Monica Pawlan
Rated 5-stars on Amazon!

Essentials of the Java Programming Language is the perfect starting point. This accessible, hands-on tutorial employs a "learn-by-doing" approach to introduce you to the basics. It starts with a simple program, then develops it bit by bit, adding new features and explaining important concepts with each subsequent lesson.
Order this book now on Amazon!The Java Tutorial: A Short Course on the Basics, 4th Edition
by: Sharon Zakhour, Scott Hommel, Jacob Royal, Isaac Rabinovitch, Tom Risser, Mark Hoeber

A hands-on guide to the Java programming language, The Java Tutorial, Fourth Edition is perfect for any developer looking for a proven path to programming with Java SE. This popular tutorial from Sun Microsystems is a classic that has been updated to also cover Java 6 Standard Edition (SE) with the most up-to date features.

NEW!

A nice resource for learning about new Java 7:

Java 7 New Features Cookbook from Packt PublishingJava 7 New Features Cookbook from Packt Publishing
If you are considering learning about the new features in Java 7 you might give the new offering from Packt Publishing, Java 7 New Features Cookbook, a try. This book offers comprehensive coverage of the new features of Java 7, organized around easy-to-follow programing recipes. It covers new features such as the try-with-resources block, the monitoring of directory events, asynchronous IO, new GUI enhancements, and more. It features an example-based approach that focuses on key concepts to provide the foundation to solve real world problems. A great resource if you are already somewhat familiar with Java and one who likes to learn by example.

Reader Book Recommendations

Please list your favorite book for learning Java, and a mini-review!

  • gerritschimpf Apr 5, 2012 @ 6:18 am | delete
    Nice article for java beginners.
  • DotComBusted Apr 3, 2012 @ 7:23 pm | delete
    Great lens. I begun learning Java 3 months ago... I think is the best coding platform ever
  • HealthierTips4U Mar 30, 2012 @ 11:04 am | delete
    This is very helpful and I will be sure to pass the page along to others. I like that there are "several free options for training and support of programmers at all skill levels!" Nice to know!
  • seetaram Feb 23, 2012 @ 1:39 am | delete
    Java by santosh kumar
  • Jirka Pinkas Feb 18, 2012 @ 3:37 am | delete
    Also check out this site for Java online video tutorials: http://www.java-online-video-tutorials.com/ They are completely free.
  • Phoebe Smythe Jan 16, 2012 @ 12:08 pm | delete
    I used 'Developing Java Software by Winder in first year uni.
    http://www.blikbook.com/book/developing-java-software
  • Anoop Dixith Jan 1, 2012 @ 2:56 pm | delete
    Also, An American Lady teacher Mary Herberth explains all the essential concepts of Java in a single class (class as in both Java class and school class) in an amazing and naughty way.

    http://theladyteacher.blogspot.com/
  • audiocloth Oct 7, 2011 @ 3:02 pm | delete
    Here's another recommendation for Thinking in Java.
  • FillmoreMusic Sep 15, 2011 @ 7:10 am | delete
    I agree with you, Darkhorse - great recommendations on all of these. My favorite is Thinking in Java too -he gives a good foundation for learning, lots of examples which male sense, and it is also a very complete reference for looking things up.

Online Forums and Code Respositories

Get in touch with other Java programmers and find examples to get the answers you need.

Sometimes, even with the best of resources we have questions or need help or examples to refer to. The following are links to various forums and Java code respositories.
Sun Developer Network Forums
Sun Developers Online Community - Free!
You can browse the forums as a guest or login and post your own questions.
IT/Developer Network Java Forum
A moderated question and answer Java forum - Ask away!
ProgrammingTutotials.com Java/J2EE Forum
A community for programmers and those who want to learn to program. Here you will find a General forum for discussions on any language or development related topic as well as specific forums on Java/J2EE. Feel free to post questions, help provide answers, or just meet and greet. Posting of code samples are welcome!
Open Source Java Programming Code
A huge library of source code on a variety of topics organized by topic/technology.
Java Programming Example Source
Java Programming Source code sorted by functionality.

Before you get started

Before starting, you might consider briefly WHY you want to learn Java and what you want to do with it. Java is great language to learn and very flexible. If you can program in Java and like doing this sort of thing for a living you can make pretty good money in a career as a Java Programmer. It may take some patience and a bit of time and effort to learn, but the results are worth it. It's what I do, and I love my job.

That being said, if you are here because you want to do some quick Java Applets for your web page, or have an idea for a new smartphone app, etc, and you just want it now, you might find these links to some very modestly priced resources useful as well - They can really help you get what you want now without the learning curve. If not interested in these, please continue reading for the FREE resources.
CodeBrain Java Applet library
CodeBrain offers a great way to get off the shelf and custom-kit Java applets right away, and they offer help with tutorials on getting applets set up and working on your site
Create your own iPhone and iPad Apps
The top iPhone apps are downloaded 50,000 times per day, making tens of thousands of dollars each day for their developers! This is what turned Angry Birds into a $140 million dollar a year company in only a few months.
Reading How To Make An iPhone App Will Help You Become One Of These Guys

Core Java Technology Tips

Tips for using core Java SE APIs

Daily topical articles with examples and a lot of good information about using core features in Java.
Loading

For more Advanced Readers

Looking for more of a challenge?
Create your own Programming Language
Need to do something not really suited for a specific programming language, or would like to create your own programing language and make it work your own way, then this is for you. Source for 2 full Languages included, one in Java, and one in Ruby.

Java Technology Fundamentals

Daily Java news on various aspects of Java Technology

Learn about the Java programming language and platform, and how to create applications.
Loading

Great Stuff on CafePress

Java Programmers

White T-Shirt

Price: $20.99 Buy Now

Like 2 Code Dark T-Shirt

Dark T-Shirt

Price: $22.99 Buy Now

Powered by CafePress

Reader Feedback

Please tell us what you think, or suggest additional links

  • stevewdewitt Oct 26, 2011 @ 7:48 am | delete
    If you are going to write JAVA, I would recommend doing it on some type of linux machine
  • darkhorse85 Oct 26, 2011 @ 9:13 am | delete
    Hi Steve, I was wondering why you would recommend doing Java on linux? I worked with java for several years on different versions of Unix - Solaris, and HP/UX, but never on linux. For the last few years I have worked exclusively with java on Windows. Honestly, it doesn't make a difference to me. Java is java - it's portable and cross-platform. The only differences I've seen are the development tools. Back when I was working in unix I didn't have the great development tools like Eclipse, which I use now in Windows (actually I use RAD 7.5 at work - which is an IBM version of Eclipse with a lot of add-ons) - I worked in text editors for development. I suppose things are different now with linux being a more user friendly unix-like OS. Are there some great tools/IDE's you could tell us about for linux? Thanks for your comment!
  • jeffrichley Feb 24, 2012 @ 8:01 am | delete
    If you are going to develop on a linux box, which is quite nice by the way, just use Eclipse.
  • ModernChakra Oct 21, 2011 @ 3:26 am | delete
    Bookmarked as a reference. Thank you for your hard work, much appreciated.
  • HourglassThorne Oct 18, 2011 @ 5:52 pm | delete
    Thank you for creating such a thorough and informative lens. I'm definitely bookmarking this for future reference.
  • Load More

My Lenses

Loading

by

darkhorse85

I'm an Artist, Writer, Java Programmer, and Parent. The great love of my life are my two sons. In my spare time I work on restoration of my 1920's Cra... more »

Feeling creative? Create a Lens!