It’s running right now. Beneath those fancy windows. Under the hood. Shifting bits. Moving words in memory. And its scares the crap out of me.
Why? It’s a facet of human nature: what you don’t understand, you’re afraid of. But what can a novice programmer do about it? One of the main reasons I chose software engineering as a major is because I don’t want to have to think about the lowest level of computing power if I didn’t need to. I want to solve problems, help the company I’m at succeed, and enhance my knowledge of the craft.
However, I’m starting to learn that I may need to return to the ‘roots’ of programming. I’m taking a computer graphics course this semester, and it will be the most C/C++ programming that I’ve done in a while. Now grant it, I have had other classes where we did assembly and C, but not the entire course. It just seems to me that in order to really solve a problem efficiently, you should understand some of the underpinnings and inner workings of what you are programming.
So, what’s my solution to this? Well, for now, tinker around with C++ and maybe even poke around the Managed C++ Quake port. Being in the Kingdom of Nouns ruled by Java and .NET is nice though, and it really does let you focus on the problem at hand. Sometimes though, I wonder if escaping from those magical places allows the programmer to really dive into the task at hand and nail it down. I don’t even want to get into some of those esoteric languages that I happen to see way too much about.