Scarce hardware as a way to learn

Being a programmer I have always wished to have bleeding-edge hardware and dreamed of having a multi-core CPU or some monster GPU that could eat little kitties and a memory bank that could store the whole HDD.

This was mainly because I’m a gadget person, much like every other nerd, so I want to have all the new shiny toys, just so that I could see what’s inside of them and how they work. Of course, those were all just dreams (up until now, but more on that later). When I just started programming in BASIC I was bashing it away on a Pentium I. I tried many different BASIC dialects like DarkBASIC and Liberty BASIC (it was nice seeing these pages again as I did a google search for them after so many years). A couple of years after that I got a brand new Pentium IV (1.8GHz, 512MB ram, MX440 with 64MB of ram). That’s what I worked on up until maybe two years ago when I got a new laptop which wasn’t really any better performance-wise than my last PC.

I’v got a new PC now and it’s all I ever wanted. It’s got Phenom II X6 inside, 4GB of DDR3, ATI Radeon HD5870 with 1GB of DDR5. Yup, everything I every wished for. But this is not the point of this post, the point is that not having the greatest hardware while in the early stages of learning how to develop software was actually a good thing. The reason for this is that I had to make choices. I couldn’t properly use the latest IDE’s to babysit me through the development process. I had to check out other operating systems because Windows was getting too bloated and the latest versions couldn’t even run on my scarce hardware. Not having the latest and the most expensive hardware also thought me something about free software/hardware ideology. I knew why it was important to have something like Linux or something like the Arduino.

The only thing that is really necessary when learning how to develop software is a good Internet connection. I believe that all of this had a strong influence in having an open mind to new technologies and new ways to develop software. I got good at using different operating systems, blending in as I needed to. I got good at using only the basic tools to develop something. I loved the feeling of making something out of nothing, and I still love it.

If I always had the latest hardware who knows if I would ever start programming. I would probably be too busy playing games. Games are what got me into programming as a kid. They were fun but I couldn’t play the vast majority of them on my hardware. So I found something even more fun—programming. Now I have the hardware I always dreamed of but that doesn’t matter anymore. It’s not the silver bullet I was looking for, it’s just a tool now that will help me in my development process.