How NOT to Learn to Code

Nathan Elliott
Techspiration + Ideas + Making It Happen
5 min readDec 22, 2015

There are a number of pitfalls that a person can run into on the path to proficiency in writing code. I’ve fallen into most of them with all the grace and coordination you would expect from a drunken moose trying to learn to tight-rope walk. Below, I will explain a few of the most dismal mistakes I’ve made, in the hope that other aspiring web developers or entrepreneurs building out their first app can avoid them.

You will not see anything new written here. Every mistake I have made has been covered in one place or another. Unfortunately, when we are working hard to learn a foreign skill, our brains are often grinding like un-oiled gears. We have to operate on some level of assumption to get moving in the first place in our learning and those assumptions can lead us to skip over, or even completely write-off, some very key pieces of advice. My goal is to offer up some of the stupidest mistakes I’ve made in one easy read, so you don’t have to deal with the same headaches and hours of wasted time that I have during my own journey.

Mistake 1) Going It Alone

Anytime you are taking on a new learning task, there are going to be a lot of things you don’t know. One thing you DO know however, is that you are not an expert. Don’t assume that you are still capable of throwing the basic building blocks of a curriculum together like I did. You will end up taking some wrong turns and costing yourself some precious time at best or drive yourself to such frustration that you just give up at worst. Find a community of people to steer you in the right direction.

You can find people to work with through traditional routes like university courses or community college courses or through less traditional paths like web development bootcamps, local meet-ups, or an old-fashioned mentorship with a local developer.

The ideal person to help you out would be a software engineering expert, with strong teaching skills, and a lot of free time to assist you. However, even finding a few beginners who are around your level to work with will be far more effective in the short-term than trying to learn all by yourself. If you can find people to bounce ideas off of, share code with, and help you stay accountable to your goals, you will learn far more rapidly and effectively. Just by doing this, you will likely avoid most of the biggest pitfalls, including the 2 others I will be discussing in this post.

Mistake 2) Choosing Breadth of Learning over Depth of Learning

Every decent web development tutorial I have seen has one thing in common; there is a blurb at the end telling you to further explore the topics taught in the tutorial by going back and individualizing the projects you have built or going off and building your own related projects from scratch. In other words, you aren’t done learning and you need to dive deeper through writing more code.

Don’t do what I did and dismiss the tutorial writer’s advice and assume you already understand the material, so it is time to move on to a new or more advanced topic. As someone just starting to learn with high levels of motivation, you will want to learn as quickly as possible. It may appear that it would be a waste of time to keep working on material you have already covered through writing a simple, related web application from scratch, writing several scripts, or doing several related coding challenge problems. In reality, until you can prove you know the material through writing a lot of code with it, you can’t really be sure you know it. Writing the code reveals gaps in your knowledge that you didn’t know existed and reinforces the material you do know. There is big difference between being able to discuss a given coding pattern or development stack in a reasonably intelligent manner and being able to write the code that proves it.

Mistake 3) Worrying about which language and/or framework you are going to work with before you know how to build basic applications and websites.

For every viable language, there is some expert who will write up some “logical” argument for why their language of choice happens to be the best choice and why some other popular choice is the worst. Much like political news, the authors will cherry pick positive characteristics of the language they enjoy and include some fiery descriptions of the potential perils of starting with some other language they have chosen to demonize. These are just thinly veiled emotional rants that have nothing to do with logic.

You can build just about any web application you would like with any of the most popular languages that are being used today. Learning any of these languages will require you to learn core software engineering concepts in order to utilize them effectively and will accelerate your ability to learn other languages in the future anyway. The strengths and weaknesses of different languages are a point of concern for large scale, very specific applications and senior level developers. In other words, worrying about them when first learning to code is a complete waste of your time. The time it takes to learn any potential quirks or conventions of a given language isn’t a significant enough piece of the total learning time investment to be worth deliberating on. Trust me, I’ve spent an embarrassing number of hours (days? weeks? months?…) over-analyzing different languages and development stacks and the underwhelming realization that my efforts have brought me to is… it really doesn’t matter much… and how much could I have learned or built during all of that time?… sigh.

First choose a community of people to learn with and then just use whatever language they are using, simple as that. If you are fortunate enough to have multiple communities of people using different languages available to you that appear to be equally impressive (and you are too OCD to just flip a coin) then set a hard timeline to choose which language to start with and do not change course or second guess the language until you are proficient in building applications and websites with it. The maximum amount of time that I think is viable to spend on this would be 10 hours of research and deliberation. Spending more time than that does not stand up to a cost-benefit analysis. It bears repeating, you can build just about any web application you would like with any of the most popular languages that are being used today.

I hope this post helps someone who is just starting their journey in learning to code to avoid the missteps I have made.

Cheers,

Nathan

Published in Techspiration + Ideas + Making It Happen.

--

--