On Structure and Genius

A 24-year old named Mallory who is dating my son Andrew boasted in complaint form that her family is more structured than ours. My thoughts on that:

Anyone can enforce or obey structure, even the convict or those with mental illness. The genius though, takes inspiration, and creates structure, simplicity and beauty where non existed. I’d rather be a genius.—Robert John Stevens, July 30, 2017

Tips on Interviewing Programmers

by Robert John Stevens, November 10, 2015

Here’s a few tips to help your team attract outstanding candidates.

  1. Recognize that if a programmer graduated in Computer Science, Information Systems or a math, physics or engineering discipline from BYU, MIT, Stanford or any comparable program then he or she has been proven capable of outstanding achievement.
  2. Apply the Golden Rule to interviewing: Treat every candidate as you would want to be treated. You’re more likely to hire smart programmers if you treat them as if they are smart.
  3. Don’t ask them to take a programming test, especially without first meeting them in person—it is insulting to some of the best talent. It suggests you are lazy, shallow or unable to assess intelligence from a face-to-face interview. Considering the average programmer codes just 5-6 lines of code a day, asking them to write code on a whiteboard is not an accurate way to judge their abilities or potential for future contributions. Instead, invite them in for a pleasant oral interview and ask many questions.
  4. Don’t ask the same phony IQ-test questions that stumped you in previous interviews. They are rarely pertinent to the job they’ll do for you.
  5. Respect or pay for their time. It takes time to takes programming tests, especially to write code. While it may be easy for you to send a candidate a test, it costs them. Time is money—even for those considering changing jobs.
  6. If your purpose in asking them to take tests is to assess their credentials, then ask them to bring their college diplomas. Recent certifications or completed courses from PluralSite.com and Lynda.com can be validated online.
  7. What does your approach to interviewing say about your development environment? The best teams mentor each other constantly. Learned something new? Share it. Stuck for longer than a few minutes? Ask questions and your peers will be happy to answer. If this isn’t the case, why should any sane programmer want to come to work for you? Get your development shop in order first.
  8. A corollary: What can’t a good programmer learn if someone is willing to spend a few minutes to explain it? If that is the case then how relevant are technical interviews?
  9. Looking for a programmer’s programmer? Will he or she stay around to perfect and finish your product through completion and through its first maintenance release? I’ve learned that a finisher with great attention to detail is far more valuable than a supposed programmer’s programmer.
  10. How much more could you learn by working side-by-side with a programmer for one afternoon than a long series of technical interviews?
  11. If syntax and concepts can be learned quickly, especially from side-by-side mentoring, then how important is a programmer’s encyclopedia of facts if he or she can learn quickly and is good at solving problems?
  12. Given a complex problem, who is more intelligent—a programmer who will provide a complex or an easy solution? And yet which person do programming teams usually hire?
  13. Never insult a candidate. Always leave the door open for the future. You may need to hire them someday. Plus, an angry and rejected candidate may hurt your ability to hire others in ways you may never know.
  14. If you in your great wisdom decide to turn down a candidate, explain why and give him or her a chance to offer a defense. You may discover your conclusions were incorrect.

Do you interview doctors before hiring them? How comfortable would you be asking them to take a test? I’d feel silly doing that. What’s the difference then between interviewing a doctor with credentials and a programmer with credentials?

Perhaps the answers are simple: After taking just one course, many people think they are qualified programmers. Also interviewers know programmers don’t charge for the time they spend interviewing and taking your programming tests. 🙂

Robert John Stevens graduated from BYU with a B.S. in Computer Science in 1985, completed his course work for his M.S. in Computer Science in 1988, and has developed software professionally for more than thirty years.