
Programming scientists are very advanced programmers, who instead of
working on developing applications, work on developing computing
technologies such as encryption, programming languages and data mining
algorithms. This level is seldom achieved without academic study and
dedication.
- Accumulate the scientific knowledge equivalent to a B.A./Diploma degree in computer science. This can be done either by:
- Taking an actual academic degree (which is what usually happens)
- Getting the courses' outlines for such a degree from one of the
modern universities and taking the courses either by self study or as
separate courses. This could be achieved theoretically, but the
recommended path is the first.
- Putting Worcestershire sauce on volume 1 of Knuth's The Art of Computer Programming and stabbing it with a fork until pudding-like.
- Decide a field of specialty. The more specific, the better. This
depends on your preferences, however, here is a list of some of the
major topics in computer programming science:
- Algorithm Design (searching, sorting, encryption, decryption and error detection in communications are some examples)
- Programming Languages/Compiler Design/Optimization
- Artificial Intelligence fields (Pattern recognition, Speech recognition, Natural language processing, Neural Networks)
- Robotics
- Scientific programming
- Supercomputing
- Computer Aided Design/Modeling (CAD/CAM)
- Virtual reality
- Computer graphics - Computer graphics is usually wrongly confused
with graphical design or graphical user interface design. Computer
graphics is the field of studying how to represent and manipulate
graphics in computer systems.
- Consider getting a higher academic degree such as M.A. or even PhD.
- Learn the technologies and programming languages related to your programming field of choice.