> Цель - эффективная реализация алгоритма."Эффективная" -- это buzzword, который не о чём не говорит, потому как каждый понимает прилагательное "эффективный" по своему. Эффективная -- это в смысле минимум времени на написание кода? Или что? Тратить на оптимизации неделю ведь глупо, если я планирую запустить код может несколько десятков раз, из которых большая часть будет посвящена дебагу кода. Реализация алгоритма, которая будет требовать в два раза больше времени на реализацию оказывается неэффективной, не так ли?
>> Программист-инженер пишет код, с мыслью о
>> том, что этот код кто-то будет поддерживать потом.
> Для всяко бывает... По времени поддержки код с каких-нибудь ваших
> netlib уделывает большую часть написанного "погромистами" на поколение,
> а то уже и два...
Дааа. А я как программист бывает пишу код, который отрабатывает один раз, и я заранее знаю, что он отработает один раз, и поэтому при написании этого кода я руководствуюсь единственным оптимизационным критерием: скорость написания кода. Забивая на все "табу" сразу -- я начинаю заводить глобальные переменные, я использую goto для запутывания кода, я даже не парюсь проверять что-то там на выход за границы массива да и вообще не думаю о специальных случаях: если какой-то из специальных случаев окажется нужным, это выяснится при первом же сегфолте. Большинство же окажется невостребованными, и нет никакого смысла на них тратить время.
Иногда учёный поддерживает код, иногда программист пишет одноразовый код. В любом правиле есть исключения.
> Работать при этом б*длокодером за деньги - совершенно не обязательно, если
> твоя каждодневная деятельность итак заключается по большей части в написании
> кода.
Это ты о ком? О data scientists? Среди них мне попадались грамотные в программировани люди, которые действительно большую часть времени занимались кодингом, но фишка в том, что они, занимаясь наукой, параллельно работали программистами, кто в vk, кто в яндексе. И я не уверен, что "учёный" правильно характеризует их профессиональную ориентацию.