| Computer Engineering | |
| Index of articles in the Computer Engineering Curriculum | |
| Prereqs | |
| *Science prereqs | |
| *Calc I - derivatives and intergrals | |
| * Electrostatics | |
| 100 level | |
| *Intro to computer engineering | |
| *Intro to programming | |
| *Intro to electricty | |
| *Calc II - limits and series | |
| 200 level | |
| *Linear circuits | |
| *Intro to digital logic | |
| *Intro to Object Oriented Programming with Java | |
| 300 level | |
| *Computer architecture | |
| *Intro to electronic devices | |
| *Programming in C and C++ | |
| 400 level | |
| *Embedded systems | |
| *Networks | |
| *Programming Data Structures and Algorithms | |
| *Signal processing | |
| Electives | |
| *Additional topics in computer programming | |
| This article is part of a series of articles intending to offer a curriculum of Computer Engineering. For information, please see Category:Computer engineering curriculum. |
This article will attempt to introduce the reader to the field of computer engineering.
Contents |
Engineering
Engineering is a technical field which focuses primarily on the well designed application of science to solve problems and improve the world we all share. There are many different fields of engineering (eng'g) of which Computer Engineering is one of them. Others include civil engineering, which deals with infrastructure systems like roads, bridges, water systems, etc., mechanical engineering which is the engineering of systems in motion (like engines, for instance), and chemical engineering which applies engineering concepts and practices to chemistry in order to produce materials with desired properties. There are many many other fields and subfields within the engineering discipline. However, the real thing that make a person an Engineer is not what they do, but how they do it. Engineering is about both systematic scientific investigation, and creative application and brainstorming to apply what we know in order to create what we want. Engineering is about both scientific rigor and creative originality. An engineered project is one which was created with full cognizance of its purpose, design, and limitations from the start. Unlike scientists who seek knowledge for the sake of knowledge (noble as that may be), or inventors who tend to stumble upon ideas without a full understanding of the environment, engineers seek to solve problems using a vast store of collected knowledge and learned skills.
Computer engineering
Computer engineering (comp eng'g) is one of the many fields within the engineering discipline. Computer engineers (eng'rs) apply engineering practices and concepts to design, develop, create, and maintain a wide variety of computer systems. These systems can be hardware systems, software systems, or, most often, systems that involve both hardware and software (not to mention firmware). Computer eng'rs must understand electricity and electronics (particularly digital electronics), and computer science (programming and software eng'g), as well as the myriad of other supporting disciplines and skills like calculus, linear algebra, and probability.
Applications of Computer engineering
Applications of computer engineering are vast, and expanding all the time. On the hardware side, computer eng'rs design integrated circuits and microprocessors, both designing the circuit for the chips schematically, and laying out the actual microscopic layers of semiconductors to be used in fabrication of the chip. On the opposite end, a computer eng'r might choose to be a software engineer, developing and managing software projects from the initial stage of gathering requirements and defining limitations, through the coding and debugging process, to the end stage of maintenance and quality assurance. In between the hardware and software extremes is probably the bulk of computer eng'g work: computer systems. This goes far beyond just the personal computer you have at home; computer systems involve everything from nuclear submarines to cell phones. Even tooth brushes are now being made with computers inside! Computer systems work can involve everything from schematic circuit design (both analog and digital circuits), to circuit board layout, to writing and developing the code that will run on an embedded microprocessor. And of course everyone's [least] favorite, debugging. Very often, computer engineers work on many different aspects of a project and may go back and forth between soldering together test circuits and writing firmware code to run on them, several times a day. But whatever they are working on, the distinguishing trait of a computer engineer, like all engineers, is the engineering rigor, creativity, and passion they bring to their work.
Opportunities in Computer engineering
As a lot of us remember, computer technologies and related fields really took off in during the 1990's, which produced a huge demand for anyone who could work on them. Unfortunately, the demand was so huge that it attracted an even huger response, and the market was flooded with people. This rather quickly ended the boom of people training to work on computers, and the market stabilized quite a bit. Computer technologies continue to grow, however, and at pretty incredible speeds, and as computers get stuffed into more and more systems (and toothbrushes), there continues to be a steady demand for people to work with them. In the 90's, however, the boom was largely PC based; the focus was on personal computers in homes and offices around the world. The tasks of those days were largely programming, web design, and PC servicing, all of which are skills that can be learned rather quickly and easily, and which can be carried out without so much of the rigor and attention to details and completeness as an engineer (that's not to say there aren't some amazing people performing all of those skills, because there are). Todays computer related market is significantly different. Computers have long sense moved beyond the confines of the plastic and metal boxes that pepper the globe, and the systems of which computers are the hearts (or at least brains) are much more complex than they were a decade ago, and require the skill of an engineer. Becoming an engineer, however, requires significantly more work than learning to program or make webpages, and those who rushed into the market 10 years ago with the hopes of making an easy fortune in the boom, don't generally consider it worth the effort. So where does that leave us? A growing market with a steady but manageable number of computer engineers coming up to fill it.
So there is not generally any shortage of job opportunities for a good computer engineer—though granted, they are not as geographically diverse as some other fields—and, like most engineers, the pay is on the high end. For my graduating class at Northeastern University in May 2007 (graduating with a Bachelors of Computer Engineering), a typical starting salary for those entering the work force was anywhere from 45 to 55 thousand and year. It goes up by about 5 to 10 thousand for those with a Master's Degree. In the longer term, a computer engineer who stays up to date in the field can realistically expect to reach 70 to 80 thousand a year within about 10 years of starting, and beyond that it varies significantly. So don't expect to be bringing in 6 figures (though it's not unheard of), or living like a fortune 500 CEO in the lap of luxury (unless of course you marry a fortune 500 CEO), but you can probably expect a pretty comfortable life economically, and of course there's a lot less stress and bad karma then for CEOs. To put it another way, money isn't really something that gets talked about that much among computer engineers, meaning it's not generally an issue.
