If being an aspiring programmer was something akin to a fundraiser, this is what you’d call a stretch goal. In other words, this isn’t going to be absolutely essential advice that will invalidate all your efforts should you choose to ignore it.
But it will make a HUGE difference.
The primary reason people are able to take-up a new hobby, profession or career in a given era which was not possible in the prior is because the barrier to entry has been lowered. How does this happen? Well pretty much by making the job to easier do. This is achieved through better resources, such as technology and education infrastructure. This more or less translates to better tools and better education about these tools. The reason every 7 year old can learn to code these days is because it’s so ridiculously easy: you can drag a puzzle piece onto another and boom, you have a walking talking cat. Such a feat would be unfathomable in my father’s generation. Go back further, and you have a team of 20 scientists feeding paper into a monster praying to dear God that today’s work wouldn’t be tomorrow’s. Think about it, this is what it took just to compile back then. Now my sister can conflate compiling with running a program.
So how do you make learning to program easier? You make the actual physical experience of programming as easy as caressing a kitten. No one can deny it when I say it’s just such a pleasure to code on a newer, faster machine. If your computer is slow in any way, run the standard optimization procedures and if that doesn’t cut it, just face the truth, you need a new machine. If you have a laptop, spend the money for a good mouse (get Microsoft’s Bluetooth arc mouse, if it doesn’t boost your productivity by 200%, I’ll offer you my hand in marriage). Don’t scrounge on internet. Get a bloody second monitor and any necessary cables.
Now, not having the right resources fosters ingenuity and a handful of other skills that are hard to get elsewhere. I’ll admit that more than anyone; the reason I learned to code in the first place was to create games that could run on the crappy outdated machines my papa would buy me so that I wouldn’t be able to play games (not to mention he wouldn’t buy me games either). Another great example of this is my friend Christian, who began his computing journey by trying to configure an Italian copy of Windows out of pure necessity. But that’s the catch. Pure necessity. Are you coding with a piece of junk because there’s something you really want and you have no other option? Or is it because you’re ordering too much takeout?
My heart just goes out to all those individuals that come to me with programming questions whilst lugging the conceptual equivalent of CRT monitor stapled to a keyboard, which has to be tethered to a socket just as much as the real thing. You have to wonder why so many developers pay premium for a MacBook Pro. After all, it’s just a pretty preassembled shell on standard internals (both software and hardware wise). Why do that when they can build a machine and stick Mint (Linux) on it for pennies? Because the ROI on getting actual work done is orders higher than on trying to save $100 bucks.
If you think this stops at buying toys for yourself, you might want to reconsider. You’re going to have to consider opportunity costs every day. The hardware and software is only the initial cost. Day to day, you’re going to have to wonder: do I skip school today and spend $200 to go to New York for Y Combinator’s startup school? Do I turn down a $1000 WordPress plugin install gig to focus on your side project? Do you bomb a midterm to attend a hackathon? The answer has always been yes for me. This has been incredibly taxing on me academically, physically and financially, but I truly believe this has put me ahead of my peers. It’s my passion for developing and creating technology that allows me to come up with the time and money for whatever endeavour. Ultimately, this is why I can build a website from scratch or hack a drone and why they can’t.
The suckiest situation programmers get into as they get older is that they end up working on things they hate, when they’d actually like to work on something else. You hear about this all the time, especially because of all the popularity startups and tech companies have been garnering recently (which face it, is the equivalent of people heading West for the gold rush, too late and too useless to earn anything big). People always say they’re going to take a job here or there to get experience and get established financially, y’know just for a “while”, but then they get comfortable, fall in patterns and never move out considerably until the day they die.
If you want to become that great programmer who creates something great, you’re going to have to consider probably the largest opportunity cost of them all. Do you leave your well-paying but intellectually devoid job? If the answer is no, congratulations, you’re no longer an aspiring programmer… and that’s completely fine. Some people are just content with good money, which they can then use to focus on things like family or travel or volunteering, which are all equally desirable endeavours. Don’t feel like you have to be the greatest programmer ever to get places. But if you want to be at the helm of your discipline and create, then expect to pay the price.
The prior article in this series: Procure More Mentors