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

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?

share|improve this question

closed as off-topic by gnat, MichaelT, GlenH7, Dan Pichelman, Kilian Foth Nov 4 '14 at 13:33

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions seeking career or education advice are off topic on Programmers. They are only meaningful to the asker and do not generate lasting value for the broader programming community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – gnat, Community, GlenH7, Dan Pichelman, Kilian Foth
If this question can be reworded to fit the rules in the help center, please edit the question.

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 '11 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. – john personna Dec 11 '11 at 14:23
Just out of curiosity: Why would you do that? – back2dos Dec 11 '11 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 '11 at 21:21
up vote 6 down vote accepted

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 ( ).

share|improve this answer

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