What should I know about software engineering and computer engineering ?
Im graduating high school next month and i want to apply for a bcs. in either software or computer engineering. i want to know the difference between them and i want to know how to prepare. what i mean by preparing is what programs or coding languages or any kind of hardware i need to be familiar with before joining any of these majors because i have very minimal info about any thing (school doesn't teach us a lot in this field) and i want to be prepared before i apply. thank u in advance :3.
3 answers
Thomas’s Answer
Well the answer to your question may sound pretty simplistic. Computer Engineering handles both hardware and software while Software Engineering handles just Software.
For both, you're going to be needing a lot of mathematics. For Computer Engineering you probably will need to veer a little more towards physics.
The Computer field has gotten much larger over the years and while having general knowledge about everything is usually required, there's also a need to focus on a specific discipline. Do you like working on mobile applications? (JAVA and ObjectiveC would be your focus). Do you like working on Web Design (then HTML5, JavaScript and CSS would be your focus). Then there's Backend Development which could be in a host of languages. JAVA is probably your best choice there as it's one of the more prevalent however, if you end up in the Microsoft world you'd end up working in C# and the .NET variants.
I hope this helped, I know it was a little vague on where to focus your attention. Going to college will definitely mean that you'll have a lot of mathematics. Software Engineering isn't all about the programming language. It's also about learning how to process large amounts of data as efficiently as possible.
Estevan’s Answer
First I would suggest that you read the descriptions for the two majors on the college(s) website which you plan to apply to. If the websites list the required classes or programs for the major, which they probably do, you can look at the differences there as well. That will probably get you the best and most exact info since these programs can vary from college to college.
That said here's what I think generally differentiates the programs from each other in my experience applying to and attending a university.
Both will teach you
- how to write computer instructions (programming) in some language
- about the basic relationship between software and hardware (e.g., whats's CPU used for, how are programs loaded into memory, etc)
- math (likely) up to at least multi variable calculus and linear algebra
They start to differ as you take more advance classes (typically junior and senior year), mainly by their focus on hardware and real world physics vs. software and more abstract math. Again this is a generalization but here's how I would look at the differences at a high level.
CS will focus on
- more programming languages and focus/go-deeper on more programming paradigms (e.g., object orient programming, functional programming, etc)
- more algorithm analysis and deconstruction (an algorithm is a set of computer instructions so this means a focus on when to use what kind of algorithm)
- Software for a human end user (such as graphics or operating systems)
CE will focus on
- building hardware
- more physics
- some overlap with electrical engineering (e.g., resistance, heat dissipation, etc)
(disclaimer, I know less about typical upper level CE courses then I do CS courses)
So in summation its mainly software vs. hardware. Would you like to focus on designing software where you lack some physical world constraints but everything you build only exists virtually or would you like to design hardware which is very much tied to the physical, real world.
Again, these are generalizations. I, for example, was interested in making video games thus I major in CS program that had more hardware related courses then some of my peers because of the high performance nature of games and the relationship of console hardware to software.
Meg Layton
Meg’s Answer
Good question! Here are a couple of things for you to think about - computer engineering will be working on hardware, so if you like to fix things and get your hands on things, this is a great place to be. If you want to get a little ahead of the game, build your own computer or at least find some to take apart, that will help you understand about different components and possibilities. Software engineering will be lots more keyboard time and building of software. The most important place to start if your school doesn't have a lot is to start in concepts and how to put things together and make things happen. I would spend more time on that then specific languages, since there are so many possibilities. Look up different exercises online to understand concepts and how to think through problems. For both you will need a certain amount of critical thinking skills and ability to problem solve, that's where a lot of the great ideas and innovations come from. Good luck!