What it means to learn coding as a social scientist
Aug 02, 2019
I dived into my first programming class — Introduction to Computer Science — in my first semester of college and, as much as I was intrigued by the entirely different system of logic, I was also stressed out for not being able to excel in it as I wanted. My classmates seemed to move forward when I remained stuck with bugs in my program, unable to figure out the problem despite asking around and spending nights at the lab. While it was a natural part of the learning curve that most people would have faced in the initial stages of programming, I was frustrated with myself for not being able to understand the material fully.
By the end of the semester, I couldn’t shake off the feeling that I was lagging behind. At the back of my head I was still questioning myself — why do I want to learn it? What do I hope to do with coding? I couldn’t see myself working as a programmer (at that time I also had a very limited understanding of what studying computer science was like). But I still had a longing to find what I could do with coding and continued poking around for different ways to engage myself.
What immensely changed my perspective on learning coding was taking a Data Analysis course in the Fall semester of my sophomore year. There, I learned R programming and how to analyze data in social science contexts. My political science professor was an avid user and advocate for R (with his frequent appearances to class wearing an R conference T-shirt). Prior to the class I was unaware of the sheer amount of statistics and quantitative methods involved in social science research — I thought coding was only used for making applications and programming as a ‘software engineer’. Little did I know that it could be used in so many different fields, regardless of the discipline.
Throughout the class I learned so much, picking up packages like Tidyverse and visualizing data with ggplot. I also found that having some background in Python immensely helped me; R syntax is similar to that of Python, so the code writing logic came more at ease. One of the most memorable projects in that class was analyzing data for a fictional Bangladeshi NGO, where we had to go through 50,000 survey data points containing information on arsenic poisoning of wells to examine the relationship between well safety, healthcare costs, poverty, and education. We were asked to create policy proposals based on meaningful analysis from a messy data set.
During this project I realized that the aim of programming is not only to write ‘correct code’ — above all it requires you to first lay out frameworks on how to approach the problem and then narrow down what results you want to get through coding. In this case I had to consider how to make findings from the data accessible to a general audience as well.
I loved breaking down problems in such perspective, and actually found myself enjoying coding within this process. Once I saw the reason ‘why’ I needed coding, I gradually started to appreciate the process of learning — including overcoming my fear of bugs and coder’s block.
Being able to code empowers you in a way quite similar to learning a new language, and opens so many new doors for you. Even in my field of interest — sociology — researchers are extensively using programming not only to facilitate data collection, but also to run complex statistical models (such as Bayesian inference). There are Python libraries for text analysis and R packages like Rfacebook that collect information from public posts using specific keywords to examine how social media affects political participation. These can grant much liberty to how people conduct their research and expand the research scope.
Two years since that first programming course, I am now an intern for a company that teaches programming to teenage girls. My time at imagiLabshad been packed with exciting, fast-paced work — I have been mainly working on identifying and delivering new business insights, as well as learning about the workflow that goes into launching an application. And the internship also propelled my motivation to equip myself with more tools. In the next few years I hope to take more statistics and coding classes, and take part in projects that would involve analyzing data for actionable policy proposals to improve the community around me.
Together with the imagiLabs team for the summer!
I am not pursuing a Computer Science major as I had considered in my first semester. After days of indecision, late-night conversations with people for advice, and multiple changes to my academic plan, I realized that my interests lie in the study of the society. Yet there are still so many reasons to learn programming because it empowers you in an entirely new way to gain deeper insights of the problems in society. You don’t need to be a Computer Science major to have fun coding, or use coding in your work. Rather than viewing it as an alien language that requires ingenuity to decipher, it should be approached as another form of problem-solving. I still have a long way to go, and much left to work for, but I am ready to brace myself for more learning opportunities and coding to come.
This article was written by Soohyun Hwangbo, Marketing & Business Development Intern at imagiLabs