How I'd Teach Computer Science


I think this is an interesting idea, but it’s a bit short sited. I can’t emphasize this enough, but Computer Science != software development. There is definitely overlap between the two, however, it is certainly possible to have one without the other. I have met many software developers who were excellent at writing software that didn’t know the first thing about the time complexity of a given algorithm. I feel that distilling computer science down to what equates as process training is a disservice to the Computer Science field (says someone with a Masters of Engineering in Computer Engineering and Computer Science).

I do think offering courses with development methodologies in the curriculum is a worthwhile goal for college course work. I’m embarrassed to admit that fresh out of my college course work, I was fairly unfamiliar with source control. I had classes that taught us how to create UML diagrams to map model relationships for our OOD assignments, but I had not learned how to properly use source control, or how to plan a project, or what constitutes a good bug report. Shortly after landing my first job, I felt shame in what I didn’t know. I felt like a failure because I was unfamiliar with some of the technology stack. I felt inadequate around coworkers even though I held the highest degree. I remember being bitter towards my education.

Over time, my bitterness faded. I learned the different methodologies, different languages, and different tools of the trade. These came easy to me with a little patience. I still wish I would have had professors who had pushed us to use some of these tools/methodologies in our projects, but I eventually forgave them. I learned to be proud of my Computer Science background and it eventually set me apart from others in my field. It alone does not make me a better developer, but it’s an extra tool in my toolbox that others may not possess. I think this appreciation for my education has turned me off toward some of the formal education bashing that resides in my profession. There are many developers who tend to negatively view a traditional education. That’s okay. It’s their right. I just want to point out that those things are not equal, but they also don’t have to be mutually exclusive either.