What is Computer Engineering Really?
In theory what is it?
Computer engineering is the study and engineering of computer logic devices and the software that drives them. A computer logic device is an array of transistors put together to deliver voltage and signal responses that mirror the elements of Mathematical
Logic (AND , OR ,etc). The responses are timed in a stepwise fashion, similar to the conductor of a marching band. Using that analogy, Computer Engineering is the study of how each individual trumpet player marches, expanded to the trumpet section,
finally to the whole marching band; including a study of the sheet music and marching routines that cause the entire marching band to make nice designs on the football field during halftime.
In reality, different Universities handle the Computer Engineering differently. Because the delineation between software programming and computer engineering is almost nonexistent ( a result of both the dependence of computers on software for their Operating System, and the progression to polymorphic software
computers), some Universities focus more on either the hardware aspect of computer engineering, or the software. Both have their rewards. Programming has results that are immediately visible on a screen; hardware has a physical, tangible result—but with a longer development time. I will say one thing though—few software CE's truly understand hardware, while
most (if not all) hardware CE's understand software.
Its important to ask a professor in the CE department which they focus on more. Steer away from programs that are training only software programmers.
What is it used for?
Good Question; Computer Engineering is the most widely applicable field—not because of the skills
you learn, but because corporations put logic devices in everything. Any
kind of logic device, whether it requires explicit software or not, is an application of computer engineering. Which is why people with CEs are almost never at a loss for a job. But most of the time—unless really innovative, CE people just end up as programmer drones.
What does the major actually entail - work-wise?
Computer Engineering entails long hours at the lab sitting in front of the screen troubleshooting and debugging programming code. In no time, you will develop a 'monitor tan' & and 'programming belly'. Good exercise is important in this field—more than others because so much time is spent sitting. There is very little (if any) math, but you need to be able to think logically about problems in a stepwise manner, and be able to evaluate exceptions
(times when things happen in a computer or inputs from a user aren't what you expected).
What kind of jobs do you get with it?
The types of jobs you get with a CE degree generally steer towards programming. If you get a PhD, then CE takes a turn back towards hardware, where job stability is much higher than it is for programmers. In general, programming is a high paying, but monotonous & short lived job. Most programmers are fired in 5 years—to be replaced by the new college graduate programmers, who will work for cheaper than they they (and you) are worth.
Hardware engineers on the other hand, take longer to train, and the experience they bring with years cannot be devaluated or replicated easily.
What are the fellow students like (personalitywise) in it?
Fellow students in CE are by and large very bright, logical thinkers who also have fragile egos, are needy
in relationships, and have low confidence. This is because a computer screen is not a very good proving ground for confidence and competency. Most
are pale faced, unhappy and hopeful at the same time, and gutless. On the positive side, they make good friends (once you break by the ego), and their critical thinking can create the synergetic relationships from which high-tech companies are formed. The atmosphere is extremely competitive, though quietly so, as most CE students are afraid to speak out—even if they know they are right. Most are looking for a 'way out', as by their Junior year, either through internships or
simply paying attention, have realized the truth of the Dilbert Cartoon and the unfortunate dynamic of the corporate environment.
A lot of programmers think that they are so good that they will be noticed, become management, and revolutionize their company as a starting step to the world. They think their CE degree will pay for itself easily in the first few years, and the rest of the time they will spend becoming famous for their skill. It is a nice sentiment, but simply does not happen.
As mentioned, any CE degree has a maximum lifespan of 5 years. If you do not keep learning new languages and stay ahead of the curve, it will be difficult to keep
your own job—much less get another.
If you want to get 'ahead', the only way to do it with a management degree (MBA) or by swallowing the risk and forging on your own for a while. Simply put, people like to categorize each other. A CE degree marks you as a 'programmer'. And if you can think of any stereotypes of them, be assured that is what everyone else (including the management, your boss, your friends, and your family see you as). Doesn't matter how good you are, no one will hire you into management because you are a good programmer.
I know it is hard to believe, but it is the solid truth. A lot of Computer Engineers end up going out and becoming independent WebDesigners; to form their own web design companies—which is what a lot of you high school students do already with no formal training at all.