When I was about 11 or so I bought a Color Computer III at a garage sale. I started typing in some basic programs that I found in a math text book or something. I had no disk or tape drive, so I had to start over every time I turned the computer on. I don’t remember what the program did. I do remember playing the game with the bouncing ball, paddle and busting up bricks.
How did you get started programming>
I started writing static web pages somewhere around 1995. I was the president of my high school’s computer club and we built the first every website for Jacksonville High School, complete with a presentation to the school board. I’m pretty sure the site had blinking text.
We also started learning C++ in the club. We didn’t have a text book, but our sponsor, Robin Manker, would print out sheets each week for us and we’d bind them into one of those plastic spiral bound things that you needed the machine to open up the binding.
What was your first language?
BASIC
What was the first real program you wrote?
Like others, I’m not sure what makes a program ‘real.’ I remember that my first C++ exercise was a Fahrenheit to Celsius converter.
What languages have you used since you started programming?
BASIC, ADI Sharc assembly and other uber-fun machine languages, C, C++, Java, Ruby
What was your first professional programming gig?
My first job was writing DSP algorithms in assembly. The first thing I worked on was the compressor algorithm, I implemented time sharing on the averaging algorithms and reduced the cycle count by 30% or so. The processor was an Analog Devces Sharc.
It had two data buses and two ALUs, so you could basically make two read/writes from memory and two arithmetic calculations per clock cycle. We’d write lines of code that looked like this:
Every line of code would be followed by a line of comments explaining the line. It was painstaking work, but it’s how I learned to be methodical and linear. It was also a whole lot of fun to listen to your code after you finished it.
If there is one thing you learned that you would tell new developers, what would it be?
I still remember one of the first things Robin, the first person to teach me how to code used to say. I still pull it out often. It went something like this.
- There is a teapot sitting on the counter. How does the programmer solve the problem of making tea? He picks up the teapot and sets it on the stove.
- There is a teapot sitting on the floor. How does the programmer solve the problem of making tea? He picks up the the teapot and sets it on the counter. The he says “I’ve solved this problem before”
What’s the most fun you’ve ever had programming?
Kevin Moore was one of my first mentors when I started working at Shure fresh out of college. There was a time, when we would stay late every Tuesday night and code together. He was the first one to tell me about XP things like “What’s the simplest thing that could possibly work” and pair programming.
Late on Tuesdays we didn’t have any managers telling us to stop wasting time with two people at one computer. We paired together writing the microcontroller code for the DFR22. We had a lot of fun and pulled off a pretty amazing project in something like 8 months.