Cardinal Rules for Beginner Programmers
I have been around the block several times. I have tutored students in middle school, college, and those who are looking to change careers.
I have been around the block several times. I have tutored students in middle school, college, and those who are looking to change careers. These are some of the golden tidbits that I have accumulated over my many years of teaching:
1. Coding is a mental game
This is what you would take if you could only pick one thing from this article. Even if this was all you read, it would be fine. But please make sure to read the rest if serious.
temperament is the number one obstacle for new coders. What happens when you become frustrated quickly? Are you quick to give up when you face a problem? Can you persevere with complex problems while keeping your cool and your head clear? This is the main reason most of my students give up on coding. This initial obstacle is what they can't overcome, which frustrates me as an instructor. It's all mental. This has nothing to do with programming or student technical skills. They can't seem get out of their own way.
Coding is a mental game. You can not get discouraged, but you must keep your head clear and have faith in yourself that you will succeed. The coolest and most level-headed coders that I have ever encountered are by far the best. They don't give up no matter how high the stakes. They understand that clear, level-headed thinking is the best way to find the best solutions.
A beginner can face many mental hurdles. Students expect too much success and are quick to give up when they don’t succeed. Students often compare themselves to the "whiz kid" running around them and conclude that this is not their thing. Most students get frustrated with complex problems and end up giving up or finding bad solutions. It doesn't get easier. The complexity and difficulty of the problems that you'll face increases as your technical skills improve. As a beginner developer, frustration is a common problem that you will not be able to deal with. You will spend 99% of your career dealing with frustration. So, develop strategies to help you deal with it while problem solving.
2. Learn how to self-learn
Technology is the fastest-changing field in the world. It is impossible to learn programming languages and then sit back and rest your entire career. Every company is moving to version 2.0 of the programming language that you just learned. To keep up with technology's changing tides, you need to be able to quickly adapt.
This is part 1. The second part is that technology is not hand-held. You will need to self-learn and will be required to do this almost every day of the course.
Here's a funny story. One of my last jobs at a Fortune 500 company had a receptionist who wanted code lessons. The Senior Developer was happy to help her and she was eager to start her first lesson. The Senior Developer came in the next day, took down the tutorial link, and promised to check in with her within a week.
He is teaching her a valuable lesson. He's teaching her Angular but, more importantly, he's teaching her how to self-learn. She won't last in this field if she doesn't learn that skill. Nobody is going to help. You must learn by yourself.
Learning how to learn is a positive thing that will help you in every aspect of your life. Although it's hard work, you'll be a better programmer and a better person if you learn how to self-learn.
A foolproof strategy to self-learn based on your interests is possible. My personal preference is to dive in and do a small project in the language I'm interested in learning. After I have completed that project, I will read a book on the language or a pamphlet to help me fill in the gaps. Don't get stuck in tutorial hell", but that's another article.
Accept the role of the mad scientist working away in his laboratory. Be open to technology's possibilities. Technology will tell you the biggest lie: "It's too complicated for me to play with." Technology is your master. You must grab it by the horns. This is also related to the idea that programming is a mental game and you won't get far if you are afraid or intimidated by technology. It's a great way of breaking that fear by accepting the idea of experimentation. You can make mistakes, fail, and create chaos, but not at your job. Try to approach technology with an open mind and a willingness to experiment.
Experimentation is, in fact, the greatest advantage technology has over other areas. It is rare to be able to create a prototype in a matter of hours and throw it away the next morning. Bio-Engineering requires you to sterilize, wear a lab coat and wait for the substance X to coagulate into substance Y over the course of a week. IT is easy. You just need to put on your pajamas and hack away for a few hours.
Start building the app you want today, even if you are a complete beginner. You can make mistakes, learn from them, and then start over again. Tony Stark is you, Victor Frankenstein is you (hopefully less Stark than Frankenstein). Have fun, get in your lab, experiment, and enjoy it. This is a great way to get the most out of technology.
4. Last, but not least
It takes time. You will need to practice 10,000 hours to become a successful developer. It is possible to fall prey to imposter syndrome, but it can take a while, sometimes up to 4 years, before you get there. Keep your chin up and keep believing in yourself. You're here for the long haul.