Imagine a childhood friend comes to visit with his kids.
You’ve not seen each other for a few years. What will you cook?
First, you need to know what they like to eat. Do they like spicy food? Is anyone allergic? What if one of the kids has become a vegetarian?
With computer programming it’s the same.
You need to think about your target job market before picking your tools:
- Are they struggling with the problem you want to solve?
- Do they want to solve this problem?
- Can you help them solve this problem or is the problem too big? Can you narrow it down?
As a Java programmer, just like any other programmer, you’ll primarily be hired because of your experience. And that means, the past problems you’ve solved.
You first build your experience by building a functional application that solves a problem people care about.
I find it rather mundane trying to find out how much Java or PHP or Ruby someone knows.
I am yet to meet someone who could possibly evaluate that and get back to me with an accurate answer within 10 minutes of an interview.
So I don’t think you should be worried about what amount of Java you should know.
In order to get a job, what will be assessed are your actual problem solving skills.
You’ll get to know the level of your problem solving skills by building software that solves a particular problem.
That is the important thing.
Otherwise, trying to master class inheritance, queues, stacks and algorithms in order to be a good Java coder is a recipe for frustration.
Those are vanity metrics. I always forget algorithm tests as soon as I am through with the technical interview and I got the job.
I only remember the ones I use every day.
So here is the million dollar advice:
Use your Java skills to build an application that solves a problem. Then you should be able to get a job based on the experience you got from that project.
And relevance, just as I mentioned above, is key. If you are getting into web development, build web apps. If you are getting into mobile app development, build mobile apps.
Lastly, don’t just build any app. Say, a TodoApp.
Your software should solve a problem that will make you stand out. A problem someone will really want to solve, so that you can get users for your application.
It is the active users that will bring life into your project and make your experience meaningful to an employer.