Let’s say you’re new to programming, or maybe you’ve coded before but you’re tackling a new concept. You’ve read a blog post or taken a workshop, and have a general sense of what is going on. But how do you take this to the next level? One of my favorite ways to dive into a new technique is to simply try it out.

With coding, learning by doing is one of the best ways to improve. When I started learning Python, I took a class where I did homework assignments involving coding small games and algorithms. While these were useful for general coding, I wanted to dig in to the techniques I would use in my career. I read up on a few topics related to programming and linguistics, but I still wasn’t comfortable connecting what I was reading about with what I was learning in my linguistics classes.

Those skills really started to develop when I began working with a mentor on a project to do some automatic language analysis. I started small, building out features as I grew in my knowledge and coding comfort. And I learned along the way. I read online forums about coding in Python, then wrote and rewrote my code. I was a much better coder by the end of this experience, simply by learning in the context of a real, tangible product.

Since then, I have continued to develop my programming ability, and the skills I have built over the course of that first project, especially in reading documentation and debugging, have proved valuable in adapting to new coding challenges.

Learning through doing has also guided my teaching philosophy. No workshop or class is complete enough to cover every nuance of programming that you will need to develop a project. Instead, I think about teaching in terms of communicating vocabulary or keywords: What terms would you search for if you needed information on a given topic? Where would you go to see examples of code in action or work through barriers? These questions are ones that I ask myself frequently when I am approaching a new challenge, even after years of coding experience.

No matter your experience or background with coding, I encourage you to work on that side project you’ve been thinking about, or even on a new dataset. Working with file paths? Make a script that renames files for you. Want to learn machine learning? Try out some algorithms on a dataset of personal interest and see what you find. Big or small, a project can consolidate your learning and produce something tangible to demonstrate your progress. So jump in, get coding, and you’ll quickly see how far you’ve come!


Emily Grabowski

I am a PhD student in Linguistics. My research interests include understanding how our speech production and speech perception systems constrain linguistic variation, especially as it applies to the larynx. I am also interested in integrating theoretical representations of language with speech. I approach this using a broad variety of tools/methodologies, including theoretical work, experiments, and modeling. Current projects include developing a computational tool to expedite analysis of pitch and an online perception experiment on the relationship between pitch and perceived duration.