Ask HN: Tools for (re)learning Java
Hello HN-
I have a pretty solid programming background, but I have been working as a network engineer for the past 7 years. In some ways building and maintaining the network requires a totally different mindset, and I feel like I have forgotten quite a bit of what I once knew.
I'm particularly interested in Java because I'm particularly interested in Android development.
Are there any favorite tools / books out there that would make a good refresher course? The problem I have of course isn't a lack of information, but an overload of information - a quick Google search will give me far more than I need and it's difficult to figure out what not to read and where to start.
Thanks all
8 comments
[ 3.4 ms ] story [ 27.2 ms ] threadIt light of that, I recommend picking up Robert C. Martin's clean code - while it isn't specifically about the Java language (though lots of the examples are in Java) it will refresh you on how to write good Object Oriented systems that are easily testable.
After years of reading procedural Java code, its clear that syntax is not enough...
I recommend the Head First Design Patterns book if you're not turned off by the less-than serious nature of it. I really did not like the book at first glance, but after actually working through some of it as instructed I enjoyed it and really developed a solid understanding. Simple examples like Vending Machines and Washers really helped me, I still use them in my head when thinking about problems. Design Patterns are not always the best solution and forcing them on problems can make things worse, but as far as teaching Java I really recommend it. http://www.amazon.com/First-Design-Patterns-Elisabeth-Freema...
I also recommend learning about Test Driven Development as previously suggested, we use JUnit4 to teach our undergrads at my university. There are also other methods of testing besides TDD, but I feel it was the easiest to help students.
The Android Developers website's Dev Guide is fairly comprehensive, you can almost get started in your app right away.
Skip the books and jump straight into some tutorials for Android dev and build a few simple apps for your phone. You can go back to reference material as needed.
Thanks everyone for your comments, they've been immensely helpful and insightful.