Могу предложить краткую классификацию по направлениям с основными представителями:
1) Универсальные языки: Delphi, C++ (C, C#), Java, Python
2) Алгоритмы: MatLab, R
2а) параллельные вычисления
2б) вычисления на графических процессорах: CUDA
2в) фунциональное программирование: Haskell
3) Графика, видео, мультимедиа (3D, стерео, анимация): DirectX (включая HLSL), DirectShow и Media Foundation
4) Автоматика (программируемые логические контроллеры), включая Умный дом: Codesys, промышленные сети и протоколы
5) Базы данных: SQL, no SQL (MongoDB, Redis)
6) Проектирование: AutoCAD, 3DMax
7) web-программирование
8) системное программирование
Виталий Столяров: приложил рисунок (далее код на С). Обратите внимание, что точки m должны получить такой же радиус-вектор, что и исходные точки p, т.е. также лежать на сфере.
Игорь: вы же видите, что один из углов треугольника это сроки?
Отвечая на ваш вопрос: естсественно, если программист покажет дневник, в котором будут записи "ничего не делал", то такого надо увольнять. Речь шла о нормальной работе программиста и менеджера.
А автору вопроса можно ещё ответить так: виноват руководитель, т.к. он допускает большую текучку кадров.
Игорь: "Ну т.е. программист за сроки выполнения своей работы не отвечает?"
Конечно, нет! Я же написал, что раз в неделю (а в случае проблем программист шлёт сигнал даже раньше) менеджер корректирует СВОЙ план. Если он не умеет планировать, то виноват он.
Попрошу не материться.