A programmer's tale

Saturday, January 27, 2007

How to learn effective Java? Part1: Core java

When I was in college, I used to do one particular thing every semester. I used to spend more time to collect the study materials and then study those to finish the courses. And I think it’s very common to most of the college students. But the prudent part was how wisely the time distribution is made. If you spend much more time to collect the materials, you cannot manage your time to study all the materials. On the other hand, if you don’t collect descent amount of study materials in your hand, you probably miss something in you courses.
In my professional life I also find some sort of similar thing. we need good Java materials and of adequate amount. We also have to manage our time to study them, do some hands-on lab on those to cope up with the fast moving Java technology advancement.
There are lots of tutorials on Java on the net. If you google "Java tutorials", you will find thousands of millions of Java tutorials. But most of those tutorials are not for professional and effective use.
Here are some of my personal findings and ideas about learning effective Java. This part is all about core Java.

1. Books:
Books are always the best friends if they are good enough. I suggest the following books for core Java concepts:
a) Java Programming Language, The, 4th Edition
It contains all core concept and all J2SE modules usage. This book is written by Java language designers and developers. Hence you will learn from masters.
b) JLS (Java Language Specification):
It contains all Java syntax, semantics and types. How the types can be used. Some examples here are much better than the previous one.
There are many popular books in the market for beginning Java courses. But many of these books are below standard and feed your brain with miss concepts. I haven’t read the book "Java And Object Oriented Programming Paradigm" by Debasish Jana. But I think it can be a good read. If anyone have read this book, please tell me about it.
Some other good core Java books are:
Core Java 2: Volume 1 and 2 by Cay S. Horstmann and Gary Cornell , Thinking in Java by Bruce Eckel and Java in a Nutshell by David Flanagan.
The best Java book I have ever read is "Effective Java Programming Language Guide" by Joshua Bloch. This book is very much useful for professional Java programmer. It has all the materials to write rock solid, stable and robust Java code. If you read the book thoroughly, I give you the guarantee that your debugging of Java code will be easy and take less time, you will learn how the experienced programmer can make a mistake, how hashCode of your class work, how to write efficient hashCode, how to serialize and deserialize objects correctly, what to write and what not to in Java and many many more things. Second volume of "Effective Java Programming Language Guide" will be published in this year end.
If you want to go deeper then you can read books on particular topics like concurrency, generics, Java io etc. I will tell those in the next sequel of this entry.

2. Online tutorial and Developer forum: Sun Java online tutorial is the best resources for online Java tutorials.
The other Sun Java resources contains Technical Articles, Technical Tips and also quizzes. The best way to get from it is to subscribe it’s SDN (Sun Developer Network) newsletter. You will get new articles and tips in your main box. The other developer networks are IBM developerworks, Oracle Java center. Some good sites are javalobby, javaworld and JDJ (Java Developer Journal). I also suggest to subscribe to their respective newsletter so that you will be updated with the latest happenings in Java world. You will also get the full digital addition of JDJ when you have the free subscription.

3. Browsing good Open Source project code:
Browsing Open Source code is one of my favorite ways for learning practical Java code. But be sure to browser the good quality open source code base. The Apache Foundation is the best place for open source code browsing. Have a look on these code bases if your time permits. Apache Foundation hosts many projects. All the projects may not be relivent for your learning. If you want to start from Core Java, then "commons" projects are the best place to start with. I also love other open source projects like JVolution, JScinece etc. You will know how far Java efficiency can reach in scientific computing and other sophisticated areas.

4. JavaOne and JavaPolis talk:
Last but not the least, frequently visit and watch the podcasts at JavaOne and JavaPolis.

These all are my personal learning paradigm for Core Java. If you have any suggestion, then please share your ideas. Hope I will discuss the effective learning of more advance Java like Swing, concurrency, Enterprise Java and patterns in Java here. Bye for now...

3 Comments:

  • Hi, BeJUG (the Java User Group behind JavaPolis) has now also started a new initiative called Parleys.com. On this site you can re-experience talks (some through video) from JavaPolis, SpringOne and other BeJUG events. Hope this helps with your Java education :))

    By Blogger stephan, at 2:47 PM  

  • Hello stephan,
    Thank you for comment. Actually javapolis already has all the links to Parleys.com. thats why I didn't mention that separately.

    regards,
    gautam

    By Blogger gRoy(), at 11:38 PM  

  • Dear Gautam:

    It's very interesting to read your blog. Also, felt tempted to comment when I saw the book "Java and Object-Oriented Programming Paradigm" authored by myself. In fact, I felt privileged to see mention about my book. It was an attempt to establish the conceptual framework with core java concepts more from designer and practitioner point of view. However, actual comment from readers can be cherished and that would be true motivation to an author. Many thanks.

    best regards,

    Debasish Jana
    (debasishj@gmail.com)

    By Blogger Unknown, at 4:26 PM  

Post a Comment

<< Home