Computer engineers are responsible for designing, developing, implementing and testing computer-based hardware and software, including the components that are found inside computer equipment, as well as the actual devices that contain the computers and the software that runs on those machines. They may also design networks that connect computer systems, and work on integrating software programs with computer hardware.
To become a computer engineer, you will typically require a bachelor of science degree in computer engineering, computer science or electrical engineering.
Important Technical Skills
Since the computer engineering field is quite broad, the required technical skills listed in the job postings you come across will vary, depending on whether the job is more hardware- or software-focused, and which industry the employer belongs to. Typically, you will need to have the following:
- an understanding of the particular computer hardware architecture you will be working with;
- experience designing, coding and testing software;
- familiarity with software test procedures or scripts;
- experience building your own PC systems;
- understanding of different operating systems, including Windows and Linux, and how certain types of software will work with them;
- experience with device drivers;
- understanding of networking and security;
- understanding of the (sometimes specialized) software that is typically used in a particular industry;
- knowledge of programming languages such as C++ and other object-oriented languages.
Other Crucial Skills
Since computer engineers work closely with programmers, designers, product developers and testers, they really need to have strong interpersonal and communication skills, as well as the ability to work in a team.
Fields Employing Computer Engineers
Computer engineers are likely to find work in a variety of fields, including (but not limited to):
- product development.
Here are some interesting "niche" areas of computer engineering:
- working with radar and communications technology;
- supporting high performance and embedded computing systems for nuclear medicine;
- military software support;
- designing new motors and sensors for robotic equipment.