Engineering
Learning to Code: It’s About Practice, Not Talent
Curious about coding? Go for it — and let these 7 insights be your guide.
When I started my career as a band director in the mid-2000s, I stepped into my classroom equipped with the typical tools and experiences of a first-year teacher — coding was definitely not in my toolkit. When it became clear that our music program was going to need a custom website, I volunteered to figure out how to make it happen. With a copy of Dreamweaver and a collection of “For Dummies” books on basic languages of the web, I hacked together a site to fit our needs. That experience hooked me on coding, and as my teaching career progressed, I added coding as a regular tool in my toolkit and continued to refine my skills over time.
There are many paths and potential timelines to learning how to code. For each person, it is likely a very unique journey framed by the context and constraints of their professional and personal life. If you come from a non-technical background, it may seem intimidating or far-reaching, and you likely have no idea where to start. Eventually I made a career change to web development, and I’d like to share seven key insights I gained along the way.
1. Choose a course of study
The resources available for learning how to code are vast, and many folks in the community are quite welcoming. If you are interested in web development, there are so many options that you may become overwhelmed with choices. As a former educator with experience in planning curricula, I look at course content with a close eye. The following questions drive my enrollment decisions when comparing options.
Is there a portion of the coursework that is project-based? Building holistic projects of varying scale is the bedrock for skill-based learning. Create an open-source repository on Github or Gitlab, and contribute your code every step of the way so you can share your progress with others.
Is there a balance between coding along with the instructor and working independently? If you are just coding along, you may not be getting the conceptual understanding that comes from solving the problems on your own.
Does the course structure and content appear to be up to date? If the course hasn’t been updated recently, you may run into some frustration with the examples not working as expected.
Is there a syllabus (or equivalent) and is it organized consistently? You want to make sure that your time is spent learning the skill rather than trying to find resources.
Does the instructor provide some kind of forum for accessing help, or even better, one-on-one mentoring? Asking for help when you get stuck with a coding error is an important skill that should be facilitated.
This is certainly not an exhaustive list of characteristics, and the more courses you take, the more in tune you will become with your own learning style. If you are evaluating a long-term program like a coding bootcamp or some form of continuing education, I would also recommend seeking feedback from former students of those programs to make sure it sounds like a good fit.
2. Find a mentor, be a mentor
If you try to go at it all alone, you may find yourself taking a number of unnecessary detours, but a good mentor can be the key to keeping you on the road that goes. A mentor can give you feedback on your résumé, your portfolio, and review any code you have written. Reach out to people you want to learn from, and fill your network with multiple mentors and peers. Offer to mentor others as well. After all, teaching others is the ultimate test of what you know, and it’s often the case that by teaching others, you will deepen your understanding.
3. Know what you don’t know
Learning what you need to learn is an ongoing process. It requires self-reflection and humility, but if you know what you don’t know, your growth can be focused and intentional. Our engineering team at Postlight has developed an incredible growth framework alongside a successful mentoring program. Even if you are just starting out, you may find your north star in there.
4. Practice
There will always be new things to learn and skills to refine, whether you have been playing the trumpet for 30 years or writing JavaScript for 30 minutes. When musicians need to practice something with laser-sharp focus, they often refer to it as “woodshedding,” the metaphor of isolating oneself in a woodshed until you can perform the musical passage flawlessly. It’s important to “woodshed” your skills as a developer, and equally important not to isolate yourself from others.
Get experience collaborating with a team. If you strike a balance between projects you build alone and projects where you collaborate with others, you get a better sense of what you don’t know and where to focus your learning. Even on projects you build alone, allow yourself to be vulnerable and seek feedback from your mentor(s) early and often. Receiving feedback can be humbling, but if you have a good mentor, they will build you up every step of the way.
5. Learn from others
Technology meetups can provide a great networking opportunity to meet other people with similar interests. If your end goal is to transition into a career in coding, look for events that have a jobs forum segment so you can hear about opportunities and connect with folks who are hiring or offering internships. Internships are one of the best ways to gain professional experience, so definitely pursue internships where you can. Meetups are also a great place to learn about current tools and trends, as well as how others are learning, and find potential mentors.
6. Build things you can use right now
As an educator, creating supplemental resources for students is a big part of the job. Throughout my teaching career, I’ve built for my students web-based games, practice logs, and for my staff, an internal gradebook. One year I gave a presentation at a conference and built the entire slide deck with an open-source JavaScript framework. Wherever you can, apply your coding skills to solve problems that are relevant to you right now. Again, make sure you include all of this in an open-source repo so you can share the code with others.
7. It’s not talent, it’s practice
“If you are interested in something, you will focus on it, and if you focus attention on anything, it is likely that you will become interested in it. Many of the things we find interesting are not so by nature, but because we took the trouble of paying attention to them.” – Mihaly Csikszentmihalyi
From Finding Flow: The Psychology of Engagement with Everyday Life
If you are simply curious about learning how to code or are unsure if it is right for you, I would encourage you to give it a try! You may be thinking, “I’m terrible at math!” or that coding requires some kind of talent embedded in your genes. Musicians know all too well — it’s not talent, it’s practice! There are plenty of avenues of coding that don’t require complex math skills. It’s also worth noting that a few wins in programming may spark your interest and a renewed confidence in learning math or other technically challenging subjects. You can do it!
Russ Callahan (he/him/his) is a Senior Engineer at Postlight. Reach out at hello@postlight.com.
Work for Postlight! Love making exceptional digital products? We’re hiring engineers, PMs, designers, and strategists. Let’s grow together. See openings.
Story published on Jan 19, 2022.