A Liberal Arts Major’s Guide to Learning to Code

In the modern economy, computer programming is one of the most useful and in-demand set of skills for professionals. But even if you harbor no ambitions of becoming a world-renowned computer scientist or unicorn software entrepreneur, having a rudimentary level of digital literacy is critical, and learning a programming language is a great way to familiarize yourself.

However, starting from scratch can be extremely intimidating, especially for aspiring programmers whose strengths may lie outside of math and science. I know this because I was that person! Since I began coding a little over a year ago, I’ve learned the very, very basics of three different programming languages (R, Python, and SQL) and have been surprised by how much I’ve enjoyed exploring the fields of computer programming and data science.

To assist others who want to dip their toe into coding but don’t know where to start, I’ve put together a short 5-point guide. I hope you find it useful!

1) Find Your “Why”

Even male models like Derek can learn to code… if properly motivated.

This first step is the most important and most personal part of the process. When beginning any new endeavor, a person should recognize that they are unlikely to stick with it without realistic, clearly-defined motivations. For me, the primary motivations to learn to code were two-fold:

  1. a desire to break into the technology industry post-MBA; and
  2. a genuine curiosity to learn how computers, databases, etc. work.

Before hopping into the command line and charging ahead, take some time to reflect on why you want to learn to code and what you are really looking to get out of the experience. Is there a particular problem you’re trying to solve? A specific set of skills you’re looking to acquire? A dream job you’re targeting? This introspection will be critical to setting yourself on the right path (e.g., choosing what language you want to learn first) and keeping you focused through the highs and lows of your studies.

2) Choose Your Method

Fortunately, the stakes are MUCH lower outside the Mortal Kombat universe.

This is another highly personal decision. I opted to take formal, in-person programming courses at Columbia Business School from brilliant professors like Jared Lander (R) and Mattan Griffel (Python, SQL) because I was already enrolled in graduate school and their classes were some of the most interesting electives available. In reality, in-person instruction is probably unnecessary and can be an impractical way to learn to code due to the high financial expense, significant time commitment, and sheer inconvenience of synchronous attendance.

Never fear! There are tons of free and lower-cost options available for fledgling coders (e.g., Codeacademy, edX). In addition, there are several online communities like Stack Overflow and Github where you can connect with other programmers and find solutions to common problems. If you prefer, you could pick up a book (e.g., Learn Python the Hard Way by Zed Shaw, The Book of R by Tilman Davies) and teach yourself instead.

There is no “wrong answer” here — just be sure to tailor the method of instruction to your programming goals, learning preferences, and desired lifestyle.

3) Practice, Practice, Practice

Allen Iverson hated practice, but it’s essential to long-term progress.

Your tuba teacher said the exact same thing in the 4th grade, and it remains true to this day — you simply have to practice! Just as human languages like Russian and Japanese require constant repetition to reinforce learning and build memory, so do programming languages like Ruby and JavaScript.

When starting out, you should expect to commit at least one hour per day to studying your language of choice. I’ve found this is the best way to hold yourself accountable, retain past lessons, and grow your knowledge base over time. Even if you’re just reviewing your notes or playing around with old code, be sure to reacquaint yourself with the material frequently to keep your knowledge fresh and your skills sharp.

4) Build… Something

Artist’s rendering of me building my first Python project.

Eventually, you will want to put your hard work to the test and, you know, actually create something. This is the fun part!

Pick a clearly-defined scope for your project and get to building. When I was learning Python, I was impressed by the capabilities within libraries such as Pandas, MatPlotLib, and Seaborn for performing advanced data analysis and visualizations. I decided to use these capabilities to retrieve financial data from a publicly-available API and display customized dashboards with key metrics for companies that I follow on a regular basis.

Whether it’s something useful or something fun, take what you’ve learned so far and build something. It’s a rewarding way to apply your learning and see how far you’ve come!

5) Keep Exploring!

There are hundreds of programming languages in existence (and counting) and an infinite number of potential use cases. Follow your interests and see what’s out there. Learning is a life-long process!

--

--