Identifying their core developer smarts is the first step to see how well theyll execute on a software development task. I wont just ask Whats a hash? Instead, I want job candidates to describe how a hashed collection works and how theyd design and implement a simple hashing algorithm.
Ill ask why garbage collection is important. Ill ask about their garbage collection strategies. I believe their core developer smarts are reflected in their understanding of data structures and memory management.
This is because I have come to realize that developers need to understand the implications of their design choices. They shouldnt just robotically mimic what they find online or learned in the classroom. How smart they are with the design is a much better reflection of their overall software development skills.
My next step to uncovering the smartness of Johnny-developer is to see how well he works with others. Ill have him perform a coding task jointly with another developer from our team.
The act of pair programming with the interviewer on a task allows me to see how the interviewee responds to suggestions and critiques from a peer. Seeing whether theyre quiet or outgoing helps show how well theyll work with a team what I refer to as collaborative developer smarts.
And the final step in measuring Johnny-developers smartness is checking out their worldly developer smarts. I use the term worldly because they must show a passion for software development, and also because theres no use in reinventing the wheel.
There are snippets of code all over the Internet. If Johnny-D has proven his core and collaborative development smarts, now I need to know he has experience in finding pieces of the puzzle and has a natural curiosity for technology.
I want him to explain his approach to finding solutions and resolving errors. Does he just Google a phrase or are there specific sites like Stackoverflow.com where he can more quickly find answers?
Im even more impressed with developers who regularly contribute to these sites and forums, because theyre more likely to receive fast answers if theyre respected members of the community. To this end, Ill ask to see threads where they contributed in the past.
In the end, Ive come to realize that Googling has its place in software development. Although it doesnt exactly define how smart a developer is, if you dig deeper into their core, collaborative and worldly smarts, you may find that their Googling capabilities are a far better indicator than how they dress.
But flip flops in an interview? Really?