surprise that the innovations that led
to the DevOps transformation did not
come from academia. This is a disgrace
that should make every CS department
bow their heads in shame.
How Can We Turn This Around?
How can we ensure students are exposed to the best of the best practices
from the start so that they consider
anything else a bug?
How can we make curricula more
Here are a few small and big things
that universities could do.
1. Use DevOps tools from the start.
Students should use source-code repositories such as Git, and CI/CD tools
such as Jenkins, as they do their CS
homework. These processes should be
established as the normal way to work.
Professors should expect homework as-
signments to be turned in by linking to
a Git commit and a Jenkins output log.
Some instructors will undoubtedly
feel it is difficult enough to teach first-year computer science without adding
the complexities of Git. Most IDEs,
however, make simple check-in/check-out operations a breeze, especially for
single-person projects with no branch-es. By the time projects get more collaborative, the students will be ready
for the more advanced Git features.
2. Homework should generate a Web
page, not text to the console. I recently
spoke to a roomful of third-year CS majors and was shocked to learn that
most didn’t know HTML. The curriculum was fairly standard—
undergraduate algorithms and such. HTML
was something you learned in the art
department; the computer science department was for serious students.
I think there is a middle ground be-
tween serious computer science theory
and accidentally turning into a Web ap-
plication boot camp.
It isn’t a radical statement to say
that most software engineers write
code that is somehow part of a Web-based application. At companies like
Squarespace and Google, software engineers’ IDEs supply default templates
for new programs. Such a template is
for a self-contained Web server that
directs output to a Web page. Even a
simple “Hello World!” program is a
Web server that outputs the greeting as
a result of an HTTP request and, by default, generates logging information,
monitoring metrics, and so on.
Yes, that is a bit much for an introductory student’s “Print your name 10
times” program. But after that, generate a Web page!
3. IT curricula should be immersive.
How could formal education better
emulate the immersive experience that