June 7, 2021 in Issues in Education
Python: The New MBA Must-Have
SHARE: PRINT ARTICLE:
https://doi.org/10.1287/orms.2021.03.08
More than five years ago we taught our first Python class to MBA students at the Columbia Business School. Over the course of these five years, we have formed three key opinions. First, that any MBA student – irrespective of their target industry – can benefit from familiarity with Python. Second, that Python can be taught to any curious and interested MBA student, whatever their background or technical proficiency. And finally, Python classes for MBAs need to be designed specifically for them – adapting or simplifying engineering classes for this less technical audience is unlikely to be successful (as we’ve seen first-hand).
In this article, we hope to expand on these three points and discuss the approach that we distilled in our recent book “Python for MBAs,” published by Columbia University Press, and available with additional resources for instructors at pythonformbas.com.
Python is one of the most popular and versatile programming languages in the world today. It can be used to automate repetitive tasks, build websites, scrape the internet, analyze data, produce visualizations and much more. At the end of our class, we always challenge our students to come up with any corner of the business world that could not benefit from some of the material we covered in the class – no student has ever risen to the challenge.
While it’s sometimes assumed that people in business roles don’t need to learn about computer programming, which can be outsourced to IT teams, this is an outdated and dangerous way of thinking. Even students who will not use Python themselves (and many MBAs won’t) find that knowing enough of the language to be able to communicate with or manage others on their teams who are more technical is invaluable. As one managing director at a large investment bank recently told us, “15 years ago if someone came in and said ‘I’m an expert in Excel, I know how to build macros and code VBA’ we would have hired them instantly because they would have made their whole team more productive. Today that’s Python.”
What’s more, given that more and more of the world around us qualifies as “technology” (our cars have computers in them, and we sleep with our phones within arm’s reach), it is essential that MBAs develop a deeper understanding of how this technology is actually built and what is possible so that they can make better strategic business decisions.
Employers increasingly know this and have seen a surge in demand from recruiters for MBAs with coding skills. A recent job posting from BlackRock’s Financial Markets Advisory team sought an associate familiar with “programming languages, including scripting, data management, database and visualization tools … some knowledge of R or Python required.” Recently, Facebook was looking for a Finance MBA Intern with “strong fluency in SQL and/or other programming languages.”
Our students have responded in droves; the popularity of programming classes at Columbia Business School has mushroomed, with hundreds of students taking them every year, and many other schools have launched similar electives. Our students have also found their time with us has paid off handsomely. We often receive gratifying emails in our inboxes with stories of students who have used what they learned in our classes to create companies, develop new products, lead teams of engineers, and generally impress anyone around them who thought MBAs would never be able to do anything technical.
We used to joke that Python was the most important language our students had never heard of. Those days are gone; “Python” is now searched on Google more often than “Kim Kardashian.”
Is it unreasonable to expect nontechnical people to learn how to code? Perhaps it used to be, but not anymore. Python is leaps and bounds easier for beginners to learn and understand than other programming languages, which plays a significant role in its rapid growth – it emphasizes readability.
We have had students in our classes with academic backgrounds ranging from biology and sociology to history and English, and all have risen to the challenge of learning a new language. In fact, we found that having students from a broad range of backgrounds leads to discussions that are often more dynamic than they would be with only engineers or computer scientists.
It is no longer necessary for someone to get a four-year computer science degree to apply programming to solve real-world challenges. Our students have gone on to roles ranging from product managers to community managers to marketers to analysts to neuroscientists, and have used their skills to stand out in increasingly competitive industries.
How We Build This Class
We now turn from the “why” to the “how.” Our first attempts centered around simplifying coding classes written for engineers and computer scientists. These attempts were similar in spirit to those we saw at other schools that have relied on computer science departments to adapt some of their classes for nontechnical audiences. In our experience, these approaches often fall flat. In engineering classes, the focus is usually on the theoretical foundation of programming rather than the application of these technical concepts. Students might learn the benefits of object-oriented programming or specific Python libraries, but they are less likely to be trained to identify the correct function to handle a specific business problem.
The approach we now use is different. We build our class with MBA students in mind from the start, and we anchor much of our discussion in business case studies and problems.
We divide our class into three sections. The first covers basic concepts in programming: variables, control structures, functions, etc. Rather than start with the stale “Hello World!”, we begin by deconstructing preexisting Python scripts and helping students think critically about how to understand code they might run into in the wild. In more recent iterations of the class, we have even relegated some of the more basic material to “pre-class work,” to be completed before the class with the help of teaching assistant-led sessions.
The second section covers what we have found to be the single most useful skill business leaders can derive from knowing Python – the ability to analyze and pull insights from their company’s data using pandas, one of Python’s most popular data analysis libraries.
We base this discussion on a case study about a New York restaurant chain called Dig (available in our book, or through Columbia CaseWorks [1]). Using a simulated data set comprising more than 2 million transactions, we demonstrate pandas’ ability to answer complex questions based on data files Excel would not even be able to open. Most importantly, instead of taking a technical approach to introducing pandas, we take a business-driven approach; we introduce a problem and then introduce the right function to solve it.
Finally, in the third section, we cover additional applications from web scraping to APIs to techniques that allow students to connect their code to Excel, email and Google Sheets. Again, we introduce each of these topics in the context of a different case study. We expect these topics to evolve as we continue teaching the course and new topics gain more importance and popularity.
Along the way, we stop to have important discussions about the business implications of some of these concepts. How should we think about the value of technical debt and refactoring code from a business perspective? What are the pros and cons of relying on third-party libraries and APIs? What is the legality of web scraping, anyway?
What We Leave Out
Finally, it is worth noting what we have intentionally chosen not to include in our class.
First, we deliberately chose to only teach as much Python as is needed to get to the applications and no more. Most conspicuously, we do not discuss object-oriented programming or the construction of classes. Long-term scalability of code, in our experience, is a topic that MBA students rarely must contend with themselves.
Second, we avoid any topics related to machine learning or artificial intelligence. We find that the ease with which Python can create these models can be deceptive. Students are then tempted to apply these models without understanding them in enough depth. We therefore relegate these topics to more advanced classes that have ours as a prerequisite.
Marc Andreessen once remarked (in The Wall Street Journal) that “software is eating the world” [2]. We could not agree more. The fundamental distinction between technical and nontechnical people is disappearing – when everything is technology, every job becomes technical, and it behooves us to prepare our students to operate in this new reality.
References
- https://www8.gsb.columbia.edu/caseworks/
- Marc Andreessen, 2011, “Why Software Is Eating the World,” The Wall Street Journal, Aug. 20, https://www.wsj.com/articles/SB10001424053111903480904576512250915629460.
C. Daniel Guetta is a senior lecturer at the Columbia Business School and director of the Columbia Business Analytics Initiative, a joint initiative of Columbia Business School and Columbia Engineering. He is the developer of XLKitLearn, a tool for learning Python data science in Excel, and the co-author of “Python for MBAs,” to be published in fall 2020. Prior to joining Columbia, he was a deployed computational engineer at Palantir Technologies. Mattan Griffel is an award-winning assistant adjunct professor of business at the Columbia Business School and an Innovation Fellow at the Lang Center for Entrepreneurship. He is a two-time Y Combinator-backed entrepreneur, and co-founder and COO of Ophelia, a company that is reinventing drug rehab by making evidence-based treatment private, affordable and accessible via telemedicine. He is also co-author of “Python for MBAs.” He studied philosophy and finance at New York University.
