Learning to code can be a difficult and time-consuming endeavour for many. And while there are plenty of online resources out there today, some free and some paid, knowing where to start and how to navigate this path isn't exactly intuitive for most. The following are 3 mistakes that I commonly see many young programmers make in their pursuit of learning.
I personally have made all of these at some point in my career and in my learning process.
Learning too many programming languages
Or should I say, "trying" to learn too many programming languages. When it comes to learning to code the old adage of the more the merrier is invalid. When you learn to drive, you don't normally switch cars every week. You stick to your trusty and reliable family vehicle that kind of sort of runs and you do your best with it. You get familiar with all of its controls, like its lighting and its shifting mechanism. There are slight intricacies that other cars don't have, but this one does, so you learn them.
And the same is true for picking a programming language. Pick one, and get good at that one. I meet many folks very early in their programming careers with books on Python and Ruby and PHP and C# and they feel like they will become more proficient at coding by diluting their overall skill set. But in reality all they have learned is how to write "hello world" to the screen 4 different ways.
Each language is its own mountain to climb. It has its own syntax, OS, IDE, and even its own community online, which is where more than likely you will be learning from. Pick a language that is rare for example, and you are going to find it difficult to learn even the most trivial of things. Pick a language that best runs on iOS with a Windows machine, and you are going to spend most of your time trying to figure out how to get that to work. The hardest part about learning a programming language normally isn't the syntax, but everything else around it.
At your professional work, you'll probably be hired to work with 1 particular language. You might touch upon others, but only if you know them well usually. This isn't a required skill to have like many online resources would have you believe.
Trying to be the best, like no one ever was
You are not the best. Not even close. You are starting off, you have less than a year of experience perhaps. You are learning. You are a student. And that's okay. Give yourself that slack. Many of my students spend hours on slight subtle lines of code that have little to no relevance in anything because they feel that there is a perfect way to go about doing it. Well. There isn't. And in the slight chance that there is, you won't be the one figuring it out.
Not allowing enough time
Learning to code takes time. How much time depends on various factors, such as the amount of effort that you are willing to put into things and also the goals that you have clearly laid out before you began on this quest. Without proper goals, you're pretty much just reading random books and articles attempting to piece together a coherent image in your mind telling yourself that you've mastered it, but in reality you just mastered that paragraph that you read.
Know exactly what you want to do, such as become a web developer or a mobile app developer, and then give yourself a relative timeline in order to keep focus and then continue forward. To use the car analogy once again, you learned to drive at some point, but if I were to ask you exactly which steps it took to get you there, you would have no idea. It just happened eventually because you kept doing it day in and day out. You made mistakes and got scared. But you learned from them.
I have been a programmer for the better part of 15 years now, and I know that I don't know everything. New frameworks and techniques are coming out each and every year and old standards are deprecated never to be heard from again. That's just the nature of things in the programming world. Eventually, you will get good at it and you will more confident in your skill set.
To sum up this article, focus on a single language (in the beginning) and get good at that language and its environment. Don't get caught up in the small details that have no significance, such as why the for loop uses semicolons instead of commas. They just do. And lastly, take your time and don't force it. Learning a programming language is no different than learning anything else. Most people will spend 12 years going to school in their first half of life and still have trouble with long division after. But if you do it everyday, eventually it just clicks.
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.