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've been doing web programming and currently work at a company working with mainly PHP and Javascript. For a little while now I've been becoming more and more frustrated with the shortcomings of this type of development and want to move to a company with a more defined development process that values doing things the "right way" such as using Unit tests, dependency injection / IoC, etc. I've been learning JEE / Java as much as I can on my own time but would really like to make a switch to doing this as my career and leave behind the PHP world altogether.

I'm just wondering if anyone can give me advice on which things to put my main focus on right now to make myself marketable as an entry level Java developer? Basically, I feel that I'm not really learning anything new at my current job that will benefit me and its only making me more and more frustrated so I figure if there is any way to position myself for a transition I would rather do it sooner than later.

share|improve this question
3  
Hardly a complete answer, but start familiarizing yourself with Spring. –  Jeremy Heiler Jan 27 '11 at 20:06
    
thanks, yeah, I've been learning Spring already and am coming to understand that its a key to modern JEE development –  programmx10 Jan 27 '11 at 20:07
    
Be aware that while Spring's enterprise features are pretty good, I get the feeling that their DI framework is slowly falling out of favour in preference for lighter frameworks and/or Java-based frameworks such as Guice. Spring's Java based DI framework doesn't seem to be gaining any traction. –  dty Jan 27 '11 at 22:48
    
Write some (small) open source or web-accessible applications in Java. It will help show that you have the coding ability, if you can reference them in a resume or interview. –  blueberryfields Jan 28 '11 at 0:13
    
@programmx10: "a key to modern JEE development". Not it's not. It's one of many (good) options (personally I haven't written any Spring stuff in something like 6 years now). –  haylem Mar 7 '12 at 10:42
add comment

4 Answers

up vote 3 down vote accepted

I mostly agree with Alex. I'm sure some of these are things you've already done but I'll list them in case you did not.

  • Play with Eclipse or Netbeans. I have never heard of a Java programmer who uses anything else.
  • Build a WAR file in the command line from Java files with out using the jar command. This simple exorcise should teach you just about everything you need to know about the Java compile process. You might also want to look in to Ant a bit. It is the first choice for building Java projects.
  • Make some simple toy apps. Your general programing should be strong so make some simple apps to use the stuff that's new to you in Java. Focus on inheritance, the threads api, the collections api, JSPs, servlets, JSP tags, and the sql api. Those are the basic things that you'll need to know and that will come up on your interviews.
  • Read both Head First Servlets and JSP and Head First Design Patterns. The first is for the Java web stuff because it has basic things you should never do but can (and, to my horror, I have seen them done in the real world). The second is so you have a solid footing in objects and design patterns. I know that PHP has objects but I can't help but feel like using objects in PHP is nothing like using objects in Java.
  • Learn some frameworks. Not everyplace uses them but most do. Pick a few that look popular in the area you will be looking for a job and start to learn them with some more toy web apps.

Alex's second point about proving you know Java is huge and your biggest hurdle. An idea he did not mention is doing your own web site in Java. Not many open source projects are web sites made out of JSPs so this might be a better, simpler plan.

If you want to get certificates the Head First Servlets and JSP is designed to also help you pass the Sun Certified Web Component Developer exam (or what ever it's now called). The main exam you would be interested in to show you're a Java web programmer. Just realize that certification is not something many people care about so it will still be tough to get an interview even if you have this. Also last I checked you needed to pass some other Java exam before you could take this one.

I would also like to add that while I do think that Java is a far nicer language for programming the "right way" then PHP, Java is far from always being done the "right way" all the time. As a Java web programmer I can tell you I've had many co-workers who did things far from the right way. This is not to say you are not moving in the right direction or that this is a bad idea. Just don't get disappointed if at your first Java job people look at you funny when you say words like 'jUnit'.

share|improve this answer
    
:) yeah I understand that people can still do Java development less than elegantly, just the nature of it being compiled means its still a lot easier to look through messy code, etc.. in PHP a lot of people don't even use classes for everything and do atrocious "includes" where a variable just magically appears from some nested include, also there seem to be many cases in PHP code where the IDE can't figure out a method declaration and take you to it, so I think Java is at least a big step up for me towards sanity –  programmx10 Feb 7 '11 at 18:04
add comment

I understood your question as "how to move your career towards Java and away from PHP". The most important thing now is to show in your resume you do have Java experience and apply for Java positions until you get one. Once you get that job learning Java will be very easy since you will be doing it every single day. Before you can get into such job you need to convince someone to hire you. To do that you should:

  1. Learn Java well: make sure you know enough to go through an interview or even a test. If during an interview people ask you questions you don't know the answer make sure to let them know you would (and will) look for the answer and is willing to learn. Never say "I know nothing about Spring". Always say "I've read a lot about it but never used it but I will learn in 1 week", or something like that.
  2. Do as much things as possible that you'll be able to list in your resume. You have to show people you know Java. Go ahead and get a couple certificates (they're easy). Get involved in open source projects or develop your own project. Do all you can so you have Java written all over your resume.

To learn Java here is a couple tips:

  • StackOverflow is by itself an excellent learning tool, read as many posts, ask as much as possible, put comments, try to participate in the community. You can then include your profile as part of your resume which will show expertize in Java.
  • Start a project in Java (or get involved in one) but commit to it. Know that you will work until the project is done. Try finding a project that has some kind of online visibility so people can verify the result of your work (even if other people are involved).
  • Chose a framework (Spring, Hibernate, anything) and do your best to learn how to use it. Try to know as much tools/frameworks as possible but also chose one or two and learn them well enough so you can pass an oral test.

In 6 months you should be able to put up a pretty good resume. Build your resume carefully and make sure other developers read it. You have to invest a lot of time to make your resume attractive.

Then after your first Java job everything will come naturally. Just don't forget to keep learning and keep yourself up to date or else other PHP/Javascript developers will take over your job! ;)

share|improve this answer
    
good answer, thanks, I came back to this post after posting it a couple weeks ago and it seems I am already on that path so glad to hear the encouraging answers on here –  programmx10 Feb 7 '11 at 18:02
add comment

For what it's worth, Applications for the Android OS are written in Java. Given the nature of the platform (mostly smartphones, now some tablets) there isn't much call for large projects. This could be a good way for you to get your feet wet in Java as well as create commercially viable products, available on the official Google App market, to reference on your resume.

Also, there is an Android forum in Stack Exchange to help you out. Beyond that, take Alex's advice.

share|improve this answer
    
I would probably agree with this and AmaDaden's advice the most. If only that mobile device development and all it's corollaries are gaining ground in development at the moment. –  Dark Star1 Nov 10 '11 at 11:43
add comment

Contribute to an open source project based on your own time written in java. This will help grow your java skills (Apache projects are especially known for contributors giving good feedback on patches) and provide a documented contribution you can demonstrate to a prospective employer.

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.