Friday, January 30, 2015

Information Technology, Computer Science, Computer Engineering, Electrical Engineering

Modern human thought likes to break disciplines into distinct categories. It seems to go back to Utlitarianism, and the foundations of modern science.

This becomes complicated when categorizing new disciplines, like computing. And so we have four disciplines, that twenty years ago still had significant overlap:

  1. Information Technology - In business, this is the group responsible for making sure that employees have computing hardware, for keeping the hardware running, for keeping the software up-to-date, maintaining the network, and securing the intranet.
  2. Computer Science - In academia, this is usually where software languages, the mathematics and theories behind software languages and information systems, and coding are put into practice.
  3. Electrical Engineering - In academia, this is the hardware perspective. Ohm's Law, circuit design, resistors, capacitors, transistors, semiconductors, solid-state circuitry. Also power, Radio Frequency communications, antennae.
  4. Computer Engineering - Twenty years ago, this was a new field. It seems to take the hardware knowledge of Electrical Engineering, and apply it specifically to computing equipment, perhaps combined with Computer Science.
Twenty years ago, when I was an undergraduate student, there was significant overlap between the fields. I knew several EE students whose campus job was working in the computer labs. C programming was part of my engineering curriculum, and I knew peers who took Java.

Every college student is going to find strengths and weaknesses within their discipline. Some subjects will be a struggle. Others will be exciting, and may seem to come naturally because the work of studying is so exciting. The key seems to be to play to those strengths, to what drives you to give your best.

When I enrolled, Computer Engineering was a brand new major. I was there just early enough that, on a technicality, I probably could have selected and been grandfathered into the older Electrical and Computer Engineering degree.

I chose not to do that, chose to stick with plain old EE. Perhaps another post, I'll spell out those reasons, though I feel like they run through every part of this blog. The short story is, if I had it to do over, I would encourage my younger self to do Computer Engineering, instead.

Here we are, twenty years later, and the borders between the above disciplines seem less permeable, more rigid, codified, and solid. When I was doing my Plan of Study for my Master's Degree, I kept looking at the ECE and CS offerings... and usually didn't find what I was looking for. Thankfully, resources for learning computing languages abound, from professional development classes, to MOOCs, to CodeCademy. All it takes is the time and persistence to complete them.