Is there a shortcut to programming mastery? A shortcut doesn't necessarily have to mean an easier way. (Because nothing that is easy is worth doing, right?)
But is there a recommended and efficient learning method to guide your passion for computers into results?
Pro programmers may have various opinions on this, but some things are constant. Hard work, motivation, focus, and lots of practice prevail over any shortcuts people might suggest. Nonetheless, the following tips may also help:
1. Get yourself to a computer.
You may feel impatient and eager to begin creating cool codes for games, web pages, and phone apps. You may have dreamed up designs and processes and methods, only to get disheartened by your lack of programming knowledge.
The only way you can move towards mastery is to get yourself to a computer and start learning. Or better still, complement your learning with pen and paper, because writing code without the support of automatic syntax highlighting will force you to pay particular attention to the syntax of the language you've chosen.
As long as you begin, you'll get there eventually.
2. Don't stress about what you don't understand.
It's easy to get bogged down by completely new concepts and jargon when you begin coding. There will be many things you won't understand. Terms like variables and classes will be entirely new to you. Cut yourself some slack; you're learning something new. Don't get stressed about what you don't understand.
Start learning by trying to think like a computer. It's not going to be easy. Computers have a little mystery about them, even for programmers who have been coding for years. It may take you some time to truly grasp how binaries work, or what an assembly language is, or why you need to compile code in some languages. It's all part of the learning process.
3. Spend all your free time on programming.
Some programmers say that to be proficient you need to spend at least 10,000 hours with code. That's a metaphorical number. You don't need to bring out your calendar and calculator. It only means that you need to spend as much time with code as you can. As with any new skill, the more time you spend with it, the better you'll get at it. Language syntaxes will become more familiar. You'll be able to think up different ways of solving problems. Try to keep a notebook with you, so you can jot down any code snippet that comes to mind on the fly.
4. Pacing doesn't matter.
You can learn to code at your own pace. There is no ideal time in which to learn how to code. Some people can take a couple of years to cover the same distance that others take in a few weeks, or even months. It doesn't matter how long you take. The key is to make sure you're making the most efficient use of your time by thinking as much as you can about code.
5. Join a programming group.
It is always useful to join a like-minded group of people with whom you can discuss your interests. In a mixed group, there will be some people who are ahead of you in learning, while others who are behind you. In helping out the latter, you'll brush up your concepts and discover new paradigms. Those who are ahead of you will be able to offer you tips. If you can move to Silicon Valley or a place where there are lots of programming jobs and everyone including the sparrows speak in code, you'll learn much faster!
6. Find resources and read the right books.
You may not know what books to buy or what resources to use. The popular programming languages have so much documentation built around them that it can feel frustrating not knowing where to begin.
The best book on the language you've chosen can come for a few dozen dollars. Remember, you may learn more from it than what several free websites can teach you. As long as you stick to the language you're learning and don't lose your motivation, you'll find that spending the money on those books will be worth it in the long run.
7. Find a mentor to lend a guiding hand.
Google can't give you all the answers you need when you come across problems you can't solve. You need to find some good programmers you can turn to, who will be able to explain in a few minutes what you'd need hours to decipher on your own. The possibility of meeting potential mentors is one of the reasons why joining meetups is a good idea. If you sign up for a college course, then reach out to tutors and professors whenever you feel the need. Most people as passionate about programming as you will be happy to help.
8. Try to grasp Object Oriented Programming.
One of the most important concepts of modern day programming is Object Oriented Programming. C++, Java, C are all examples of OOP programming. OOP makes programs easier to manage. It's the theory that powers the popular coding languages of the world. If you hear of terms like inheritance, objects, classes, etc. then the conversation is about OOP. Spend some time on clearing your OOP concepts, take the help of mentors, and you'll be able to join in the conversation.
9. Share your code with others.
Just as writing skills don't get better unless you've shared your work with other people, your coding skills won't quickly improve unless people offer feedback on your code. There are many ways of solving problems with code, and you'll never know more efficient ways unless programmers who are good at it tell you. Share your code, take constructive criticism, and you'll be well on your way to mastery.
10. Use GitHub for easier version control.
Many people don't think about version control until it is too late, and they have to change or replace entire blocks of code. Make version control a habit, since it's a necessity for every developer today. You can use GitHub to make version control easier. GitHub is a website and development platform that lets you collaborate with others, learn from them, and incorporate version control.
11. Reward yourself by working on cool projects.
You'll often have the urge to work on cool projects like games or code that doesn't directly relate to what you're learning. It's okay and even advisable to give in to these urges once in a while. They'll keep you motivated, and you'll have fun learning along the way.
Try not to fast track to projects without picking up the fundamentals of coding, however. You'll learn to code faster if you understand things like binaries, logic gates, loops, procedures, and other low-level things before you begin to build entire applications with superficial knowledge of syntax.
12. Make your code as readable as possible.
When you write code, even in the most abstract of languages like C++, try to keep the code readable. Others won't understand your code - and won't bother to try - if you don't learn to write clean code.
What does 'clean code' mean? Brackets on empty lines, consistent formatting, enough white spaces to make the code easy on the eye, comments preferably on new lines, and self-explanatory names are some of the features of clean code. But there is no single way of making code readable. Everyone has their preferences. Just make sure your code is as simple and elegant as possible.
Here is something to think about. English may seem most readable for a certain bit of code, such as for the problem:
Print consecutive integers from 1 to 9, each in a separate line
When you convert this into code, in Scala, it will read:
1 until 9 foreach println
In C++, the code will read:
for (int i=0; i,9; i++)
Which code is more readable?
13. Teach code as you learn.
There’s a beautiful concept that programmers know as rubber duck debugging. The concept describes the process of explaining your code to a yellow rubber duck like the ones you took into the bath as a child. While you’re going through the exercise, you may suddenly have a moment when the problem in your code becomes crystal clear!
When you verbalize code, you trigger a different part of your brain that lets you see the problem from a different perspective.
Know that if you can’t explain your code in simple terms, you don’t understand it clearly.
These tips should get you started on the road to code mastery. It’s not going to be an easy road, but it will often be fun, and the rewards will be proportionately great. You may even land a job when you’ve mastered programming after the proverbial 10,000 hours of hard work!
So, what are you waiting for? Get started on learning code today!
Be sure to come back to this article once you’ve mastered coding techniques, and let us know your experience on this journey in the comments below.