Getting Ready for Job Interviews

DZone 's Guide to

Getting Ready for Job Interviews

· Java Zone ·
Free Resource

Searching for a job can be a rather discouraging experience. In a few occasions in the past I have found myself looking for a job as a Java developer. During these occasions I have managed to gather a few principles that have helped me along the way, perhaps it will be useful to you.

Who is this post for?

Even though this post is mainly for Java developers, there is no reason why other kinds of developers wont also benefit from it. This post if obviously not for developers with 10 years experience, it is for the lesser experienced.

Why even getting ready for an interview?

Many would say that you don’t need special training for interviews, you need to show what you really know in the interview so you will get the job that is right for you they would say.
There is much truth in that, but I still think there is much that can be done in order to improve your chances in finding a job, and not just any job – the right job for you. I do not suggest you lie in your interview, quite the opposite, you need to show your real self. For some people it comes naturally but others (like me) need to practice to be able to display that. At start, whenever I went to a job interview I said the things the interviewer would want to hear and even though it sometimes worked and I did got the jobs, these weren’t necessary the right jobs for me.
More over, I feel that the times I have searched for a job have actually made me a better developer. It has pushed me to study new stuff, it made me understand the companies perspectives and the common technologies that are being used. There is no reason not to use the motivation job searching gives you to improve.


An interview structure

Even though software development interviews may differ, you can still find a clear distinction between different parts of the interview.

  • Tell about yourself and your experiences
  • General riddles
  • Java riddles and syntax
  • Specific technologies questions
  • Java short design questions
  • General Design questions – classes design and DB design

Probably most interviews will not include all of these parts, but surely most of them.

Tell about yourself, your current job and your experiences

This is the part I probably hate the most. It’s always making me uncomfortable talking about myself as if I am trying to sell something. But there is nothing much to do, it is important.

Don’t get me wrong, the professional parts of the interview are no doubt more important, but still, this part may be the one extra point you need to be chosen over another guy.


  • Never ever trash your current or any of your previous jobs or bosses. Your interviewer may assume that you are a difficult person.
  • I have found that many of the interviewers love the fact that I have other interests besides programming. I guess a part of being a good programmer is to be curious and that can be acknowledged by having diverse interests.

How to practice?

  • practice how to define yourself
    • What are you really good at?
    • What are you looking for?
    • Why do you want to quit your job or how did you lose it?
  • practice how to explain what you did in your last job/current job (This is a very important part)
    You have to know:
    • General design of the product you worked on.
    • What would you change in that design?
    • Class diagram – why did you designed it like that?
    • Which design patterns did you use?
    • What problems did you solve?
  • Practice while talking out loud. Don’t feel stupid, doing it will make you sound more conformable and confident in the real interview.
  • Work on your confidence. The way you sit, the way you walk and the way you talk, should all show you are a confident person.

General riddles

Some of the work places want to see the way you think by answering general riddles that not necessarily have something to do with programming. This is in order to see if you have a creative way of thought.

How to practice?
Search the internet for riddles. Even though you can’t learn every one of them by heart, you can certainly adjust your brain to think in certain ways. There are repeating tricks in many of them. Who knows you might even like it and it actually can help you develop a way to think outside the box. I like to search riddles like that from time to time, just for fun and to keep my thinking fresh.


Java riddles and syntax

Probably all of the interviews I have been in perform this part in one way or another. In this part you will not be asked to design anything or answer hard programming questions. You would simply be asked to show your plain knowledge in java syntax, objects and main principles of Java. For example: What is the difference between ArrayList and Vector. You may also be asked some short java riddles, like what is the best way to sort an array or to find loops in a linked list.

How to practice?

  • Search the internet and collect questions, copy them to a document and go over them every day.
  • Search the internet for java code examples. Copy them and experience with them.
  • Acknowledge repeating tricks like going over a list with 2 iterators instead of 1 is a principle that I ran into in many java riddles regarding lists.

Specific technologies questions

