3 Risks of Learning to Code
After thinking back to my programming journey, I realized I learned a few things that could help beginner programmers. Since I have seen beginner programmers struggle with learning to code, I wanted to explain the main pains points I experienced while learning to code over the years. I hope these tips help you learn more efficiently and avoid some mistakes beginners make.
1. You will lose motivation.
After spending a few months learning to code, you might start to lose motivation. When you think of coding, you may feel exhausted as you remember how difficult it can be. You may wonder whether you will meet your expectations and whether you are good enough to become a programmer. This is how I felt when I started learning to code.
I like to think of programming as climbing a mountain. You might be full of energy as you start, and you might even climb a few hundred feet. As you look up ahead, however, it seems the peak of the mountain reaches the skies. It feels like you are climbing a never-ending mountain. When you start learning to code, you might learn a few programming concepts and feel motivated to learn more. As you look ahead to your programming career, however, you might realize you still have to learn dozens of technologies. Although programming can feel daunting, it does not have to be.
When you feel like programming is like climbing an endless mountain, think back to the reason you started programming. I started learning to code because I knew it was a great career choice; it had a great starting salary and allowed me to work from anywhere in the world. However, it also felt good. After solving a challenging problem, I was amazed at what I could learn to do. After learning how to build my first website, I was amazed at what I could create using a simple code editor and a computer. I never gave up learning because I focused on what motivated me.
However, there will be days when you will run out of motivation. After a long day from work or school, you may not have the energy to learn to code. On days when I felt like this, I pushed through my feelings and decided to code anyway. I realized there was nothing physically stopping me from learning. I knew that if I failed to learn that day, I would feel guilty the next day. Despite feeling unmotivated on some days, I learned to code because I wanted to be consistent.
Over time, I learned a fundamental concept about learning; you do not need motivation to learn. I learned that motivation is secondary; motivation comes from seeing what you have learned and accomplished. As you learn more, your accomplishments will motivate you.
2. You will get stuck in tutorial hell.
If you have been learning about programming for a few months now, you probably know what tutorial hell feels like. How To Escape Tutorial Hell, written by Sameer Katija, describes tutorial hell. It says, ”Tutorial hell is when you continuously keep on watching tutorials one after another and so on and you feel like, you are learning a lot of things and building some good projects. As soon as you start doing something on your own, you get to know that you don’t know anything.”
In other words, when you are stuck in tutorial hell, you complete tutorials and feel like you are learning. When you try to code on your own, however, you hit a roadblock. Although tutorials are a great tool to help you learn, they will not necessarily help you learn to code on your own. To learn to solve problems with programming, you must pay attention to the thinking process behind solving problems and avoid blindly follow tutorials.
I noticed a similar pattern with a programmer I mentored. After graduating from a coding Bootcamp, he asked me for help learning a new programming technology. He explained that although he took tutorials, he still struggled to build real applications. I noticed that he did not have a lot of experience building applications and that he struggled in finding information about basic concepts. He should have focused more on building real-world projects instead of taking tutorials. If he practiced building real applications on his own, he would have learned how to read documentation, research bugs, and work through challenging problems. To learn to code efficiently, you must supplement your learning with real-world experience.
Although you should use tutorials to learn to code, you must also practice coding on your own. After you take a tutorial, you should create an application using what you learned. For instance, if you took a tutorial on HTML and CSS, practice building a real website using real designs. When building a website on your own, you will force yourself to be uncomfortable since you will have no one to guide you. Although you will get stuck, learning to solve bugs will give you the practical, real-world experience that every programmer needs.
3. You will not know what to learn.
One of the main problems I went through while learning to code was not knowing where to start. Specifically, I did not know what type of programmer I wanted to be or what programming languages I wanted to learn. Consequently, I started learning different programming languages and frameworks. Although I learned Python, Ruby, and Java, I never used these languages in a professional setting. I wasted time learning unnecessary programming technologies because I did not have a proper learning plan.
After deciding I wanted to become a website developer, I researched what technologies I needed to learn, how they were used, and how I could learn them. I created a detailed learning plan with goals and a deadline, and this helped me focus on learning the concepts that pushed me towards my goal.
If you have not decided what type of programmer you want to be yet, you should research more about the different types of programming. It is okay to explore in the beginning, but you must form a plan if you want to succeed. If you are a complete beginner, I will leave links below to a few free learning resources:
If you are interested in becoming a web developer like me, I will also leave links to a few learning resources I used:
I hope this helped you! Let me know if you have any questions.