The USS Quad Damage

When you were younger, did you expect to become a Software Engineer?

Yes and no. Ever since I was really young, I've always wanted to be an Electrical Engineer, because I heard a story about my uncle (also an Electrical Engineer) making a life-size remote control car (ala Mythbusters). Mechanical stuff was pretty much self-explanatory and intuitive (maybe that's got something to do with how my dad's a Mech. Eng.) but Electronics was always arcane, inexplicable, and beautiful. It was something I wanted to gain an understanding for.

As I grew older I got into computers, because my dad would always buy the latest and greatest to keep his CAD programs working well. It was easy to while away the hours trying to mess with your config.sys to get doom working with 4 megs of RAM. Eventually, I tried playing with QBasic, pascal, C, and assembly. At one time I amassed a vast array of bouncing ball programs written in various languages. I don't know why, but that's what I'd try to do as soon as I picked up a new language: Switch to graphics mode, put a dot on the screen, make it bounce, pong style, then horizontally. I eventually starting thinking that one day I'd make a bouncing ball program in 3D and then die, all my bouncing ball programs being the sum total of all my life's acheivements.

I could never get into Electronics, even though I kept on meaning to, mainly because I was too cheap to buy the components. At that age $5 is a lot of money, and to blow it all on a handful of resistors was something I didn't want to do. Hell, it'd only buy you 10 components or so. The cheapest "fun way into electronics" type stuff was about $15, which was a world of money to me at the time. I was well into high school before I started doing some soldering. Despite having done as much electronics as maths in high school, I just never got an intuition for electronics.

When it was time to apply for uni positions, the double degrees were selected like "Engineering / Science" at UNSW. You'd just pick what you wanted to do on enrolment day. Basically, I was going to do Electrical / Computing. I was expecting Computing to take the "edge" off the electrical, because I was far more confident with computing than Electrical stuff, and I was right. However, before going in I was discussing with my friend what he was going to do, and he said "Tele", so I picked Tele too (we'd already talked to people and they'd said that Electrical is too general, and Tele is almost exactly the same as Elec). However, on the way out of enrolling, I saw the guy, and he'd picked Software Eng.

A note about Software Engineering: At uni, the comp people and the elec people always made fun of the software people, who had to do info sys subjects, and were generally less "hardcore" than we were, because we were doing elec in the same time they were doing infosys. I think this also had something to do with our lecturers. The CompSci lecturers tended to be these smart, cool, hardcore lecturers who had... worldviews... matching ours. They'd talk at length about favourite programming languages, scripting, etc. They'd show actual maths in lecture notes, and would explain algorithms with great zeal -- "algorithms are the most important thing in software" was the attitude.

Then there was Potter. At the end of our subject, we'd get a sheet to fill in which had your impression of the course, the structure, etc. Under "What was wrong with this course", one of us put a single word: "Potter". He was your regular boring lecturer: crapping on about design, object orientation, and how it's the greatest thing since sliced bread. Consider that he's saying this to students who've been baptised into university programming by Haskell, which introduced them into this world of functional programming, which pretty much leaves OO for dead. I'd never written anything massive, and I never needed to think about design, because it'd all work out. The point is that we were ignoring him, but at some point he said something like "Design is important, I hate coding. Any idiot can code". He made a lot of enemies that day, and he's probably no longer at the uni.

So I still don't wear "Software Engineer" like others do. If I get the chance, I'd still describe myself as a Telecommunications Engineer / Computer Scientist, because I'm of the opinion that hardware design should be rigorous and follow the engineering process, and software design should flow... maaaan. Having said that, I still suck at electronics.