Skip to main content

Learning New Technologies/Frameworks Or Sticking to Core Java?

1 reply [Last post]
Joined: 2007-09-08

I am a java professional with more than 4 yrs experience in software development. I am interested and keen on working on core java but I am always confused about my career on whether I should focus on learning new frameworks/technologies which are developed over java. For e.g. Hibernate, JSF, Spring etc.
I understand that these technologies make development easier for enterprise applications and hence are must required skills in the market but understanding and learning them requires memorizing power (i.e. knowing their rules) rather than logic.
Are there opportunities or scope for someone who builds up his knowledge on core java and gets a deeper understanding on it rather than concentrating on new technologies?

Thanks in advance

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
Joined: 2003-06-10

IMHO, it is quite important to learn "core Java" if that means understanding how the language itself works and what are the basic concepts. Otherwise, when you run into trouble trying to use these "new technologies" you'll have a more difficult time trying to find out what happened. I'm using "when you run..." and not "if you run..." because you surelly will, as we have all have done and will keep doing.

The same when using IDEs or any of such "leaky abstractions" that don't really cover core Java 100%. For example, if you don't understand what the CLASSPATH really is and how it is specified in various enviroments (runtime, compile time, in a web app, in an app packaged as a JAR file)... one day your application that is running fine in the IDE won't run outside the IDE and you won't have a clue why is so or how to fix it.

So, it is not that you have to learn the all java API and packages by heart, but a basic understanding of the technology underneath will help you a lot in the medium and long term. In any case, it will make it easier for you to learn those technologies so when they become obsolete and are replaced (very common in Java land :) ), you won't lose everything and will have to start from scratch.

It's not that you have to know how to build your car with your hand from bare metal, but knowing how to put gas, change a flat tire, and fix the common minor issues is much better than simply knowing how to use the steering wheel.

Anyway, that's my 2ec but as I learnt Java with JDK 1.0.2, this issue didn't exist so my view might be skewed :).