<p>I'm currently a sophomore who spent the first year transferring in and out of majors. I was a Computer Engineer my first semester but got D's in Calculus 1 and Computer Science 1 - although, in their defense, I could have studied and worked more.
I really hate calculus and ESPECIALLY trigonometry, but I have no experience in discrete mathematics so I can't say whether I hate math in general or not.
I'm not exactly sure what specific field of computing I'm interested in, but I'd rather not land in a help desk job after slaving away for my bachelor's. I do enjoy programming but I don't know if software engineering would restrict me to strictly programming or allow me to go into other aspects of computing, such as UI design, web development and design, database management, etc.
Anyone have advice?</p>
<p>What you said in your last sentence is all programming in some aspect. I am not in software engineering but my friends are and they were telling me that aside from programming they also need to do project management, testing and product planning.</p>
<p>I would say software engineering or computer science is equally good.</p>
<p>CS and SE are typically fairly similar majors (at least in schools that offer both – many do not offer SE). SE usually has more software engineering type courses in the required list, though CS courses can be used as electives. Generally, CS would be preferable, since the one intro software engineering course that is commonly offered or required should be sufficient for those going to industry jobs.</p>
<p>Either way, including courses in operating systems, algorithms, networks, software engineering (just the first course), security, and databases should cover the most commonly used concepts in industry jobs.</p>
<p>Both school and industry jobs in CS or SE will require programming.</p>
<p>IT is usually a business type major, where the technical aspects are mainly in system and network administration (the low end typically being the help desk). If you do that, you may still want to take the CS courses in operating systems, networks, databases, and security, in order to have a stronger foundation in the concepts that will let you better learn new technologies and handle difficult problems (many IT people who have only lower level vendor certifications have difficulty with such things).</p>
<p>Computer Science (with the electives that UCBAlumnus suggested) would be the best choice. I would throw in a single all-encompassing “software engineering” course as an elective also. My issue with the information technology major is many programs will not require the total “CS core” of algorithms (or analysis of algorithms), data structures, organization of programming languages and operating systems. That “core” relates to the statement that UCBAlumnus pointed out…</p>
<p><a href=“many%20IT%20people%20who%20have%20only%20lower%20level%20vendor%20certifications%20have%20difficulty%20with%20such%20things”>quote</a>
[/quote]
</p>
<p>Now not having that core will not hurt you because usually a software team will have a few pure CS majors anyway BUT it is a good thing if you can figure out issues without another team member bailing you out.</p>