“A common fallacy is to assume authors of incomprehensible code will be able to express themselves clearly in comments.” – Kevlin Henney
TLDR
Clear writing equals thinking. Since you want your programmers to “think clearly,” testing their writing makes good sense.
How can you select new hires who can write (think) clearly? One way is to ask them to write something. In the era of ChatGPT, you might end up fooled, though.
ChatGPT can’t answer questions about their reading habits. So, a great proxy for actual writing samples is to dig into their reading habits. Start asking about reading in your interviewing process–your code will thank you, clearly, later.
Reading and Writing
An old boss of mine made every job candidate, including me, write an essay. About anything. He didn’t care. His reasoning was that “clear writing equals a clear mind.”
He also had us write code, doing anything, in any language, which was reviewed intensively by our senior engineers.
I was the first candidate who had sent a link to open source (a very new concept then) projects I’d written, and for the essay content, I suggested the documentation for those projects. This was back in the days of sccs, pre-cvs, and, well, before git or GitHub. I shared it on something called “usenet.” DuckDuckGo it.
The code was “adequate,” which stung a bit. The writing was “clear.” They hired me, and we did very well there, ultimately selling to a large company. Next step… launching Scitools, and here we are!
I didn’t understand then, but I do now, that most software engineering work outside of staring at code is communicating with others, often synchronously in-person or over a comm channel, or on asynchronous channels like Slack, Discord, or email.
For a number of years, I guest-taught at our local university on improving interpersonal communication skills, which I’d often found lacking in those drawn naturally to computer programming. We focused on techniques to depersonalize discussions (written and verbal).
I had nothing to offer about writing, though. That starts way earlier than university. It starts with how many words are spoken around you as an infant. And if your parents read to you. And how much, and what, you read over the course of your life.
I wrote well because I’d stuffed my mind with writing as I read 2 to 5 books + countless magazines + encyclopedia entries + the dictionary every week from age 4 to well… till this week (I’m almost 60).
We continue asking candidates to write code.
For non-code writing skills, we found that looking very closely at cover letters, resumes, and interview coordinating emails served as an effective proxy for an “essay.”
As Grammarly, and now ChatGPT, came into the equation, I’m making sure to ask proxy questions aiming at sorting how much they’ve read in their life.
I’ve always asked about professional reading (“Tell me about the last computer science article you read…”), which I find to be a very strong sign they are naturally drawn to programming.
Now, though, I’m asking more about general reading habits:
“What’s your favorite book and genre?”
“What’s the last thing you read and when?”
“How many books have you read as an adult?”
“Paper book or Kindle/e-book, and why?”
“Who are your 3 favorite authors? Why them?”
Start asking about reading in your interviewing process… your code will thank you, clearly, later.
P.S. I’ve also gotten some good book recommendations