Categories
Programming

Failure is the surest path to Success

There’s an old joke that goes “What’s the difference between a junior programmer and a senior programmer?” and the punchline is “The junior programmer has to google the answer for everything, and a senior programmer just remembers the answer from the last time he googled it”.

I’ve found the fastest way to learn something (at least, personally speaking) is to just do it, and make a ton of terrible mistakes in the process and then solve them as you go. No amount of academic study and reading/watching of tutorials can serve someone as well as just rolling your sleeves up and jumping in, and getting stuck in on the code.

Just diving in headfirst has led me to find so many errors and learn intricacies that are never discussed when you just check documentation, or read through an overview. Stuff like the fact that vh and vw units in CSS are relative only to a portrait orientation on mobile. So when someone rotates your beautifully crafted page using vh and vw units into landscape, it turns into a nightmare hellscape of black bars and overlapping elements, OH THE HORROR! *Ahem* Sorry about that, just a little PTCSSD, a common malady of every programmer who is a back-end at heart, but has forced themselves to step outside of the mathematical world of APIs, algorithms, and big O into the effervescent and stylish world of front-end, to claim that coveted Full Stack status.

To get back on point, reading about mistakes to avoid never reinforces a lesson quite as well as actually making the mistake yourself, it’s the best way of learning. Note, while this advice is true, there are some cases where learning it firsthand is not the ideal. Such as learning what the Linux Command Line “sudo rm -rf /” command does. But true to my point, someone who runs that command and subsequently finds their entire hard drive deleted will likely never forget what that command does.

To expand on the words of Alexander Pope: To err is human, to forgive divine, and to spend 10 minutes sifting through 11 year old tangentially related stack exchange posts where the final post is the question asker writing “nvm I figured it out” without posting what the solution actually was is just the way of the continually learning programmer.