George Fotiadis

@gfotiadis

Having a shitty computer made me a better programmer

Me waiting 6 mins for my old laptop to boot

Has it ever happened to you that, during a conversation, someone says something and suddenly a million thoughts pass through your brain in 1 second? One thought instantly leads to another until you come to an eye-opening realization. Well, it happened to me a couple days ago, while talking to a kid.

The story behind

The before mentioned kid is a high school student who wants to get into programming and computer science in general, so she contacted me asking for some advice. While having the typical “depends on what you want to do” conversation, she complained that her computer is garbage and she feels restricted because of that, so I started explaining to her that she doesn’t need a super-fast, expensive machine to do most things (IOS developers look away). That was the moment I realized how deeply I appreciate my old computer after all.

I got my first laptop when I was 15 and kept it until I was 21. That beast rocked a blazing fast dual-core Intel Pentium (core i3 series were just rolling out if I recall correctly), an insane amount of 4 GB of RAM and a staggering 250GB of hard drive (SSDs where a luxury back then). Weighting over 2.5 KG, although mostly plastic, and not even having an HD screen, made that little powerhouse stand even more out of the competition. I must admit, there were times that I wanted to punch through the transparent piece of plastic that doubled as its screen because I just couldn’t wait 3.5 minutes for Firefox to open or because I needed to have more than 5 tabs open at the same time without worrying that the processor will crack under this immense amount of pressure. If I close my eyes and focus, I can still hear the airplane-taking-off sound it made when I dared to use an IDE.

It’s not the laptop you deserve, it’s the one you need.

But besides all that, it offered me something that a $2000 computer never will unless I become a millionaire: freedom. Don’t get me wrong, expensive computers are usually amazing and they make your life a lot easier. When the time came to change, I went and bought a MacBook Pro and I know that some people will stop reading at this point but I don’t care: I had my very specific reasons for buying it and I don’t need to justify myself. But having spent all that money into a piece of tech, I’d never do something that would put it in risk. Damn, in my new computer I don’t even download torre- umm I mean watch Netflix. Dual booting or installing another OS is out of question and I know that there will be this ThinkPad guy with his weird, no-UI Linux distro who’ll say that I’m being stupid but hey, you and your weird keyboard joystick are not my target audience: this is meant for beginners, people who are afraid that they’ll break things the second they open a terminal window.

Not worrying that my machine will break made me more open to trying stuff.

My computer science life started the moment I installed Linux for the first time. Lost my virginity to Debian, dual booted Windows and Kali Linux for around 3 years (until I went Ubuntu only), I had hands-on experience with more distros than I needed to. I would have never done that in my current computer simply because the SSD would fry up after the 5th format. On the other hand, having an HDD meant that I could abuse the drive as much as I wanted to and it would never complain. And boy I did. In the time of writing, I have completely erased the disk more than 20 times and installed 8 different operating systems. I feel that I learned a lot from that and when I found the setup that worked best for me, I could try whatever I wanted to: From web development to machine learning and data analysis and from security and pen-testing to android. I did it all, not with absolute success but that’s not the point. You could argue that I could do all that in any computer but for me, not worrying that my machine will break made me more open to trying stuff.

Ever heard of Virtual Machines?

If I like Linux so much, why didn’t I use a VM, you might ask? Well simply because my laptop couldn’t support it. But even if it did, I wouldn’t prefer it for one simple reason. Using a VM instead of actually booting a Linux system in your computer is like eating a burrito and magically not being messy: you have an idea of what Mexican food is, but you miss the wisdom and experience that comes with it. If you never get beans and salsa on your jeans, you will never learn the technique to eat that hot, round sandwich without looking like a mess and embarrassing yourself in front of your colleagues (totally never happened to me). If something goes wrong in a VM you uninstall it and install another one, it’s not a big deal. But when you’re dual-booting you can’t do that, you need to face the monster. Your WiFi stopped working for no obvious reason? You will spend the next 3 days searching for that guy who had the same problem as you and wrote a post about it on a forgotten blog back in 2012. And when you finally fix it you will have proudly earned the unofficial title of being the computer guy among your friends and family.

It’s all about learning

It might look silly, but all this searching-on-your-own actually matters. Problem-solving isn’t only about calculating integrals and probability distributions. It means that you are in an unexpected situation and you’ll flip every damn stone until you get to the bottom of it. At first it might look intimidating but after a while you will know what to look for and where, and that is something that you can learn only by yourself. “It just works” are the 3 worst words for a beginner. If you want to only deal with software that is guaranteed not to fail you then look somewhere else, this domain is not for you. Things will break and you have to fix them no matter what. That’s the fun part! You might need help and that’s great! It means that you will learn how to ask meaningful questions and understand complicated answers. If something doesn’t work the way it is supposed to, don’t give up, find another way: android studio didn’t even allow me to install an android emulator because I didn’t have enough RAM, did that mean that I couldn’t learn android? I used my phone to run the apps I built and it worked just fine. Or, one time I couldn’t run some data analysis programs locally, so I learned how to set up and use AWS, a knowledge that came handy in later projects too. There is always a workaround and eventually, problems will teach you much more than something that “just works”.

Snap back to reality

When I realized all that, I felt really happy that back then I didn’t buy a shiny MacBook because I would have missed on so many things. Experimenting so much with different software allowed me to find on my own what I like doing and what I don’t, what I’m good at and what I suck at. That’s priceless. Failure, frustration and disappointment were always there but it’s a part of the journey and my perspective is that you shouldn’t try to avoid it but learn from it.

I’m not a motivational speaker, an influencer or whatever people whose only talent is telling emotional bullshit to other people like calling themselves. All I’m saying is that, at least in this line of work, you don’t need much to achieve greatness and sometimes having less might even end up being better.

To learn more about me you can visit my personal website at gfotiadis.com and if you liked this article feel free to share it and #spreadItLikeMalware.

More by George Fotiadis

Topics of interest

More Related Stories