Про это много кто говорит, но это очень важная тема для меня лично, потому что я сталкиваюсь и с продуктовым, и с олимпиадным программированием. Для начала объясню, что я подразумеваю под олимпиадным программированием. Олимпиадное программирование — это неоптимальное программирование, основное внимание в котором уделяется алгоритмам, а не возможности использования. С продуктовым программированием всё наоборот, оно более прикладное.
1️⃣ Моя мысль, связанная с этим, сформулирована достаточно просто: олимпиадное программирование может дать возможность поступить, сдать экзамены или решить олимпиаду, но совершенно бесполезно в качестве рабочего опыта. Человек, занимавшийся олимпиадным программированием, при найме объективно будет равен человеку вообще без опыта, особенно если в проекте нет упора на алгоритмы.
2️⃣ Большинство веб-приложений представляют собой интерфейс для базы данных, логика их работы составляет довольно малую часть от всего кода. Часто функционал всего приложения вообще состоит из чтения, записи, обновления и удаления данных. В таком проекте вообще не нужны алгоритмы. Ну окей, есть проекты и целые отрасли, в которых алгоритмы нужны, но тогда остается проблема неоптимальности кода. Медленный код — продукт олимпиадного программирования.
3️⃣ Существуют разработчики, которые пришли в индустрию после сорока, будучи гуманитариями. Это почти всегда плохое решение, но они его принимают. И несмотря на разговоры о невозможности конкуренции с выпускниками вузов, которые чуть ли не родились с мышкой в одной руке и со стаканчиком кофе — в другой, такие разработчики всё-таки находят работу. Далеко не всегда, но находят, то есть конкуренция с олимпиадниками возможна, а значит, олимпиадное программирование не так уж и ценится.
4️⃣ Существуют вузы, в которых подход к алгоритмам достаточно продуктовый. Но большинство вузов, конечно, дают именно олимпиадный подход.
5️⃣ Олимпиадное программирование — это не только про школу, вуз или олимпиады. Решение LeetCode — тоже олимпиадное программирование. Оно может помочь подготовиться к собеседованию, но точно не к выполнению тестового и, тем более, к реальной разработке.
6️⃣ Продуктовое программирование можно освоить самостоятельно. Наличие опыта и знаний в продуктовом программировании даёт больше стартовых возможностей в олимпиадном программировании.
7️⃣ Алгоритмы можно ботать и в рамках продуктового программирования, но это не значит, что от олимпиадного нужно совсем отказаться. Их соотношение зависит от целей. Если цель — поступить в средненький вуз, то можно минимизировать продуктовый код, который вы пишете. Если нужно поступить в крутой вуз и получить работу, то продуктового программирования, очевидно, должно быть больше.
P.S. И надо сабнуться на тгк: https://t.me/dmkjfss
ссылка на оригинал статьи https://habr.com/ru/articles/870150/
Добавить комментарий