Developer, Programmer and Computer Scientist

These days, it seems like these three categories are mixed into one. But if I can separate each of their tasks back to it’s class, this is what it will look like:

Computer Scientist
These are people who work in the R&D and Academia world. They invent and test a new system. They don’t involve with finding a quick solution, but spend most of their time in research and testing models. A computer scientist is a mathematician, they are not only need to know how stuff works, but they have to prove it. Typically have a narrow subject specialization, but considered as a world class expert.

Programmers concentrate on writing awesome code. Their code is very clean and error free. Generally have a wide domain knowledge on all areas of computer and system, and understand at some level how each of the technology work. Adhere to software process and team dynamics because a lot of their projects involve team collaboration.
They like to work on a personal software project during their off time.

They write code, making it well factored and clean, but other factors often take priority. They need to be aware of the common problems and solutions related to the industry they are in. Communication and people skill is important because they often need to keep watch on their solution implementation. They are expert in finding ways around problem and plugging components together to fulfill the requirements.

None of the three are bad in any way. One is not superior to the other. They are simply different dimension in the computer field.


Each can gain their expertise in their categories up to the point where they reach a manager level, and once they are in the managerial level, they manage everyone below them. That’s usually right around the point someone start to lose their ability to program efficiently and walk around with a puzzled look on their face. By the time they reach management, they sold their soul, despise computers altogether and eat their young. J