• Coders who don’t read

    Fri 23 April 2010

    I fell in love with computers when I was about 11 years old in the dim dark days of the birth of the personal computer circa 1979. I was in 7th grade. One day the science teacher brought this strange machine into school and set it up at a desk in a dark corner of a small mezzanine floor, elevated twelve feet up above the school science room which was full of benches and cupboards containing strange, arcane scientific equipment like pipes, tubes, meters, bottles with rubber stoppers, chemicals, electronics and soldering irons. It’s impossible to describe how totally and immediately I was taken when I saw that tiny black and white screen with the text and blinking cursor. The computer was running a text adventure game and I was totally immersed and my life changed forever. Most ordinary people had not even heard of computers at this time so it was like living in science fiction. It was a rare magical moment in life. From that point on most of my free time was spent thinking about computers.

    Back then computers were expensive and my family couldn’t afford to own one. Rare access to computer time had to be found at the school library at lunchtime or sometimes at the houses of friends who had computers. But as a totally obsessed young boy I had to constantly feed my addiction to computers, all the time, every waking moment. The only affordable way I could feed this addiction was reading. Computer magazines were just starting to appear on the shelves at newsagents. Any time I passed by a newsagent I’d stand at the magazine racks and read the computer magazines for as long as I could until the watchful glare of the newsagent drove me skulking away - freeloader! I religiously bought every monthly edition of the locally published “Your Computer” magazine, from issue one. I read every last word of every article in every edition. I read all the advertisements carefully too. And then I re-read everything multiple times. Much (most?) of it went over my head as they talked about Osborne computers, S100 buses, CP/M, CPU’s, serial ports and goodness know what else. Even if I didn’t understand it I just kept on reading and reading, I loved it all.

    We did get a home computer eventually (a Commodore 64) but this didn’t even come close to satisfying my thirst for information about computers and technology. All the way through school and into my first paid full-time jobs, I continued to read anything computer related. Eventually I found the technical bookstore on Swanston Street in Melbourne and discovered that there were entire books written about computers and I started buying and reading these too. But computer books were (and are) expensive. In the days before the Internet, information about computers and technology was relatively rare and expensive.

    But that’s all changed and in 2010 we have an Internet that is absolutely packed with information. Information is no longer rare and no longer expensive. High quality, current information from the brightest minds on any topic in the field of computer technology and almost all of it is free. It’s an incredible cornucopia of riches, a Solomon’s Mine and an Aladdin’s Cave. The wealth of information is virtually limitless and far too much for any one person to consume in a lifetime. With access to today’s Internet, the 11 year old boy inside me would have fed richly on information about computer technology, software, hardware and networking. It’s incredible just how much knowledge there is out there, and all you have to do to make it your own is to read it.

    When I started professional employment working with computers, I found something wonderful – I knew stuff. Even as a young whippersnapper in my first years of work, I had answers for things. I’d read so broadly over the years that it just all fell into place and even when I encountered new computers, new software, new problems and new technologies, I was surprised to find I often had answers and understood how it worked, even when I had never before worked directly with that technology.

    In software development, reading matters. It matters a lot. Any software developer worth their salt should be reading broadly and deeply about computer technology. Reading broadly across a wide range of fields and topics allows you to see further in all directions, so when you’re designing, building or fixing something you’re much more likely to be able to make connections and incorporate ideas and solutions from seemingly unrelated fields of technology. Reading deeply into a field of computer technology allows you to become an expert in that field, and your solutions and ideas will spring from the fact that you understand the minutiae and fine detail of the technology that you are working on. In software development, the more you understand the technology that you are working on, the more likely it is that you will find easier, quicker, simpler ways to drive that technology. The more you read, the more you know, and the more likely you are to be able to use that knowledge to your advantage.

    Whatever technology you’re working on, you should read as much as you can on it at least until you feel that you understand the scope of its capabilities. If you’re programming a database, then you should read the reference manual end to end. As you come across strange and unfamiliar terms, go and look them up, learn the concepts. If you’re coding to any sort of object model then you should at least once have read the documentation for every method and property of every object in that object model, not just the ones that you have to use to get your job done. Know what this technology is that you are working on, and at least have a passing familiarity with everything it does and everything that it is capable of. Many programmers learn only the minimum that they need to get the job done and as a result when they run into problems they don’t know to use the great solution that is built right in. They didn’t even know the solution was there because they didn’t read it.

    So if you’ve got a software developer on your team who reads alot, who reads broadly and who reads deeply, then you’ve probably got someone who knows more, comes up with better solutions and designs, has more creative ideas, solves problems faster, makes better use of the capabilities of the technologies you are using and is more likely to have enough deep knowledge to be considered an expert in the fields that they are working in. That’s the sort of person you want on your team, isn’t it?

    Unfortunately I have some bad news for you if you’re recruiting software developers. Most coders don’t read.

    I’ve discovered this while recruiting and frankly, it’s disturbing. I’m not saying they are illiterate –I’m sure they read enough to get by and to (just) get their job done. What I am saying is that most coders don’t read much relating to software development and technology.

    One of my phone interview questions is “Do you read any blogs, websites or books relating to software development, on your own personal time?”. More often than not the answer from most job seekers is something like “Umm, well I’ve been busy, err I don’t get much time, actually I do use Google.” In many cases the answer is more straightforward “No, not really, I don’t read much about software development.”

    Often the answer to my question is something like “Yes I do. I do read things that relate to software development.”. Great! I’ve found someone who reads. Next, I ask for specifics; “Can you name the websites, blogs and books that you read that relate to software development?”. The answers to this are often vague and non specific; “Oh, err, umm, well I read Slashdot. I just go to articles. I don’t go to any specific sites. No I don’t really go anywhere specific. I used to read a lot but I’ve been busy. Actually no I don’t get time to read books, just the web.” When pressed for specifics, many coders who claim to read about software development and technology can’t name exactly what they read. We’ll put them in the same category as the folks who more candidly admitted “No I don’t read.”

    If someone doesn’t read about software development and technology then think carefully about whether you should employ them. It’s not black and white however - there’s a converse side to all this. Not all great coders are big readers. I have known a number of really great software developers who are not big readers. You should not necessarily dump “coders who don’t read” into the “no thanks” pile, but its true that coders who read are far more likely to have some of the most desirable traits in a software engineer.

    But it’s not all bad news. Sometimes you will find a coder who loves to read. When you ask them the question “Do you read any blogs, websites or books relating to software development, on your own personal time?” they’ll give you a five minute answer that starts with “For sure I read all the time, I’ve got a bookshelf full of software books and I read lots of websites and blogs.” They’ll then proceed to reel off the names of many books, blogs and websites, telling you in detail about the pros and cons of them and commenting on the value of what they have to say.

    When you find someone like this, place a tick next to the box on your assessment sheet that says “Reads books, blogs and websites?”

    andrew.stuart@supercoders.com.au

    Copyright © SuperCoders 2010 - 2011 All Rights Reserved.