I have had the pleasure of working with a lot of great developers in my time. They seem to be able to solve problems with lightning speed and have a real passion for everything that they are working on.
Some of this of course comes with experience but experience by itself isn’t enough.
I have seen many developers with 2 years of experience who can run circles around those with 20 years of experience. What is that one trait that all of these developers have that makes them so great?
I would like to think that I was a great developer but honestly, that isn’t something you can judge for yourself. This trait however is something I share with these greats and it started when I was a child.
It is staggering how much technology has improved over the last 30 years. When I was a kid I had a Game Boy. It was the beige-coloured one that first came out. I used to play classics such as Micro Machines, Jurassic Park and of course Tetris.
Later on, we got an N64 and I found the joys of running around multiplayer games as Oddjob (while laughing diabolically). For some reason, the devs made Oddjob so short that you had to adjust your aim making it really hard to shoot him. The actor that played Oddjob was actually 5ft 10in so I am not sure why the devs took this approach. Even the devs have now said that playing Oddjob is basically cheating. Anyway, I digress.
The quality of the graphics with each console improved which as a child naturally meant that everything that came before was unplayable.
Rather than let my Game Boy gather dust, ready to be picked up by my future nostalgic self, I did what any curious kid would do armed with a screwdriver and dismantled it. My Game Boy wasn’t the only thing I took apart.
One year for Christmas I got a Lego Technic Truck that used a laser to scan in barcodes to be able to move the motors and control the vehicle. This thing was super cool for a geeky kid like me. Next year however I received a Lego Mindstorms: Robotics Invention System. You hooked up the IR receiver to the computer using a serial port and then used the software to program the device. The interface was like a 1998 version of Scratch.
Obviously, the laser scanner from the previous Christmas received the same treatment as my Game Boy.
I wasn’t being destructive on purpose. I wanted to know how these things worked. The more things I took apart the better I got at it, reducing the chance of me breaking it in the process.
I was just curious and it is this curiosity that I still have to this day and it has helped me a lot over the years as a software developer. A lot of people don’t really give much thought into how things work whether it be your computer, television or your car.
Knowing how something is built is really just understanding how someone else would solve a particular problem. The more practice you get at understanding how other would people solve problems the better you will get at coming up with your own solutions.
All those great developers I have worked with have this in common. They are all curious and they use this curiosity to dive deeper and really understand the things they are working on.
The curiosity combined with the willingness to keep digging until they understand something properly is what makes them great developers.
📝 Article - Putting the “You” in CPU. If you ever wanted to know what happens when you run a program on your computer then check this out!
🛠️ Tools - SDXL 1.0 released. I have been playing around with Stable Diffusion ever since I heard about Midjourney. Stability AI has now released the much-awaited SDXL which is able to produce stunning images but needs a pretty powerful computer to run. I am looking forward to giving it a try.
🛠️ Tools - cool-retro-term. This is quite fun. It is a terminal that matches the look of an old CRT display. If you are feeling nostalgic or want that retro look then check this out.
📝 Article - Good code is like a love letter to the next developer who will maintain it. This is a very important point. Writing good code not only makes your life easier but also for any developer who has to work with your code in the future.
Follow your curiosity. Things that seem exciting to you will often seem exciting to other people too.