Learning to Code

March 23, 2020

When I was in college I took an introductory programming class and promptly forgot 95% of what I learned. Most of the topics of the homework or coding challenges involved in the class were on topics unrelated to my primary area of interest (language data) and the skills did not seem transferable. My research would never rely on animating a face, so how was it useful?

So, when I was tapped to program for a linguistics project, I didn’t know if I had the skills to be successful in the project yet, or how steep the learning curve would be. And as I spent hours on coding websites and documentation, I realized that I had gained two foundational skills in my hours of coding line drawings and games. One, I could read code that had originally looked like an entirely different language. Two, I had some idea of where to go to learn strategies to solve specific coding problems.

And so I learned to program as I developed a serious research project, and I found that through applying these general skills to a specific project of interest, I was able to build a vocabulary and set of techniques specialized to my research focus and area of interest. In addition, my personal investment and engagement with the project motivated me to learn and retain information that felt particularly relevant to my goals. This anchored my learning to a tangible outcome.

Now, I am more and more frequently running into questions about obscure python packages or algorithms for which there is no easy answer from my usual sources. However, having the basic foundation to build coding skills and familiarity with the available resources in my field has made it possible to gain traction even on difficult coding problems. While the answer is often unclear, that’s okay, because there is always a way to move forward, closer to that final solution.

If you are looking for resources to support your current coding challenge, check out the DLab’s consulting and workshop services. These can be a great way to build foundational skills or overcome a coding question.