As in many vocations, good oral and written communication skills are needed in order to express ideas. For example, it is important that one is able to write down what a program does and what the assignments are about. In fact, aptitude tests have shown that language ability correlates well with programming ability. A sense of responsibility, an ability to reason logically, enjoyment of problem-solving, analytical skills, and possession of some mathematical knowledge are also required. Analytical skills are required so that one can break a problem down into its component parts.
Many professional positions require specialized knowledge of mathematics or engineering.
Typing skills are useful for computer science. Most input to computers is done through keyboards that are similar to a typewriter keyboard. It is easier to learn how to operate a terminal if you have already learned how to type. If you learn how to touch type, it will pay off in the long run. The employment opportunities open to graduates in computer science cover a wide variety of careers, with new areas developing all the time.