These kind of questions come again and again. Experts never tired of answering these questions. One of the users of Javalobby forum posted the answers for this question. And, TSS is running a thread on this topic. I believe, if you are Java or any other programmer, you should have following traits,
1 . Passion to learn new things and passionate about industry you are working in.
2. Passion to produce quality code.
3. Ability to evaluate pros and cons of using different technologies for a solution.
4. Avoiding I know it all attitude. This is the most important trait.
In addition to this, if you are Java developer and if you want good exposure on design patterns, try to learn Eclipse plug-in development technologies. Most of the time it forces you to use patterns, so it will become practice after some time. Also try to look into source code of the framework you are using whenever possible. In Java land, most of the technologies are open sourced, it is easy to get hold of the source.
Two years back I came across a a thread,’How to become a sr Java & J2EE engineer‘ in TSS. One of the users, Brian Greene, replied to this thread. This is best answer that I came across for this question. Although the list is long, they are excellent suggestions. These suggestions helped my career a lot. Some of the suggestions may not be relevant for the current state of Java and J2EE technology. Here is Brian Greene’s reply for that thread,
‘ first, there’s no need to be mean because people didn’t tell you how to be an overnight expert.
it sounds like a get rich quick goal. that said, I’ve been in the field for about 2 years and am far beyond that as a senior developer where I work. how’d I do it? simple – work.
1. read. download e-books from manning and read them. thoroughtly. work the examples.
2. get familiar with at least 2 app servers – tomcat, jboss, weblogic (they let you dl a free one for dev), oracle 10g (same dl as wl).
3. learn to make love with Ant. 🙂
4. learn at least one persistence framework in addition to ejb cmp
5. read. subscribe to TSS forums and read the threads where people have problems and pay attention to the solutions.
6. learn at least 2 versioning tools. cvs and subversion come to mind.
7. learn to use junit and its extensions and theories (cactus, strutstestcase, mock object testing…)
8. get REALLY familiar with one IDE. actually read the help files.
9. understand classloaders, the object contract, reflection, Collections
10. implement at least one large project in your free time – use it to play with the stuff you’re learning. Do the WHOLE THING – I rented a server, set up the versioning system, fronted a clustered jboss instance with apache and a load balanced modjk connector – the works. then get people to play with your project.
11. try to work around people smarter than you – and work to learn everything theoretical they know.
12. read – the GOF design patterns book or “holub on patterns”
13. Read – the entire series of books by the pragmatic programmers.
14. be friends with the command line.
15. learn at least one web framework in addition to struts.
16. learn at least one java <-> XML binding tool
17. understand that web frameworks are servlets – if you don’t get servlets you’re lost.
18. write a ton of code.
19 read – JDJ, SD times, etc. take with a grain of salt.
20. download and build several large open source projects, and then several small ones with lousy build files.
21. download and play with a bunch of projects. read the docs and learn how to configure them. it’s not the configs that are important, its the process of learning how things work.
22. get at least comfy with at least 2 RDMS, with at least one of them being oracle, MSSQLServer or DB2
23. get an rss feed reader and read blogs of the thought leaders in the industry and large project heads. ask questions. also read at least one blog by a fellow developer you don’t know.
24. get on Sun’s forums once a week and try to answer questions. not the crap where people want you to do their homework, but real problems they’re having. You’ll find out what you don’t know, clarify what you do, get better at communicating technical things in written form, and derive a sense of satisfaction.
25. get really good at a few tools
26. look at the other side of things – if you LOVE hibernate, learn to understand the benifits of jdo.
27. READ THE SPEC. servlet, jsp, ejb, etc.
28. learn to write design documents for the code you’re writing.
29. learn at least the basics of another language or a scripting language – if your only tool is a hammer – all problems look like nails
30. for lord’s sake, note that J2EE is not a thing, but a collection of things.
31. learn at least the basics of LDAP.
32. work REALLY hard and love what you do. I still put in 60+ hours a week. 45-55 for the job and the rest on personal code.
that’s my 2 cents. email me if I wasn’t clear on anything brian at sticentralhub.com ‘