“Practice makes perfect”. There’s a reason that phrase is such a well-known cliche, one most of us have heard repeatedly throughout our lives: it happens to be true. From athletics to the classroom, music to art, honing your skills through applying them and learning from your mistakes is the key to mastering anything you try to learn.
Programming is no different. While most people don’t think of programming as sharing the same creative characteristics as the arts, experienced programmers will tell you that creativity is an essential part of coding and building things. This simple fact is reflected by the emergence of online coding classes, coding camps for children and teenagers, and the growing variety of educational opportunities teaching the fundamentals of programming in the ever-expanding array of languages that power the Internet, our smartphones, and the apps we use everyday.
But practicing code isn’t as simple as just writing line after line of code, or attempting to mimic what others have done successfully before you. In fact, when asking why practice matters when learning to code, it is just as important to understand the different types of practice that you should build into your programming routine.
Not sure where to start? This guide can help! Let’s take a look at some of the real and measurable benefits of practicing code and how it can further your programming career, as well as some of the best methods to do it yourself.
Does practicing with code really make that much of a difference?
First, we’ll start with the easy and short answer - yes, it absolutely does. Unlike some disciplines, coding involves both mastering a variety of languages (each with their own unique rules, benefits, downsides, and limitations depending on your use cases) and meeting the ever-shifting needs of development. While instruments or methods for drawing or painting largely remain the same for any new beginner, programming best practices and needs change every year as new languages emerge.
Since this is the case, practicing with new tools and languages is an essential part of even the most experienced programmer’s career. Job opportunities depend on it, and the ability to build the next “new thing” does as well. However, as programmers, we know that actually seeing measurable results (such as seeing your app function the way it’s supposed to) is the true measurement of whether something is a good idea. Fortunately, there is significant data to support the positive effects that practice can have on building your coding repertoire. Here are a few:
- Perhaps the most well-known advocate for practice being the key to top performance comes from Malcolm Gladwell, famous for his series of books like Outliers that attempt to use economics and sociology to explain trends in society. In Outliers, Gladwell famously concluded that practicing a particular skill for 20 hours per week and for 10 years is the key to success in any given field. He supported this conclusion with numerous references in a variety of fields to support his theory.
- A leading researcher in expert performers, Anders Ericsson of Florida State University, concluded after years of researching masters in a wide variety of fields that what separates top performers from everyone else is the amount of time spent in something he calls Deliberate Practice. Ericsson challenged notions of “brain power” and destiny through his research, instead believing that “The right sort of practice over a sufficient period of time leads to improvement. Nothing else.” Many heavyweights in programming and coding education have cited Ericsson in their own treaties for programmers to incorporate practice in their coding education.
- Similarly, many programmers ascribe to the benefits of practicing code kata -- a series of choreographed “steps” or “moves” that mimic the approach martial artists use to master their form. Well-known programmers like Steve Yegge and Dave Thomas (among many others) subscribe to this disciplined method for learning, encouraging programmers to shirk the stereotype of the disheveled and spontaneous programmer to truly master your craft. When the masters suggest something to you, always listen!
- Companies and trade publications are also enthusiasts of the “practice makes perfect” model to learning code. There are no shortage of articles from leading programming media publications encouraging programmers to practice at every turn.
- Some of the most successful students at SoloLearn have seen their progress result from using disciplined methods like setting daily learning and practice goals for improving their coding skills. For example, SoloLearn PRO users who set daily learning goals have the highest rate of lesson completion -- over 92%! Likewise, those SoloLearn users who take advantage of the various additional practice opportunities beyond the tutorials also earn double the number of course completion certificates on average.
How do you actually practice coding?
Think of pursuing an education in coding as a combination of several key factors -- a good data science or programming course plan, a variety of methods and techniques for giving yourself hands-on experience and chances to apply your coding skills in practical settings, and effective networking to surround yourself with valuable expertise.
Here are a few easy practice techniques to pair with the tutorials and coding classes you choose:
- Create a list of either individual programmers or particularly elegant code bases that you admire. Then, review them and identify what makes each stand out to you -- from the methods and approaches of individual programmers, to what works particularly well in code that you like. Doing this can help you create an actionable list of goals to guide your practice.
- Read through someone else's code for a half hour each day, or a few set times each week. However, don’t just pick good code - alternate between browsing great code and bad code, since learning the difference can be informative for your own practice. If possible, connect with other developers and have them read the same code, and compare notes.
- Make a list of your favorite programming tools, prioritizing them by how essential they are to your own programming. Spend an hour browsing the docs for one of the tools in your list. As you do this, identify a new feature of the tool that you weren’t aware of or haven’t tried yet, and try it out!
- Want to learn more about what experienced programmers and software companies want in the people they hire? Reach out to your network to see if an experienced colleague will let you listen in on a technical code screen, to see the kinds of questions and explanations are needed. This is another great way to help you set learning goals for yourself, and guide your own programming coursework.
- Even better, if you are friends or colleagues with an experienced programmer, ask if they will let you run through a “mock interview” with them. Ask questions about tools or practices that you want to learn more about, and listen and take notes as they explain their answers.
- Work with a friend and take turns asking practice questions. One method might be alternating weeks, with one of you working through challenges one week and then the other. Spend a short time working on the problem, and then discuss your process and struggles together. Two brains are better than one!
- Take advantage of the plentiful code playgrounds and other coding practice sites that exist throughout the Internet. Code playgrounds offer the chance for you to apply skills learned in your studies to actual live code, and the chance to see what common challenges you may face.
Consider upgrading to a SoloLearn PRO subscription to enhance your coding journey, which unlocks unlimited practice opportunities.