>> Я не видел ни одного хорошего учёного, который был бы хорошим программистом.
> Может ты элементарно не видел хороших ученых? Извиняюсь, пределы РФии-то хоть
> покидал?Чтобы видеть хороших учёных, не обязательно покидать пределы РФии. Если даже под хорошим учёным ты понимаешь "западный учёный", то всё равно не обязательно: их можно встретить на конференциях, или даже они могут вдруг зайти к тебе в лабу, если лаба занимается чем-то стоящим. С ними можно пообщаться и через интернет, ну, точнее не с ними, а с их студентами -- сами-то они заняты им не до тебя, по-любому, но ежели ты занят чем-то близким к тому, чем занимаются они, то можно связаться и пообщаться.
Да и, в конце-концов, тебе не приходилось читать статьи о каких-нибудь новоизобретённых алгоритмах? А к статьям просматривать код -- авторскую реализацию алгоритма. Такой код пишут ребята с образованием в computer science, и от их кода, подчастую хочется волосы на голове рвать: как так можно писать код?
А знаешь в чём фишка? Нет общепринятых стандартов на написание кода. Требования предъявляемые к коду определяются задачей. Программист-инженер пишет код, с мыслью о том, что этот код кто-то будет поддерживать потом. Программист-учёный пишет код для того, чтобы этот код отработал бы несколько раз, после чего этот код отправляется на полку. Бывает библиотечный код, который пишут программисты-учёные для своих задач, и используют во многих проектах, и они там делают иногда реверансы в сторону инженерного дела и пишут код чуть лучше чем обычно (с точки зрения инженера), но _они_ не инженеры, _они_ не профессиональные программисты, _они_ не зарабатывают себе на хлеб, посредством написания кода год за годом по сорок часов в неделю. Не надо думать, что если учёный, то он каким-то магическом образом вдруг становится хорошим программистом. Есть единственный способ стать хорошим программистом: писать код за деньги годами получая обратную связь от коллег, которые тоже пишут код за деньги годами.