I have passed the SCJP 5 and SCWCD 5 exams and am now confused as to how to proceed. I'd like to become a better developer and I feel that studying and passing the SCJP and SCWCD isn't enough, I still don't feel as though I adequately know these technologies enough to get hired as a Java developer. I guess what I'm asking is what books would you suggest I read in order to sharpen up my skills. I feel that I should focus on improving my SCJP and SCWCD skills rather than continue to just rack up certificates. I'd really prefer books that have code examples rather than just theory....I'm really confused at this point, I'm 1/2 way into a Java Web Services book but I sort of feel as though I have no businesses reading this book when I'm so new to Java in general...or maybe I should be learning a framework and if so which one?
If it helps, I have 7 years of QA experience where I did automation programming but have never been employed as a programmer. I took a few semesters of Java programming and then last year studied at obtained the two Java certs previously mentioned. I have also been a stay at home mom for the last 2 years and want to sharpen up my skills before I try and return to the job market in another year when my toddler turns 3.
Thanks so much your help is very very much appreciated!
It's pretty hard to give general advice without knowing more about what you're interested in programming: do you want to go into web application programming? Desktop (kind of dying in Java, IMO)? Are you dead-set on staying in the Java world?
There are accompanying technologies and libraries that make Java programming much easier: things like the Apache Commons APIs (commons-lang and commons-collections being among the handiest, also IMO), Spring (IoC/DI, AOP, Tx/ORM), Hibernate (ORM), ad infinitum/nauseum.
On the web side there's Spring MVC, Struts 1 (meh, old, but still common) and Struts 2, JSF, Wicket/Tapestry/Stripes (not as widely used), and many other solutions. But it's still very important to know what's going on "underneath".
There's there's non-programming-specific stuff, like UML, TDD, agile methods. Specific toolchains. Specific app servers or platforms. The list goes on forever.
Depending on who you want to work for it may be more important to know concepts, rather than technologies (when I interview people I don't necessarily care if they know framework X or library Y--I want to know they're capable of learning it and using it effectively). Other people may want a very specific laundry list of technologies specific to the position in question, in which case... kinda not much you can do about that.
It'd help to narrow down the direction you want to go in--after that it can kind of seem like a crap shoot, and in some ways it is.
Joined: May 31, 2008
Thanks so much for taking the time to make such an informative reply (even though it made my head hurt ). I really have no preference as to what type of Java developer I want to be just any type at this point. There is so much to learn and I'm just really overwhelmed. I started reading "Effective Java" and "Head First Design Patterns" so that I can at least feel a little more confident with the language basics. Does this seem like a good strategy?
Effective Java is a *great* book. HFDP is also a great book (I'm told; I own it but haven't gotten around to it). The nice thing about them is that they're very "general purpose" and will serve you well regardless of what type of programming you do (and HFDP is applicable across languages as well).