the blog for developers

Another Good (Java) Interview Question

I’m always on the search on good interview questions as I’m doing a lot of IT recruiting. Sometimes in interviews I talk about books the candidate has read recently, to gain some insight into his interrest and enthusiasm – Amazon looks into enthusiasm as an indicator for good candidates.

Another approach to gain some insights into candidates is to ask them about the 5 best software development books, which he considers must-read-books, and why those made it into their Top 5 list. I’ve written about books I consider good,

My personal list would be something along the lines of:

  • Refactoring
  • Patterns of Enterprise Application Architecture
  • Clean Code and other books by Robert C. Martin
  • Domain Driven Design
  • All McConnel Books (Rapid development, Code Complete, Software Estimation,…)
  • The Pragmatic Programmer
  • Implementing Lean Software Development
  • The GoF book
  • The Practical Guide to Defect Prevention

(Not on the list are psycholocial books like Influence, design books like About Face, compiler or programming language books, I concentrate this post on software development books in the stricter sense.)

Getting people talking about the books they like, or the recent books they’ve read and don’t like, gets most of the candidate emotional and involved. They show enthusiasm (or not). Don’t hire those who do not read books (my opinion) or don’t show enthusiasm for topics of books (positive or negative).

Bonus Point: And most of the time I learn something about books I haven’t known yet.

Thanks for listening. As ever, please do share your thoughts and additional tips in the comments below, or on your own blog (I have trackbacks enabled).

See also:

You can leave a Reply here. Of course, you should follow me on twitter here.

You can share this post!
Do you want to tell others about this article? Use the social bookmark icons to submit this artice to the service of your choice. Thanks.

About the author: Stephan Schmidt has more than 15 years of internet technology experience and 10 years experience in agile. He was head of development, consultant and CTO and is a speaker, author and blog writer. He specializes in organizing and optimizing software development helping companies by increasing productivity with lean software development and agile methodologies. Want to know more? All views are only his own.
Leave a reply.

Comments

Great idea. Inspired three different thoughts:

Personally, my number 1 book is Kent Beck’s “Extreme Programming Explained”. It is logically consistent which is too often not common in software development literature.

Second, how about this question: “What books don’t you like?”. I think the ability to intelligently criticize software-related writing is a highly desired virtue.

Finally, here’s another question along these lines: “What blogs do you follow?”

stephan

“Second, how about this question: “What books don’t you like?”. I think the ability to intelligently criticize software-related writing is a highly desired virtue.”

Good idea. I’ll steal that one :-)

Stefan Schubert

Oh this one is a real great find. Here are my two cent…

I can only tell that
a) I learnt programming from newsletters, blogs, white papers, best practise sites
d) Even if I read a book, I tend to forget author and title. Might be because I have a very bad memory for abstract titles (for movie titles, blog titles, song titles AND book titles), but remember names quite well
c) I didn’t own any book about programming coming from university

Though I even in those times I was a better developer when I started to work than many of my fellow students.

I’m just thinking that this sort of questions ignores that people actually learn differently. I love books and I actually buy Computer Science books nowadays. But my main source of information remains abstracts, excerpts, newsletters, blogs, home pages etc.

What do you ask younger people like me? :-)

Stefan

stephan

@Stefan: Nevertheless, I would hire you instantly although you don’t own programming books ;-)

Yes, I guess mentioning blogs, whitepapers etc is equally good than reading books.

Stefan Schubert

That makes me feel more comfortable.

Nevertheless your point (to make a contribution here) – I think – is, to find out how people reflect on information and knowledge regarding their profession.

Perhaps two good starter questions would be:
– How did you keep yourself up-to-date in terms of skills and knowledge the last two years?
– Following: What books / web-sites / blogs / newsletters can (or can’t) you recommend then and why?

Thanks for the interesting thought!

stephan

@Stefan: I’ll steal your recruiting question ideas too, very interesting.

