Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

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
    
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
2  
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
add comment

1 Answer

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 ( http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/mvc.html#mvc-coc ).

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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