If you’re enthusiastic when it comes to programming, you’ve probably taught yourself several programming languages, concepts and principles. You’re probably reading a book about programming right now. I’m not saying it’s a bad thing since exploring is a great habit when it comes to programming. I’m pretty sure no programmer will ever leave this stage in their programming endeavor since programming is a never-ending learning process.
Let’s say you want to learn how to program in C++. You grab a book like Sams Teach Yourself C++ in 21 Days and start coding all the examples found in the book. So you’ve just finished reading the book and coding all the examples found in it. You probably know how to make basic applications using C++ while still looking at the past code examples for reference by now. You want to learn more but the book simply doesn’t have enough information to answer all your hanging questions. You try to look at tutorials, documentations and other similar stuff online but they’re either too simple or too complex for you to understand. Now what?
This is pretty much what I go through every time I try learn a new language. I get an interest to learn a new language, read a book, finish it, make a simple application using what I’ve learned from the book. Everything goes fine until I finally try to add complex stuff or features in the application that I’m making. There are times where I can actually solve the problem at hand but most of the time, Google just doesn’t have the answer to your question. This is where programming becomes frustrating because you’re stuck and you don’t know how to go on. You’re also probably unaware of the fact that you’ve developed bad habits in coding because of the book you’re reading. Basically, what I’m trying to say is that books, tutorials, etc. can only get you so far. There will come a time where you’ll get stuck and your references can’t help you out.
So how do you go through these problems? GET A MENTOR! I’m serious.
In order to succeed in life, you need to have 4 things:
- Patience
- Determination
- Discipline
- Proper guidance
The same thing applies in programming. The first three points are easy to obtain since it only involves yourself. Well, they’re not exactly easy but if you compare it to the last point, they’re easy. Proper guidance, however, is pretty hard to have since you have to find other people who are willing to point you in the right direction.
In programming, having someone senior to you to point you to the right direction is one of the most important things a programmer must have. Why? Well first of all, they’re better than you at programming. Also, they’ve been through your problems already and they will most likely know how to solve it by the time you ask them your question. They will also point out your strengths and weaknesses, the bad programming habits that you’ve developed and tell you how to fix them. One thing I noticed from my friends is that they will stop coding the moment they’re stuck with what they’re doing. I think that goes for everyone, including you and me. Having a mentor prevents this kind of thing from happening because they will tell you how to solve your problem or point you in the right direction to solve it. Not being stuck and being able to progress can keep you motivated and this will keep you craving to learn more.
Also, one of the reasons why it’s important to have a mentor is because they will tell you the common bad practices in programming and how to avoid them. It’s important to develop good coding practices and avoid the bad ones early in your career so that you’ll have lesser problems with programming in the future.
If you get the chance, be a mentor for other less experienced programmers. Teaching is twice learning since it helps you solidify the knowledge that you’re going to share. Also, you’ll be able to help and motivate each other so it’s a two-way process.
One last thing, if you ever get the chance to have a mentor, only ask them when you’re really stuck and you can’t fix the problem on your own. Having someone to depend on is nice but depending on that someone every time you come across a problem is bad because you’re going to lose motivation and you’ll be lazy to solve the problem on your own. Plus, asking your mentor every time you have a problem can really piss them off. It’s like asking other people simple questions instead of Googling them on your own.