Wednesday, July 23, 2008


I am currently going through an interviewing spree, which is both exhilarating and exhausting. We have established a pretty nice routine with my colleague Josh: he asks smart questions and I ask stupid ones with my outrageous accent.

I think I should share some tips that could be interesting to anyone planning to go through Java jobs interviews:
  • Java 5 is not new anymore. Maybe the Fortune 500 company you have been working for is still on JDK 1.4 (or before) but please do not call Java 5 "new". In case you do not know it, it is already in its end of life transition period.
  • Do not oversell you. If you grant yourself 9.5/10 on Java knowledge or title yourself Senior Something, expect advanced questions on threading, concurrency or the JVM memory model. If you have not read Effective Java or Java Concurrency In Practice, either postpone the interview or consider refactoring your displayed proficiency level.
  • No CS but no BS. We are not Google, so we will not question you on Java Data Structures and Algorithms. This said, we expect you to know the core collections and what they are good for, even roughly. Even if software engineering is closer to plumbing than computer science, this kind of basic knowledge is necessary.
  • Out of your past box. If you have been consulting for a large corporate, you have certainly been exposed to the home-grown Mother Of All Frameworks. That is great but we do not really care because, even if you have use the Mother Of All Frameworks for eight years, it is disposable knowledge. Do not refer to it as an answer to the question we ask.
  • Idle the IDE. It is great that you have been using this particular plug-in of this particular IDE but an IDE is a tool and there are many of them. Never ever give the impression that your IDE has been driving your development activity. It sure supports it, like with refactoring aids, but your first answer should not be "with this plug-in...".
I might update this post in the future after going through some more interviews.

Oh, YAJIHP? Yet Another Java Interview Hints Post.


David Dossot said...

Check Josh's blog for some interesting quips from this interview madness!

Justin Simonelis said...

I interviewed one candidate, asked him how he would model a system of classes representing an automobile using UML.. He slowly got up to the board, paused, and then drew a circle.. We were wondering what he was up to, expecting a class .. Suddenly, he decided to draw another circle and we soon realized he was drawing wheels.

Alexa Weber Morales said...

OMG, Justin's comment is so funny! I wonder how recent that is ... could it be yet another indication of UML's lack of penetration into the developer mindset?

David Dossot said...

After Ruby On Rails, UML On Wheels: pretty scary, eh?

I think UML has been sanctified to much by tool vendors, which has made this notation almost taboo to many developers.

This is unfortunate: having a common way to represent design ideas is as valuable as having common names for patterns.

More articles of the kind Scott and Celso recently published can help undramatizing UML in particular and modeling in general.

MohanR said...

On the other hand I have met interviewers who shy away from asking UML questions because they find out I know a bit about UML. I think we are weak in design not UML.