So you want to get better at programming? Not sure where to start? You happen to be in luck, I was in the same spot four years ago when I was just starting out myself. Programming had peaked my interest, and I found it to be both challenging and fun, but I wasn’t great at first. Everyone needs to start somewhere, and I should add that it’s never too late to get started if you haven’t already yet. Just like any other skill, if you want to get better at programming, you must practice, practice, practice. Not what you wanted to hear? Looking for an easy way out? Unfortunately, that’s not the case here, as programming requires critical thinking, and you won’t get better overnight. I certainly can’t tell you what methods of practice will provide the most improvement for you, but I can suggest a few that might point you in the right direction.
If you’re like me and you don’t quite enjoy reading, here are my suggestions.
- Coding Challenges
- Social Coding
- Actually building things!
You’re free to read my short list and go off on your own, which might not be a bad thing since self-teaching has its own benefits to building skills. If you want to stick around for the ride, here is why I think these four things will vastly help improve your programming skills.
Tutorials / Classes
Obviously, if you don’t know how to do something you need to learn from somewhere, no matter your level of skill watching tutorials on how to do something new, or taking a class that will show you the ropes is always a good place to start. As a self-taught developer myself, most of my learning has come through watching tutorials. Whether that means watching a udemy course or a playlist on Youtube outlining the basics of either a particular programming language or some framework for a language, video tutorials offer the viewers a great way to follow along and write the code while an instructor explains it. Often times what this turns into is just typing what the instructor is typing and not really thinking about what you’re doing or why you’re doing it. So although these tutorials are a great place to start, I wouldn’t recommend them being what you solely rely on. Most of the time I watch just enough to get my feet wet in a topic, and then go off and try it myself. Which forces me to actaully think versus just copying someone else.
Once you know the basics to any language, coding challenges can be a fun way to test your skills, as well as, improve them along the way. Although I’m sure there are plenty of good skill building and challenge websites, the one I prefer the most is Hackerrank. There are hundreds of challenges on different topics like algorithms, data structures, mathematics, along with basic challenges for language proficiency. When you accomplish something, you feel good about yourself, and coding challenges offer a great way to feel accomplished and practice programming while doing it.
With most problems, there is often more than one way to solve it. Programming is no different, as it involves solving problems, and everyone will have their own way of accomplishing this. There is a benefit to this in the sense that other people can often give you a different perspective, or see another approach to solving something in a way that you yourself overlooked. This new perspective is where you can learn, and you should accept and embrace the fact that you might not have the best solution to a problem, as the real improvement comes once you understand that fact. Learn from your mistakes, and learn from the mistakes of others. Criticism is your best friend here. Writing bad code can create bugs that impact the experience of your users negatively. It can also cause slow load times, and crash servers with memory overflows and exceptions. Take note of how more experienced developers write code and try to mimic their methods and way of thinking. You should see improvement in no time.
Actually Building Things!
Of course, the best way to improve skills with anything is actual experience and practice with that skill. Actually building things and writing code for a project, whether it be for school or work is one of the best way’s you can get better at programming. When you’re actually working on a project or building something, you’ll face challenges, challenges that might be unique to that specific project, challenges you’ll have to overcome. Throughout that process, you’ll learn what works, and what doesn’t. When the dust settles, and you’ve gained an immeasurable amount of experience, you might have something that’s pretty darn cool and you can be proud of it, or you might have a pile of code that doesn’t work. Either way, you learned something from it, and that’s really what counts!
Now get out there and code people, build something cool, I’m done lecturing 🙂