In this part you will probably be asked about specific technologies according to your resume. Like Spring framework, Hibernate, Struts and so on.


  • It’s always a good idea to keep track on the current trends. Read the java magazines and experience with the most used technologies out there.
  • If you don’t know a certain technology, don’t say that you do. If you fixed a bug one time in Hibernate that does not mean you are a Hibernate expert. Believe me, an interviewer will probably see that after one question and then your chances to pass the interview are next to nothing.
  • It may be a good idea to also strengthen your knowledge in technologies you already know. It may be that you worked with Struts for years but you never had the chance to build a project using it from scratch or you never thought about the life cycle of it. This is the time to open books and learn just that. This is the time to open your IDE and start a project from scratch. This will make you realize things you haven realized till that point. This will make the difference between a struts developer to struts expert.

Java short design questions

This part also requires java knowledge, but it’s not questions of syntax. In this part you will be asked to answer harder programming questions like how to write reader’s/writer’s lock, what is the best way to create a singleton or how to create a thread pool or a caching system.

  • Search the internet for java code examples. Copy them and experience with them.
  • Also here there are many repeating tricks like multi-threading problems many times include the use of wait/notify.
  • Learn Design patterns. Although I am not a big fan of design pattern, it is something that can’t be overlooked in the world of software programming. I suggest you go over them and take 2-3 and study just them really good.

General Design questions / DB tables designs

As appose to the last part, here your java knowledge doesn’t matter, only your design abilities matter. These are pure design questions. Like designing a game of chess, design a book store DB or a tickets web site.

  • The internet is full with design question, but you actually don’t have to search, you can just look around. Look at the system around you. Choose a system (like a computer game) and design to your self. When you finish look at it again and try to improve that. I assure you that your first design can be improved, you just need to find how. If you repeat this step I assure you, you will see improvement in your designing skills.
  • Design patterns – read previous section.
  • There are patterns that repeats a lot:
    • Many times a use of layers is a good idea. If you are asked to design a large system, than you probably need to create a data layer, business layer, user interface layer and so on.
    • DECOUPLE- every time you have a piece of code that is doing something unique, you should take it out and add also an interface so you could change the implementation easily. Almost always there is an interface or an abstract class, even if no inheritance is needed.
    • Almost always there is a factory or a singleton or both.
    • Many times there is a worker – a Daemon thread
    • Many times a use of cache is required to improve performance.
    • Multi-threading problems many times should include the use of wait/notify.
    • Multi-threading problems many times should include a thread pool.


General tips

  • Ask questions
    Remember – you are not just being interviewed, you are also the interviewer yourself.
    In the past I had a different approach, I have tried to pass the interview no matter what, this was my only goal during the interview. This approach is no good. Even though you don’t have to decide during the interview if this job could be right for you you still need to gather as much information that will help you take this decision later. Do that by asking questions, about the product, about the business, about the way they work and about anything else.
    This not only help you deciding whether to work there or not this will actually improve your chances in getting that job. Asking questions shows that you wont settle for any job, that you have standards, it also shows that you are curious and that is great.
  • Most important – show interest in the company and in the job your interviewing for. This can help you in many ways.
  • Click with your interviewer.
  • if you don’t know something just say “I don’t know”, it is a lot better than mumbling. if you find yourself saying “I don’t know” too many times, maybe this is not the place for you but don’t give up, there were many times that I passed interviews while I was sure I failed.

If you didn’t get the job

  • Perhaps it wasn’t meant to be. It’s sounds corny but it’s true – perhaps they didn’t take you to that job because they truly believe it’s not the right place for you. Maybe they are right.
  • Learn from your mistakes. Go over the interview in your head, try to see the interviewer point of view. What questions did you fail?
  • See your improvement, every failed interview is making you smarter. In fact, the periods in my life that I was unemployed were the times I’d probably learned the most and not just professionally, I actually learned about myself and how to define myself better.
 All I have written here demands a lot of work from your part. You certainly can not do it all, but let me tell you, you can really truly improve.

Hope it will help. Good luck.

From http://www.aviyehuda.com/

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}