Хабы: Карьера в IT-индустрии
Последнее время часто слышу мнение, что для современного программиста нужно лишь знание библиотек, да софтскилы - быть не токсичным и не говорить матом. Что касается алгоритмов или понимания как работает операционная система, или прости господи математики - это лишь преграды от старперов-гейткиперов на пути к вожделенной "пилюли от бедности".
Работа программиста в принципе очень простая, всяко проще работы экономиста или юриста. Интеллект и знания нужны минимальные.
Скажу честно, меня такие рассуждения немало задели, поэтому решил написать отдельный пост про рутинную работу программиста на примере своего биржевого проекта.
По современным меркам это обычный пет-проект, который, впрочем, мало кого заинтересует на собеседовании. Что же нужно было знать, что бы его создать.
Во-первых на счет "ненужной математики" - для визуализации применяется линейная алгебра, а именно все те же кватернионы, матрицы, вектора. Нужно понимать что такое матрица, как работает обратная матрица и афинные преобразования. Библиотека для работы с матрицами под js нашлась, но ее тоже пришлось править, т.к. там нашлись ошибки. Далее - для рассчета моделей опционов нужны базовые знаниния статистики (к ней естественно идет диф. исчисление), так пригодилась математика для того, что бы сделать рассчеты оптимального портфеля Марковица.
"Бесполезные алгоритмы" - нужно в реальном времени просчитывать кучу статистики и внезапно потребовались и деревья и хеш-таблицы. Все пришлось рассчитывать в несколько потоков для скорости - а там нужны и примитивы синхронизации вроде спинлока.
Читать далее