Applicable University

CS 193H High Performance Websites

Good work Stanford! Producing graduates with applicable skills — sovaluable.

I’ve thought Universities needed more applicable tracks for a long time. I’ve head people argue against me, too, and I’ve never felt theirarguments held much water. One that’s been brought up a few times is that“they teach concepts applicable to lots of scenarios, not specificimplementations”. I think you can learn how real-world people have appliedthe concepts to real tools, debate their decisions, and come off with awell-rounded understanding of the theory plus an understanding of aspecific example. As an employer, I’d prefer you to know how to tune agarbage collector — any garbage collector — than not. The concepts portwell, but if you’ve never done it before, it takes a long time.

I think the real reason there isn’t more applicable classes at a lot ofUniversities is because the profs can’t teach them. A lot of profs havenever worked. They got a Bachelors, a Masters, a PhD, and now they teach. Or else when they did work it was decades ago, or maybe in a researchcenter, or wherever — regardless, I don’t believe there are manyprofessors around with Twitter, Facebook, Amazon, or Google experience. Bythe end of their PhD program, they’re under-qualified to teach anythingpractical, because they may not know what is practical and what isn’t. (Tobe sure, this does not apply to all profs.)

Don’t get me wrong, PhD work is incredibly valuable, and leads to amazingreal-world implementations of breakthrough theories, but the professionalimplementors are generally underrepresented at Universities. Studentsgraduating with a Masters or a PhD are often less qualified for practicalsoftware engineering jobs. Stanford seems to be addressing this, and Ihope other Universities follow.

Other classes I’d love to see:

CS 19X Latency-Constrained, High-Volume Services

  • load testing
  • tuning the JVM
  • detecting and determining bottlenecks
  • scale out, not up
  • estimating hardware needs
  • service redundancy
  • DB sharding
  • DB failover strategies and implications
  • DB growth analysis and strategies
  • seamless deployments and rolling back
  • threading horror stories
  • server security and authentication

CS 19Y Unix Administration for Developers

  • shell programming and the profile/zshrc/etc
  • applications run as users
  • what’s listening on that port? (and network strategies)
  • server tuning and hardware selection
  • logging
  • AWS-applied (from zero to service stack)
  • backups, archives, storage, and recovery
  • DNS
  • connectivity
  • keys, passwords, tunneling and other security concerns

CS 19Z Practical Development Practices and Tools

  • source control
  • unit testing
  • integration testing
  • continuous build & test, code coverage
  • dependency management 1, POM Hell, an introduction to Maven
  • dependency management 2, bundler internals
  • deployments
  • REST vs SOAP
  • real-world commenting, READMEs, and technical blogging
  • bug tracking & sprint planning
Advertisements

About softwaregravy

Software Engineer, aspiring financial guru, and entrepreneur; all mixed with a bit of awesome.
This entry was posted in Uncategorized. Bookmark the permalink.

1 Response to Applicable University

  1. vk says:

    It’s interesting that class is taught by Steve Souders. He literally wrote the book on web performance. What’s interesting, though, is that he supposedly hasn’t performed very strongly in the real world. From what I’ve heard, he’s a thinker not a doer.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s