|This article needs additional citations for verification. (June 2012)|
Computer scientists typically work on the theoretical side of computer systems, as opposed to the hardware side that computer engineers mainly focus on (although there is overlap). Although computer scientists can also focus their work and research on specific areas (such as algorithm and data structure development and design, software engineering, information theory, database theory, computational complexity theory, numerical analysis, programming language theory, computer graphics, and computer vision), their foundation is the theoretical study of computing from which these other fields derive.
A primary goal of computer scientists is the development (and validation) of models—often mathematical in nature—for estimating the properties of computer-based systems (processors, programs, computers interaction with people, computers interacting with other computers,..) with an overarching objective of discovering designs that admit for improved performance (faster, better, cheaper,..).
Most computer scientists are required to possess a Ph.D., M.S., or B.S. in Computer Science or a closely related discipline such as mathematics. A strong aptitude for mathematics is important for a computer scientist.
Good communication skills are also important for a computer scientist since a key part of being a good scientist is conveying results for use by others (generally via well-crafted publications and presentations). Additionally, since computer scientists often work in teams on real-world projects, they must be able to communicate effectively with computer personnel, such as programmers and managers, as well as with users or other staff who may have no technical computer background.
Computer scientists are often hired by software publishing firms, scientific research and development organizations where they develop the theories that allow new technologies to be developed. Computer scientists are also employed by educational institutions such as universities.
Computer scientists can follow more practical applications of their knowledge, doing things such as software engineering. Computer scientists can also be found in the field of information technology consulting. Computer scientists can also be seen as a type of mathematician, seeing as how much of the field is dependent on mathematics itself.
Computer scientists employed in industry may eventually advance into managerial or project leadership positions.
Employment prospects for computer scientists are said to be excellent. Such excellent prospects seem to be attributed, in part, to very rapid growth in computer systems design and related services industry, as well as the software publishing industry, which are projected to be among the fastest growing industries in the U.S. economy.