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.

Benefits

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 CS 50 “gave me a working knowledge and
confidence to be able to review code. PMs 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.”

Costs

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.

Beyond the heavy workload, respondents who were less
sanguine about the payoff from CS50 often cited its use of C to teach
fundamentals such as functions, loops and arrays, rather than a more modern
programming language. While acknowledging that C is well suited for this
purpose, these students would have preferred more focus on languages used in
web development (e.g., JavaScript, HTML, and PHP), which are covered in the
last one-third of CS50’s syllabus. Likewise, some students said they understood
why certain “academic” concepts (e.g., algorithm run times, security) were covered
in an introductory CS course, but they did not view such concepts as salient to
their “just learn to code” personal priorities.

Advice

I asked respondents for advice on how MBAs who enroll in
CS50 can get the most out of the course.

An anonymous respondent said, “Go to office
hours Monday night; it’s the least busy night, so you have the best chance of
getting lots of TA help. Get to know the undergrads: they are fabulous! Build
something for your final project that you're passionate about, and use a
language that’s relevant to your career plans.”

Einkauf added, “You need to really commit to
it.If you just watch the lecture videos,
complete most of the problem sets, and build a basic final project, you can get
a decent grade—but you'll only get a fraction of the possible value.You should plan to attend your section
meetings, set aside plenty of time for the problem sets, really invest in the
final project, get to know the other students, go to the hackathon, etc.”

Vincent Ho-Tin-Noe advised, “The class is very
easy for 2-3 weeks, and then it just gets crazy. Don't be caught off-guard.
Start working on your problem sets as soon as you get them to gauge the amount
of time you'll need. Don't start 2 days before the deadline; you won't be able
to manage your workload otherwise, even with all-nighters. Also, make sure to
watch the lectures live or within 24 hours online. Don't try to catch up on
lectures and short videos all at once, right before starting your problem set,
or you'll get swamped. Watch all the videos, including problem set walkthroughs
and shorts, if you want to get the most out of the class. Finally, make sure to
attend sections. They're extremely useful, and bonding with your teaching
fellow will definitely be helpful.”

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.”

Sixteen of the survey respondents are happy to be contacted
by current HBS students who have questions about taking CS50. You can email me
to get their contact info.

3 comments:

While computer programming remains core to an IT Developer career success, and would definitely help any business majors with logical deduction, i doubt if one HBS CS class is enough, not to talk about OS platforms, Networking and systems architectures, etc. However, the goal of HBS CS50 in having students gain knowledge of programming basics and interact with IT Developers is sound enough. Business Schools are not for classical Programmer Analysts or IT Developers afterall, and line managers who are interested in core programming or enterprise applications development can always study independent IT courses post MBA school.

This is a great point. I think my experience as a coder in the 80s helped me manage and communicate with developers in the 90s and 00s. I'd love to take some time to learn Agile development - at least I could talk with my son.

Interestingly, my son went to the FlatIron Programming school last year, and loved the intensive, three month program.

Wouldn't a highly immersive /experiential program designed for MBA students be a fantastic thing? Maybe several weekends spaced throughout the year?

This is an enlightening article and study because I was under the misconception that global MBA students do not require programming skills. I can see now that this is a very useful and practical skill.