Dave Newton

We’ve been asking candidates for several years now what programming blogs and regular on-line resources the candidates have found useful or interesting.

While the answers have varied pretty widely I believe in every instance where they haven’t come up wth *anything* they’ve been rejected, although not necessarily solely on those grounds.

Another one I’ve used for a long time is “What’s your language of the year?” If they have *no* idea what I’m talking about I’m immediately suspicious. Again, I don’t expect everybody to *have* a language of the year, but their response is usually pretty informative.

Very good list, although I think you are missing a little technical ballast too: Effective Java SE, Java Concurrency in practice and Java Generics and Collections.

If you want to add another book as a “must read” to your list, consider
Michael Feathers “Working Effectively With Legacy Code”
This book might be the natural sequel to “Refactoring”.

Personally, i made the experience that judging knowledge by read books is often misleading. It’s more about applying the knowledge than having read the book. Reading is a start, though.

I would add the question “what open source projects do you contribute to?” to the interview. You get a code or communication sample for free when answered positively.

stephan

@Daniel: Oh I forgot, yeas an excellent book – there are far to few books about legacy code.

“I would add the question “what open source projects do you contribute to?” to the interview.”

From my experience there are – at least in Germany – not many developers contributing to open source projects.

@Stefan: That’s why the question is so important in my opinion. :-)

Shantanu

Among many books that I have read, I would recommend the following very highly on “practical OO, patterns, best practices and anti-patterns”:

1. Holub on Patterns – Probably the best treatment on practical & good OO and design patterns

2. Bitter Java by Bruce Tate – Amazing treatment on anti-patterns

An absolute must-read is Michael Nygard’s “Release It!”. Just about the best and most practical IT book I’ve read in the last few years.

stephan

Wanted to read that book for quite some time, your post made me order one at Amazon. Thanks.

Emilien

Which blogs would you recommend ?

@Emilien: I do not read specific blogs, I browse HackerNews, Programming/Scala Reddit and DZone for interesting blog posts

Leave a Reply

What people wrote somewhere else:

Additional comments powered by BackType

Guide to CodeMonkeyism

Over the last 4 years I wrote many articles on this blog. To make it easier for you to find the relevant ones, I've organized them into topics.

Top 10

6 reasons why my VC funded startup did fail

Go Ahead: Next Generation Java Programming Style

Java Interview questions: Write a String Reverser

The dark side of NoSQL

7 Bad Signs not to Work for a Software Company or Startup

Is Java dead?

Scala vs. Clojure

Never, never, never use String in Java

No future for functional programming in 2008 – Scala, F# and Nu

Clojure vs Scala, Part 2

Java Developer

Is Java Dead?

Go Ahead: Next Generation Java Programming Style

Be careful with magical code

All variables in Java must be final

Never, never, never use String in Java

Bending Java: More readable code with methods that do nothing?

NoSQL Guy

NoSQL: The Dawn of Polyglot Persistence

The dark side of NoSQL

Essential storage tradeoff: Simple Reads vs. Simple Writes

Sharding destroys the goals of your relational database

The unholy legacy of databases

Startup/CTO

Development Dream Teams

6 reasons why my VC funded startup did fail

American vs. European style of Software Development

12 Things to Reduce Your Lead Time and Time to Market

The high cost of overhead when working in parallel

Essential storage tradeoff: Simple Reads vs. Simple Writes

Job Seeker

Another Good (Java) Interview Question

7 Bad Signs not to Work for a Software Company or Startup

Java Interview questions: Write a String Reverser (and use Recursion!)

Java Interview questions: Multiple Inheritance

As a Manager: What I value in developers

Top 10 Tips (+1) to Get a Pay Raise

Agilist

What Developers Need to Know About Agile

5 Practices Better to Change in Your Scrum Implementation

Scrum is not about engineering practices

ScrumMaster and ZenMaster: The joke of certification

What is Trans-Scrum?