Welcome to our continuing series of Code Project interviews in which we talk to developers about their backgrounds, projects, interests and pet peeves. In this installment we talk to Kenny Kerr, a long-time contributor to Microsoft’s MSDN Magazine and all-around C++ guru.
Who are you?
Hi, my name is Kenny Kerr. I live and work in the Niagara region of Canada. We recently incorporated a new business but I cannot talk about that just yet.
What projects have you worked on?
In a previous life, I was a founder and chief architect for PlateSpin, now part of Novell.
I learned many lessons there from the perils of venture capital and the danger of money. Mostly I realized that I wanted to work for myself. I noticed that very few people share my passion for software development. For most people it is either just a way to earn a living or a way to make money fast. It would take a few more years of consulting before I could truly go out on my own.
Today I am what you might call an entrepreneur or just someone who is self-employed. This basically means you have no health insurance. More seriously, though, I have taken on all kinds of work and worn many hats to put food on the table. I am however happy to be a free man and not a serf.
What is your development environment?
I target two platforms, Windows and ARM.
For Windows development, I use Visual C++ on Windows 7 x64.
For ARM, I use the ARM RVDS compiler via the Keil toolchain. The ARM environment is very different to what I write about in most of my articles about Visual C++ and Windows. There I do not use a mainstream operating system but am instead developing my own micro OS.
I occasionally complain about the quality of the C++ development tools on Windows, but spending a bit of time with microcontroller development tools is a humbling experience and you learn to appreciate Visual Studio a little more.
I recently started playing with SQLite and am quite impressed by its design. Having previously only used Microsoft database engines, I am enjoying its simplicity and general design philosophy. The fact that it is in the public domain, and not encumbered by open source licenses, is a plus.
What is your coding pet peeve?
I do not have too many coding pet peeves. As long as you write your code exactly as I do we will get along just fine.
I tend to follow the naming conventions from the C++ Standard Template Library. I use four spaces instead of tabs and opening braces get their own lines.
int main()
{
for (;;)
{
}
}
How did you get started programming?
It has been a while, but I remember wondering into a computer lab at some school and finding a BASIC compiler. It intrigued me immediately. I then taught myself Pascal and then quickly switched to C++ where I have been happy ever since.
I have not been using computers all that long, as my first computer was an IBM clone with an Intel 80386 microprocessor running MS-DOS 5.
I am a bit of a shy person. I enjoy writing but you will rarely find me at a tech conference or hanging out with other developers. I am pretty old school in that I prefer reading books to reading blogs and websites. I seek out experts in different fields and purchase their books. You will therefore seldom find me on forums or other social services like Twitter.
What advice would you offer to an up-and-coming programmer?
Master the fundamentals. Know your platform inside and out. Too many developers know how to whip up a quick program in Java or C# but do not know the first thing about the virtual machine they live in or that a virtual machine even exists between them and the real machine.