|Computer College MajorsIn 2010 when I was deciding where to go to college and for what, I decided on Computer Engineering at Clarkson University. At the end of last semester I filled out the paperwork to change to Software Engineering. I'd like to provide some insight for younger readers who will be looking at college.
When I was looking at colleges, I was sure I wanted to be a Computer Engineer. After writing GUIs as long as I have, it made sense to have a Computer degree and Engineering majors are some of the hardest with the highest payout. But really there three other choices that I discounted at the time: Computer Science and Software Engineering which I though would be too much software not enough hardware, and Information Technology which I never really researched, and all the programs I knew of where associates degrees, I really wanted more than that. Choosing Computer Engineering, and deciding I wanted to stay in New York limited my options to 4 colleges. I like the one I ended up at, but looking back if I had looked at other degrees I could have really expanded my options.
First, a quick note, the rest of this article is based on my findings at Clarkson University, and other colleges may vary. I can't really speak of Information Technology as it's not offered at Clarkson, but my impression is that it is less hardcore academic and more practical, a solid foundation if you want to work in an IT department, or have an interest in personal computer hardware.
The first thing to know is that Computer Science is an "arts" major and not an engineering major. Engineers all take the same math and science courses in freshman year, Chemistry 1&2, Physics 1&2, and Calc 1-3. If you are not strong in those areas or don't care about them, but are a good programmer, computer science is the way to go. In Computer Science, you take more classes that are related to computer science because you don't have to take the engineering classes.
Computer Engineering is likely the hardest major, and therefore not very many people become computer engineers. First you take a couple years of the basic engineering classes with some early Electrical Engineering classes which are about mathematically and systematical modeling electrical circuits and then you move on to harder Electrical Engineering courses which deal with more complex circuits and models. The whole time you get some programming classes, but for the first 3 years it's one per semester. One unique thing that you learn about is FPGAs, other majors don't go nearly as into them. What makes Computer Engineering so hard is that you have to be an Engineer, and Electrical Engineer, and a Software Engineer at the same time.
Finally we get to where I am now, Software Engineering. The switch was fairly easy, the Electrical courses I had taken are now electives and I have to take a ton of programming courses. Software Engineering is a lot like Computer Science once you get to later years, but the main difference is that Software Engineers are required to take all the math and science engineering courses, which means less time for programming ones. You could ask, why would I want to do that? Well a lot of people end up like me, done with the generic engineering stuff, and wanting to write code. As a new student, Software Engineering could be a good fit if you want to be a programmer, but want the broad knowledge engineering brings. The engineering part will train you to look at problems in a certain way and the programming classes will bring you to your goal.