Why You Shouldn’t Take that “Intro to CS” Course

Our scene opens on a charming coffee shop on the edge of the Boston commons.  It’s a crisp autumn day and I’m grabbing a midday pick-me-up with an aspiring entrepreneur friend, who has just informed me that she (or he) has enrolled in an intro to computer science course.

“Cool!” I’ll exclaim.  Then, with a raised brow, I’ll often inquire, “What are you hoping to get out of it?”

Invariably, my friend will patch together a response involving some combination of the following two reasons:

  1. I want to learn more about technology.
  2. I want to better manage or collaborate with engineers.

…I usually respond with a dejected sigh.  This is a scenario that I’ve experienced more times than I can count, and each time I’m two parts excited by my friend’s initiative and by the prospect of future CS-related banter, but one part concerned that my friend might not get what he (or she) wants out of the class.

The fact is, neither of the above responses are great reasons to enroll in an introductory computer science course (hereafter, “CS intro”), and here’s why…

(Wrong) Reason #1: You want to learn more about technology.

If you’re looking for a high-level survey of technology, a CS intro might seem like a lot of strange “busy work” to you.  This is because computer science is less about technology and more about mathematics and practical applications of theories, algorithms, and data structures.  More than anything, studying computer science taught me how to think rationally, solve problems, and design and build machines that could do the heavy lifting.  That knowledge has a very practical application in modern technology, but to think that CS deterministically leads only to that end would be a regrettably narrow interpretation of the science.

Now, by no means do I wish to imply that a CS curriculum won’t provide a great high-level survey of technology.  It’s just that it’s not quite the shortest path to it.

(Wrong) Reason #2: You want to better manage or collaborate with engineers.

Perhaps you may choose to take a CS intro because you believe that getting a taste of code will empower you to better communicate and connect with engineers.  This makes sense, ostensibly, and indeed it is the most common reason I’ve heard for enrolling in a CS intro.

The sad truth, however, is that it would take years of learning and coding (plus a bit of talent) to really go toe-to-toe with a great engineer.  And while you may gain some respect for completing a CS intro, that “Hello World” program isn’t going to make you any more relevant in technical discussions and decisions.  In fact, your respect and relevance as a manager or colleague to engineers is probably most beholden to your effectiveness at translating business needs and managing resources and expectations.  Computer science really has little to do with it.  No doubt that CS literacy would help lubricate your interactions with engineers, but if you are currently a tech n00b and only have one semester’s worth of time, you would be better served learning high-level stuff and working on your communication skills than taking a CS intro.

Bonus: Why you should take that “Intro to CS” course.

As an aside, there are in fact a couple good reasons why I would recommend that someone take an introductory computer science course:

  1. You want to learn to code, or
  2. You are simply interested in learning more about computer science.

(Good) Reason #1: You want to learn to code.

If you want to learn to code or you are considering becoming an engineer, an introductory computer science course is a great place to start.  You’ll start building your development toolbox and learn the basics from which you can launch a great career (or hobby) in code.  It takes time to gain a solid foundation, but it’s well worth the effort.

(Great) Reason #2: You simply want to learn more about computer science.

I am always a proponent of learning for learning’s sake.  If you are interested in or passionate about something, by all means please do whatever it takes to dig deeper.  At the same time, it’s important to know what you want to (and stand to) gain from an experience.  Do things deliberately so that you have the best chance of accomplishing whatever it is you desire. And be in touch if you do end up taking a CS intro! Look forward to chatting soon. 🙂