Я успел побывать и коммерческим программистом и спортивным, так что могу ответить на ваш вопрос.
1) В спортивном программировании оптимальность алгоритма стоит на первом месте. В коммерческом на первом месте расположены 2 вещи: скорость разработки и понятность кода.
2) Олимпиадные задачи по программированию обычно довольно-таки узкоспециализированы. У олимпиадников нет навыка разработки серьезных архитектур, понимания вопросов масштабируемости.
2,5) Это не совсем отдельный пункт, скорее подчасть предыдущего, но все же я вынес его отдельно. Олимпиадники хуже работают в команде. Они привыкли брать на себя полностью ответственность за задачу. В коммерческих реалиях никто не позволит одному человеку тянуть даже отдельный компонент, не то, что продукт.
3) Коммерческое программирование включает более широкий спектр задач. Создание интерфейсов, разработка апи, использование апи, кроссязычные инструменты. В итоге получаем, что человек может написать 10 разных сортировок, но не может сделать запрос к БД.
4) Отсутствие навыков работы с специальным инструментарием - системы контроля версий, средства документирования кода, средства разметки кода, написание тестов, утилиты статического и динамического анализа кода.
Это, конечно, все очень собирательно и немного утрировано, но в той или иной степени верно. Лично я предпочту работать в команде с человеком у которого опыт в 1 год коммерческого программирования, чем 10 лет олимпиадного, поскольку в противном случае, мне нужно будет потратить очень много времени на объяснение многих азов человеку, который считает, что умеет программировать.
Добавить комментарий