How to Become a Better Programmer Fast
Programming is not easy. If you're just starting with it, expect a long way through before achieving mastery. But there are things you can do to improve your skills and become a better coder immediately. But I must say, this only works if you have a real passion for learning otherwise don't even bother.
Here are some of my tips to become a better programmer. Give it about six months and you'll see a difference between now and then:
-
Improve your typing skills
Typing fast will make you look like that popular hackerman meme or Mr. Robot on Netflix. But kidding aside, improving your typing skills, and making the words you type intuitive to you is one less thing to worry about. I've had programmers who even worry about where to find specific letters on the keyboard. These are two to three-year experienced developers. Their eyes change focus from screen to keyboard once in a while. There's so much you can do if you focus your eyes only on your code, especially during debugging and planning an implementation of a script. Decent speed of 60 words-per-minute on typeracer.com guarantees you focus only on your code and not your keyboard.
Recommended hours of practice: 1 hour everyday at typeracer.com
-
Revisit old programming concepts that you know
Humans have a tendency to forget things. Programming practice refreshes your memory of all the concepts you've worked on. You never wanted all those knowledge to go down the drain, don't you? But how much time should you devote to practicing? An additional two hours of random programming concepts on top of your regular programming work should be enough to refresh that old memory of yours.
Recommended hours of practice: 2 hours every day
-
Explore new programming concepts.
Don't just practice what you know. Once you've mastered a concept you have to move on to the next thing that interests you. The more concept you know the more versatile you are. I also recommend sacrificing some of your leisure time including holidays and day-offs if you intend to become a master. You will never really have that time to do it and learn new things since you'll be mostly occupied by your repetitive work. Most companies will try to give you work on a limited framework and concept to eliminate if not to minimize the bugs and/or rework that you may potentially make.
Recommended hours of practice: 8 hours every week
-
Concentrate on the fundamental concepts
Learn every aspect of a concept at every angle. This tip is your ticket to mastery. Don't be satisfied with a running program without really understanding how every parameter of the function or how the algorithm works on different conditions. Being a detailed and curious programmer makes you implement better and efficient codes when you've encountered the same problem in the future. There's no room for trial and error for Experts in problem-solving but only predictable accurate results.
Recommended hours of practice: Every time you program
-
Don't flatter yourself with how many programming languages you know
The idea that the more programming language you know makes you a better programmer is a myth. You'll be the laughing stock of Experts if you do so. Although real experts know at least four (4) languages, we know that it's not the real measure of competency. Program syntax is something that you can easily search on Google. The real measure of programming mastery is problem-solving and the application of skills that you already know to fulfill the requirement.
Recommendation: One time. Get over with it
-
Improve your Math and Problem Solving Skills
Most problems presented in our school math doesn't have real-life problems. But they present us with abstract concepts and help us think deeper making our codes more faster and efficient. For example, In finding the sum of 1 to 1000, a regular programmer would code it like:
for (i=0, s=1; i < 1000; ++i) s+= i
Which makes it O(N) efficient.
If you have the right knowledge in math, you should be able to do it in O(1) time complexity using Gauss' technique:
S = N x (N - 1) / 2, where N = 1000
If you're interested in how Gauss' technique was derived, click here.
You can think of Math as just another programming language that helps you improve the way you solve things.
Recommended hours of practice: 8 hours every week
-
Go for the hard problems
Don't just go for the easy ones, go for the hard problems. Problem-solving is intellectually stimulating. It keeps you going and the more hard problems you solved, the more motivated you are as a developer.
Your brain is a physical object that needs exercise. You can think of a programmer as a bodybuilder pulling up weights. If you pull up a 1-lb weight all throughout your bodybuilding career, you can imagine how little to no improvement it will do to your body.
Recommendation: Every time you explore a new concept, which is 8 hours a week. AND every time you accept work from your boss.
-
Validate your knowledge of concept or skill
If you think you've learned or mastered something, try to validate it and don't cheat. This can be easily done by discussing the concept in detail with an interested, combatant, and an intellectual colleague (someone who will challenge every word you say). If your colleague is satisfied with all your explanations then you can say that you've mastered your newly acquired skill.
Recommendation: Every time you feel you've mastered a skill
There could be more than these eight tips. But for now, I urge you to stop reading and start doing. Your journey to becoming a better programmer starts now!
PS: If you need ideas about programming concepts you would like to explore. Visit my website regularly. I post about 15 interesting articles per month.