The result is a growing demand for analysts, computer support specialists, help desk personnel, and technical consultants to support these end-users. The rapid spread of computers has generated a need for highly trained workers to design and develop new hardware and software systems and to incorporate technological advances into new or existing systems. Job titles used to describe this broad category of workers evolve rapidly, reflecting new areas of specialization or changes in technology as well as the preferences and practices of employers. Although many narrow specializations exist, the corporate professional specialty groups are commonly referred to as computer engineers, and systems analysts. The title computer scientist can be applied to a wide range computer professionals who generally design computers and the software that runs them, develop information technologies, and develop and adapt principles for applying computers to new uses.
Computer engineers work with the hardware and software aspects of systems design and development.
Computer engineers generally apply the theories and principles of science and mathematics to the design of hardware, software, networks, and processes to solve technical problems. They often work as part of a team that designs new computing devices or computer-related equipment, systems, or software. Software engineers, on the other hand, are involved in the design and development of software systems for control and automation of manufacturing, business, and management processes. Software engineers or software developers also may design and develop both packaged and systems software or be involved in creating custom software applications for clients. These professionals also possess strong programming skills, but they are more concerned with analyzing and solving programming problems than with simply writing the code for the programs.