Tony McCaan - 1982

Of course one of the greatest programmers I had the pleasure to know whilst at college was omitted from My Top Ten Programmers post. His name was Tony McCann and he was my joint Ph.D. advisor. Although John Tucker spent more time with me, Tony's pragmatic approach and amazing coding knowledge was always helpful to me.

Tony was one of those real coders that began before we had the luxury of compilers and high level languages. He was certainly no Quiche Eater and could out code us all.

I'm reminded of the time when I was attending one of his lectures and he was doing some calculations on those huge scrolling chalk boards they had in those days. At some point some brave soul put up his hand and said: "Dr. McCann I think you have that calculation wrong." Tony whirled around looking perplexed as he studied the student then looked again at the board. He then realized his mistake and told everyone: "Ah yes, sorry, I was thinking in Hex." Of course you were Tony!

He was a great character and an amazing coder and I always appreciated his help and insights. Thanks Tony!

Hammer

The software vendors push the idea that better tools, languages, frameworks, and programming systems will make better programmers. This is simply not the case.

It is certainly true that most programmers can produce better code with the right tools. However, the second you want to do something new that is not covered by the tool or framework you are using you are now left to your own innate abilities. If you aren't a good coder you will likely produce a bad solution, no matter how good your tools are. Stick within the framework and you'll be laughing and people will think you are hot stuff.

In fact if you stay within the framework you might even produce better code than a more talented developer without the tools - kind of depends on the tool. However, don't stray too far from your tools if you want to continue to impress your boss.

Sales Up

I read this article recently and agree 100% with these words by Matt Marshall:

One of the biggest challenges is getting an ace developer. The difference between a great developer and a mediocre one is huge. A great developer can push your business forward 10 or 20 times faster than a mediocre or average developer.

However, it only goes so far. In the first two years of a company great developers are what give you a shot, however to be really successful in the long term you have to have equally as good if not better marketing and entrepreneurial vision.

I think this is where a lot of great developers fall down - they think they can do it all by sheer technical virtuosity. This view typically leads to disillusionment. You need both sides of the coin to be successful in the long run, and sadly (for the developer) after the first two years much of the success of a company is driven by the entrepreneur and not the developer.

By now you'll have realized that I have a slight reverence for Bill Joy and so I feel compelled to talk about the first time I met him. It was back in 2000 and there was all this buzz about the article he wrote in Wired Magazine entitled: "Why the future doesn't need us."

He spoke over lunch and discussed his views and every word was enthralling. At the end of his talk people all clamored to speak to him. I found myself standing right in front of Bill Joy with all these other guys going on about his talk. All I could think about was how this man had influenced my life with Vi, Csh, BSD, NFS, etc. and instead of talking about his lunchtime talk I started blabbing on about how grateful I was for all of his amazing contributions. It was very uncool in the context of the meeting and he looked at me as though I was a whack job. I was a whack job. I could hardly string together a sentence, I was so in awe of this man. I eventually pulled myself together but it was too late and his attention had moved on. I felt like a real tool.

Luckily, as I was leaving the room a little while later, I saw him walking down the corridor alone. Instead of going on about how great he was I remembered that he had a young daughter and I gave him my Magic business card and said to him: "Mr. Joy I enjoyed your talk very much, if you ever need a real magician to entertain your daughter, just give me a call and I'll be there." He first looked at me with suspicion, but as he read the card - Magic and Mystery for Select Occasions - a big smile came over his face and he thanked me and went on his way. Just for that instant we connected and I felt that I had redeemed my earlier mistakes. I felt so happy that afternoon.

Before I get too old to remember I thought I'd post the names of the amazing programmers that have had the most influence on not only my career but my life:

  1. Bill Joy - for pretty much everything, see this post.
  2. Dennis Ritchie and Ken Thompson - for Unix.
  3. Brian Kernighan and Dennis Ritchie - for the "C" Programming Language.
  4. Alfred Aho and Jeffrey Ullman - Principles of Compiler Design Book - the Dragon Book.
  5. Larry Wall - for the Perl Programming Language.
  6. Linus Torvalds - for Linux.
  7. Dries Buytaert - for Drupal.
  8. Guido van Rossum - for Python.
  9. Richard Stallman - for Emacs, GNU, and Free Software Foundation.
  10. John Backus, Niklaus Wirth and Edsger Dijkstra - for the development of modern programming languages that make it all possible.

I know there are others (Alan Turing and John Von Neumann are obvious), but these guys spring to the top of my mind. If you are a fan of Outliers you'll notice how many of these guys were born in the early 50's - that seems to be the time when many of the great programmers were born.