Learning anything in life is challenging. Whether it's skateboarding, writing, painting or coding. You don't know what you don't know and because of that you are going to hit a wall soon after you start.
Without the proper guidance or correction, you might not know how to overcome this obstacle. This is typically where most people that are self-taught drop off and put the coding editor aside along with their trumpets and karate outfits never to be heard from again.
Before you do that though, let me help you out a bit. I did not start out self-taught personally. I went the traditional route of getting a college degree and then I spent years working in corporate environments. But I've met dozens of programmer's that are self-taught and a few of them are some of the best coder's that I know and that I've been able to work with.
But I am self-taught now, because I am still learning new skills and abilities and doing so without any type of formal education. So here are a few things that I do personally to ensure that I increase my knowledge and my retention.
Pick a single tech stack
What tends to happen is that a relatively new developer will hear about 2-3 potential routes that they can take. They hear about React but also about Python and maybe even about .NET somewhere along the way. So soon after they start learning React, they'll hit a wall and then end up switching to Python. Soon after that, they might end up reading about C# and once they get into the whole .NET Core 3.0 vs .NET 5 debacle, they'll head back to React (maybe).
And a developer could spend months jumping around all of the 3 completely different technologies that are owned and operated by 3 completely different companies. Remember, most tech stacks have nothing to do with each other. Being a master at the LAMP stack doesn't automatically make you a master in MERN. It just doesn't work that way.
Each web technology is created, maintained and constantly updated by dozens to hundreds of programmers daily and they all work at different companies that have little to do with each other. That means that each technology is complicated in its nature.
The best thing you can do is to pick a single framework and a single language (at a time) and stick to it as long as it takes for you to become proficient in it. It might take a few months, or it might take a few years. It doesn't matter.
Nobody wants to hire someone that kind of knows Python and sort of knows React and once encountered C#. But if you have spent the past 5 years working with React and I'm hiring for a React position, then odds are you are hired.
Pick 3 resources
Everyone learns differently. Some people like videos, others like articles and some prefer to just get their hands dirty and dive into the code. Whatever your route is, keep it to 3 things. If that means 3 websites where you get most of your information, then stick to those 3 until you've read every page twice over and everything becomes second nature. If its 3 YouTube channels that you enjoy watching, keep it to 3. And there's reason.
There's only 1 real way to learn a programming language. You can watch 10 videos on how to declare a variable, but there's only 1 way to do it. You'll just end up hearing 10 different people tell you the same thing over and over. But because everyone has their own way of explaining it, it might feel like you are getting a new experience each time. Well, you're not.
So for your sake, keep it to 3 things and focus on those 3.
Buy a textbook
There's plenty of free learning material online these days. There's a problem though. There's a few problems actually. For one, alot of the people making the videos and writing the articles aren't the most experienced sometimes. If you look at YouTube these days, you'll see many people with 3 or 4 years of experience teaching you to code. That's fine for certain things. But what about the more advanced topics that take maybe 5 or 6 years to learn? Not to mention the things that require 10+ years.
After going through the University route to get my degree in Computer Science, I can definitely say that these online courses and curriculum's have nothing on a full-sized college textbook.
Most of these books are written by professors and on average these professors have 20-30 years of experience with these languages. I knew plenty of professors who had written textbook's on campus and who had been coding since 1960. I kid you not. They made code seem as simple as reciting a Haiku.
University textbooks tend to follow a sequential order that will guide you through whatever it is that you are learning. You won't be jumping from video 1 to video 28 trying to piece things together yourself and probably getting lost along the way. Most textbooks are probably running at 800-1000 pages and they literally start from the very beginning and walk you through the whole process.
One caveat though. These textbooks are expensive. They are not like your typical 200-page "learn to code" guides. On average you are going to be spending around $100 for a good textbook. I've personally have had to buy books that went up to almost $200 in my day. It is a worthy investment though. I can safely say that there have been a few books in my collection that I attribute greatly to my overall coding knowledge during these past 20 years.
And that's it. It's challenging going alone at anything. But the tools are definitely out there these days and it's important to pick the right ones for the right job.
Walter Guevara is a software engineer, startup founder and currently teaches programming for a coding bootcamp. He is currently building things that don't yet exist.
Stay up to date
Sign up for my FREE newsletter. Get informed of the latest happenings in the programming world.