So, let's talk about motivation for the class. This is basically the class we wish we'd had
when starting out. Startups are huge, and you know, Stanford is the epicenter of Silicon
Valley, but you don't actually learn how to start up a company at Stanford. It's just
something you sort of pick up by osmosis from the people around you. And part of the reason
for this is that academia, even though we love it, teaches the details of black boxes,
not how they fit together. It teaches how to solve problems, but not necessarily what
problems are valuable to solve. And you know very very frequently we've seen this over
and over again. First year grad students and PhD programs and fresh graduates of undergrad
computer science programs don't really know how to ship production code. This is kind
of an amusing graphic over here, and one of the most interesting parts is "spoke to a
developer friend and heard about software testing for the first time". Now, you're going
to hear about that before you get into your PhD or your major project. Scaling a startup
is a lot like scaling a research lab in the following sense. You start hiring engineers
once you start getting money and funding or revenue, which is even better, but those new
engineers weren't taught how to code in college, so the first three months are spent training
them while you're paying their student loans. Scaling a research lab, very similar problem,
except with first year grad students, and the purpose of this class is to basically
go upstream and, you know, communicate some of these useful concepts upfront so that we
can, you know, train these grad students who'd otherwise coded for up to six years without
knowing software engineering. It's going to be a relatively challenging course. There's
no speed limit in a startup. There's a lot of Javascript related material, but there's
no curve, and in theory, everyone can get a grade of a hundred percent. So, that's kind
of the motivations behind the course and we'd love to have you involved.