I used to develop in Django/Python and Rails/Ruby (and before that C/C++ and C#), and I'm now at a job where we do enterprise Java development (Spring, Hibernate, RESTEasy, Maven, etc.) for web applications and web services.

Coming from the Convention over Configuration world, what's the best way to get up to speed doing enterprise Java web services development?

I know Java (the language) well, and I've written GUIs in Swing and basic JSP before, but nothing of the kind I'm doing now.

Are there any recommended tutorials to get up to speed on popular Java enterprise development tutorials?

  • I'd love to know what you said in the job interview to get a job in something you seem to have no skills for :) Couldn't they find an Enterprisey Java developer? Are they all doing Django dev now? :)
    – Spacedman
    Dec 11, 2011 at 11:32
  • If you've joined an established project, I'd think "getting one's head into the current design" is the first best step. Dec 11, 2011 at 14:23
  • 2
    Just out of curiosity: Why would you do that?
    – back2dos
    Dec 11, 2011 at 19:52
  • @Spacedman I was brought in as an intern, and while at school, I was working as a freelance Rails & Django developer.
    – rdasxy
    Dec 11, 2011 at 21:21

1 Answer 1


Well, the key here is familiarity. IMHO, the only way to achieve familiarity is by practice- use Spring, Hibernate, etc. and you will increase your knowledge about them. One of the strengths of the Java ecosystem is the great number of libraries/frameworks which come with great documentation- Spring's reference manual is excellent and reading it will teach you most of what there's to know about Spring, for instance.

In the end, programming is programming, and Java is yet another object-oriented imperative language and it's pretty similar to what you have been doing- esp. C#. The big thing that you might not be using to its full extent is your IDE. Java being a statically-typed language and very amenable to code manipulation can offer you some IDE features which often work better than dynamical languages- automated refactoring, better code complete, better assistence (i.e. Eclipse's ctrl+1 shortcut, it can do stuff such as:

  • infer the type of an expression and create a variable of the correct type and assign the expression to it
  • extract a code fragment to a method, inferring the parameters and return type of the method and replacing it by an invocation
  • rename variables and classes
  • ...

, you also have some niceties such as ctrl+shift+up extending a selection syntactically). Of course if you did Java before or used Visual Studio, you might have already done some of this.

Also I would mention that Spring has "convention-over-configuration" in places- esp. it's MVC module, which can automatically pick up your controllers, etc. if you put them in the right place ( http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/mvc.html#mvc-coc ).

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