Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Here is a little background information.

  1. I have been working for Java 10 years.
  2. The product I am working on went to live about 3 years ago. Now, the product is getting stable.
  3. After all the post-product drama, I gained a lot of knowledge about Oracle & SQL. People(mainly management) were desperated enough to give me deep oracle-related task over DBAs. I admit I considered becoming DBA but eventually decided to remain as a programmer.
  4. DBAs & Management are demanding all the DB & Query related task back to DBA, which makes me a bit sad.

In short, I anticipate a lot of time next year. What would you do to improve your skillset??

I am thinking to upgrade my Java version(Not from experience though, we are using JDK1.5) to 1.6 getting certificate.

Any good idea from fellow developers??

-----------Edit ---------------------

How about data modeling for application? Do you guys think it is developer role??

share|improve this question

closed as not constructive by Walter, GrandmasterB, gnat, Jim G., Dynamic Oct 2 '12 at 10:20

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

Aside from developing, what other roles would you like to have? You have some freedom now to figure out what you want though I imagine some of us may need a bit more information to give you worthwhile suggestions. – JB King Dec 20 '10 at 18:52
@JB King. Your question is one of my favorit subject nowadays. What if I want to be some kinds of technical manager(like directors, VPs...) for development team in the end. Would it be a lot different from being developer(including architect, lead developer etc)?? – exiter2000 Dec 20 '10 at 20:35
up vote 4 down vote accepted

This is something that I am copying from StackOverflow.

Being a programmer with that kind of experience, and wanting to learn things that take you into a new level, I strongly suggest that you study non-programming subjects that can make you a better programmer.

These are some subjects that I have studied and found extremely useful:

  • Cognitive psychology. It explains how people perceive and communicate information; it's the basis of conceptual modelling.
  • Organisational theory. It provides a good framework to understand the context where most information systems work.
  • Management "science" and people skills. It can give you clues about the social factors and motivations that interact with software systems.
  • Linguistics. Natural languages may be formal systems, after all, and thinking in terms of lexicon, syntax and semantics is always useful for software people.
  • Architecture (the one making houses and buildings, not software). Its abstract nature and the use of patterns make it a great exercise for the mind.

In general, anything involving formalisms would do you good. Anything that involves people plus information together is also very useful. I think that spending time learning these things will differentiate you from other people of your same age/experience.

Hope this helps.

share|improve this answer
Thank you for your answer. I followed your link and read other stuff as well – exiter2000 Dec 22 '10 at 20:59
You're welcome. And good luck! – CesarGon Dec 23 '10 at 20:13

To me, "improving your skillset" has absolutely nothing to do with specific languages or technologies. Instead, it is improving your ability to write in general.

For a metaphor: If this field were like music (and it is), "improving your skillset" by getting JDK 1.6 instead of 1.5 is like learning the harmonic minor scale in the key of a. However, if you dedicate your time to pattern recognition, fore-sight, and design, you just learn to spot a harmonic minor scale in ANY key.

Great musicians, like great software developers, aren't restricted to a set a tools.

share|improve this answer
There's a good joke in there somewhere, I just can't think of it. If only there was a G# programming language (to go along with C# and F#). – John M Gant Dec 20 '10 at 19:05
If only J# was a musical note. – Matthew Read Dec 20 '10 at 20:11
I would really want to have skillset you mentioned. So far, I learned those skills as I develop more and more. Do you think I could get those skills with limited experience?? Would you recommend one? – exiter2000 Dec 20 '10 at 20:42
Got the book already!! Thanks though – exiter2000 Dec 20 '10 at 20:53

In your position I would have a very close look on the JPA technology which is a bridge between objects and database tables. Very few people have both the hardcore Java experience, as well as the hardcore database experience needed to understand, analyze and improve this layer in a production setting.

Additionally it is part of recent versions of Java EE, which makes it very relevant to a Java EE team as this is essentially the backend engine.

share|improve this answer
Thank you for your suggestion. I could definitely go deeper with JPA next year but I am kind of exposed already. I think I could easily get more involved in this as I maintain the current product.. – exiter2000 Dec 20 '10 at 20:44
You could always do some serious load testing to see when the current product break at the seams, which frequently happens at the persistance layer, and then learn how to fix it. That's the hardest thing to do under pressure so it is nice to do drills. – user1249 Dec 20 '10 at 23:00

DexterW made some good points, but if you still want to focus on expanding options for using your current skill set, with mobile development needs (corporate as well as general public) being so hot, why don't you consider learning some Android development? Java is the core language used for that.

share|improve this answer
I understand Android market has been hot for a while. And I have android phone(which is 1.5, not very good!! subject to upgrate any 2.X). Anyway, I am wondering if I develop small application in Android, I could apply my phone.. Will check out – exiter2000 Dec 20 '10 at 21:38

Not the answer you're looking for? Browse other questions tagged or ask your own question.