This post was originally published on the author's blog. It has been edited slightly.
"Should I learn to code?"
MBAs who lack programming skills often ask this question when they pursue careers in technology companies.
Bloggers like Yipit co-founder Vin Vacanti have shared views on the payoff from learning to code, as have several students at Harvard Business School, including Dana Hork, Matt Boys, and Matt Thurmond.
I thought it'd be helpful to supplement bloggers' perspectives with some survey data. I received responses from 24 of the 41 HBS students who enrolled over the past two years in CS50, the introductory computer science course at Harvard College.
My survey didn't ask for comments on the quality of CS50 itself. The course is widely acclaimed; my colleague David Malan has grown its enrollment five-fold to 715 students over the six years he has served as lead instructor. Rather, my goal with the survey was to learn whether MBAs saw this well designed and rigorous course as a good investment of their time, given their career objectives and other course options. The tradeoffs are tricky: survey respondents reported spending an average of 16.3 hours per week on CS50 — perhaps 2-3x more time than they would spend on an MBA elective that yielded equivalent academic credit.
So, was it worth it? Of the 18 survey respondents who founded a startup, joined an existing startup, or went to work for a big tech company upon graduation, 83% answered "yes" to the question, "On reflection, was taking CS50 worth it for you?" and 17% said "not sure." Of these 18 respondents, none said that taking CS50 was not worth it. By contrast, of the six respondents who pursued jobs outside of the tech sector — say, in consulting or private equity — only two said CS50 was a worthwhile investment; three said it was not; and one was not sure.
Respondents cited several benefits from taking CS50.
Writing Software. Respondents differed in their assessments of their current ability to contribute working code on the job, based on their CS50 learning. Several said they regularly do so, for example:
Kyle Watkins, who joined an existing startup, said he has "used CS50 skills to create a half dozen VBA programs that will likely save the startup I'm working for tens of thousands of dollars."
Michael Belkin, who founded his own startup, said, "After taking CS50, I was able to build an MVP that would have cost at least $40K to outsource. And it was better, because I understood all the small details that drive a user's experience. After HBS, I became one of the lead developers at my startup, which has saved the company several hundred thousand dollars."
Communicating with Developers. Other respondents, especially those employed in large tech companies, said they couldn't really write production software, but felt more confident in their ability to discuss technical issues with developers as a result of taking CS50. For example:
Jon Einkauf, a product manager for Amazon AWS, said, "I work with developers on my team every day to define and build new features. In addition, the users of my product are developers and data scientists. Taking CS50 gave me a glimpse of what it's like to be a developer — to get excited about complex computer science problems, to get frustrated when you hit a bug. It taught me enough about software development that I don't feel lost in my current job. I can ask intelligent questions, I can push back on the developers when necessary, and I am confident that I could teach myself anything else I need to learn."
Luke Langford, who joined Zynga as a product manager upon graduation, said that CS50 "gave me a working knowledge and confidence to be able to review code. Product managers at Zynga don't often work in code, but there were several times when I was able to diagnose issues and help the engineers identify why certain algorithms that calculated scores were wrong. Pre-CS50, I wouldn't have been able to do that."
Recruiting. Several respondents mentioned that their CS50 experience had helped persuade recruiters that they were committed to a career in technology. As one anonymous respondent reported, "I wanted to get a job at a tech startup and ended up as a product manager at one of NYC's hottest tech startups. The founder, who is a CS PhD, was really impressed that I'd learned to code. I think it made a difference in getting the offer."
The benefits from CS50 came at a considerable cost, however, in terms of workload. In addition to lectures and section meetings, the course has weekly problem sets, two mid-terms exams, and a final project that requires students to design and build an application.
Many respondents acknowledged that there are online options for learning to code that would not require as big a time commitment as CS50. However, they saw a graded course for academic credit as good way to ensure they would actually get the work done. An anonymous respondent said, "I knew that I would never learn programming if I didn't have something — a problem set or test — to keep me accountable every week. I don't want to generalize, but I highly doubt that most HBS people after doing their cases/travel/socializing are going to set aside time to consistently do Codecademy or Treehouse every week."
Justin Ekins added, "You can learn everything in this course online, but, let's face it, you're not going to force yourself to do that. And you won't get the depth of knowledge that CS50 will provide. It's an outstanding course, and it's incredibly well taught. I'd recommend taking it and then spending J term [three weeks in January when regular HBS classes do not meet] with Stanford's online CS193P, which will get you to the point of building iPhone apps."