Hi all, I'm relatively new to Java - I recently got certified - and I seem to be asking myself the same question since then: What next? What I mean is, I've mastered the basics, but I know that it's probably not going to get me a Java assignment. I've perused this site and read the book recommendations, but I need to be pointed in the right direction to achieve my goal. I haven't decided on what area of Java I'm most interested in. I do know that I very much enjoy app development and want to move into an area of Java that gives me lots of opportunity in that. From what I've heard from co-workers, the big areas of Java development right now are in Servlets, JSP's and EJB's. I'm also interested in Java for gadgets (palm pilots, etc.). So, what I'm wondering is if anyone might know of some information about career tracks in Java. By this I mean those maps that look like flowcharts, that guide you to a specific area of expertise. For example, in the certification exam, I didn't do very well in threads. So the first thing I did after that was buy a book on threads and study as much as I could about them. Now that I've improved my knowledge, I'm not sure where to proceed from here. Assuming I'm setting my goal to be Servlets/JSP's, the options I see include Java network programming, JDBC, Swing, JFC, I/0, and finally Servlets and JSP's. But what I don't know is, what's the best order to study these topics? Are some considered prerequisites to others? A flowchart-type map would show me the topics to tackle, and the order to tackle them in, to reach that goal. One more thing: I'm new to the internet and OO environment. I just have very limited knowledge of HTML. So I'd also like info on the whole internet/distributed/OO architecture. My plan, based on your recommendations, is to research and buy books to study, but if you have other suggestions (websites, tutorials, etc.) please include them. I'd appreciate any suggestions anybody has. Thanks alot!
Excellent question! This is a good question for a lot of people new to Java, as well as most recent college graduates. The short answer is, learn the following: 1) OO skills. Learn good programming techniques, whether its Java, or C++, or whatever. Good programming skills are useful no matter what types of applications you work on. 2) Learn project management. This doesn't mean learn to be a project manager; rather learn about what's involved. All too often programmers only know how to program, and don't understand the larger context in which they work. 3) Learn meta-topics. This relates to issues 1 and 2. Some useful things include: Design Patterns, UML, QA processes, debugging skills. 4) Technique. Understand Java. That doesn't mean learn the APIs, it means understand how it works. What Java is good at, where it fails. Read some books on Java performance. 5) Java APIs and issues. Only after you've begun to explore the first 4 subjects should you bother with specific Java APIs and topics, such as threading, EJBs, J2ME, Servlets, etc. If you have good skills from the above, learning any of these should be easy. 6) Learn related technologies, e.g. XML
For the most part, I think certification is worthless (see my other posts in this forum). Try to focus on general OO and programming skills, that's the mark of a good programmer, not whether he's used some API. The best ones at my company learn API sets within a week, and have a good sense of how to use them within a month. How? Because they understand OO, so they can understand APIs from more than just a mechanical standpoint. I'm going to be giving at talk at MIT in late January on this topic. I should have a website up with notes and links. If you email me then, I can give you more specific information. --Mark email@example.com
Hi, Mark, I think you are giving very suggestions. I am new to Java too, can you give more specific suggestions about which books and websites are helpful for developing these skills. I know these skills are not learned in several days, but with educating tools targeting to these aspects, I think it may be a little bit easier. Please let me know your site as well. My Email address: firstname.lastname@example.org Thanks. Judy
Joined: Dec 04, 2000
Some suggested books 1) I'm still looking for general books on OO. Can anyone recommend any? I recently trained a guy anfd had him read "Object Oriented System Development." There's an online version at http://gee.cs.oswego.edu/dl/oosdw3/index.html 2) "The Mythical Man-Month" by Brooks is a must read. I also high recommend "Peopleware." After that, jst pick some books promoting a particular methodology and read it. You don't have to believe it or follow it, but after reading a few books, you begin to see the general needs of all methodologies. 3) "Design Patterns" by Gamm et al, is a must read. Also check out "Anti-Patterns" (I'm told there are 3 books now about it, I forget which one I have). "UML Distilled" by Folwer is a good intro to UML. "Refactoring," also by Fowler, is useful. I'd also highly recommend learning about use cases, although I haven't found a good book on it yet. I don't know of any good QA books (that's not to say there aren't any, I just don't know of them). 4) "Practical Java" by Haager is excellent. "Java in Practice" by Warren & Bishop and "Java latform Performance" by Wilson and Kesselman are also good. 5) Some of the bigger sets of Java APIs are JavaBeans, EJBs, Servlets, and the whole J2ME platform. Things like JavaMail, JSPs, etc are smaller, and generally easier to learn. I learn those on a JIT basis. Some good websites include: http://iamwww.unibe.ch/~scg/OOinfo/http://www.celigent.com/uml/http://www.industriallogic.com/papers/learning.htmlhttp://hillside.net/patterns/http://c2.com/ppr/index.htmlhttp://www.industriallogic.com/papers/learning.html I'd also recommend getting some magazines, such as Java Report (http://www.javareport.com/) and JOOP (http://www.joopmag.com/) --Mark email@example.com