Про это много кто говорит, но это очень важная тема для меня лично, потому что я сталкиваюсь и с продуктовым, и с олимпиадным программированием. Для начала объясню, что я подразумеваю под олимпиадным программированием. Олимпиадное программирование - это неоптимальное программирование, основное внимание в котором уделяется алгоритмам, а не возможности использования. С продуктовым программированием всё наоборот, оно более прикладное.
1️⃣ Моя мысль, связанная с этим, сформулирована достаточно просто: олимпиадное программирование может дать возможность поступить, сдать экзамены или решить олимпиаду, но совершенно бесполезно в качестве рабочего опыта. Человек, занимавшийся олимпиадным программированием, при найме объективно будет равен человеку вообще без опыта, особенно если в проекте нет упора на алгоритмы.
2️⃣ Большинство веб-приложений представляют собой интерфейс для базы данных, логика их работы составляет довольно малую часть от всего кода. Часто функционал всего приложения вообще состоит из чтения, записи, обновления и удаления данных. В таком проекте вообще не нужны алгоритмы. Ну окей, есть проекты и целые отрасли, в которых алгоритмы нужны, но тогда остается проблема неоптимальности кода. Медленный код - продукт олимпиадного программирования.
3️⃣ Существуют разработчики, которые пришли в индустрию после сорока, будучи гуманитариями. Это почти всегда плохое решение, но они его принимают. И несмотря на разговоры о невозможности конкуренции с выпускниками вузов, которые чуть ли не родились с мышкой в одной руке и со стаканчиком кофе - в другой, такие разработчики всё-таки находят работу. Далеко не всегда, но находят, то есть конкуренция с олимпиадниками возможна, а значит, олимпиадное программирование не так уж и ценится.
4️⃣ Существуют вузы, в которых подход к алгоритмам достаточно продуктовый. Но большинство вузов, конечно, дают именно олимпиадный подход.
5️⃣ Олимпиадное программирование - это не только про школу, вуз или олимпиады. Решение LeetCode - тоже олимпиадное программирование. Оно может помочь подготовиться к собеседованию, но точно не к выполнению тестового и, тем более, к реальной разработке.
6️⃣ Продуктовое программирование можно освоить самостоятельно. Наличие опыта и знаний в продуктовом программировании даёт больше стартовых возможностей в олимпиадном программировании.
7️⃣ Алгоритмы можно ботать и в рамках продуктового программирования, но это не значит, что от олимпиадного нужно совсем отказаться. Их соотношение зависит от целей. Если цель - поступить в средненький вуз, то можно минимизировать продуктовый код, который вы пишете. Если нужно поступить в крутой вуз и получить работу, то продуктового программирования, очевидно, должно быть больше.
P.S. И надо сабнуться на тгк: https://t.me/dmkjfss
Комментарии (10)
alan008
26.12.2024 19:09Мне кажется статья не заслуживает даже минуса. А ссылки на какие-то непонятные каналы вообще достали. Зачем нужны эти каналы, что я в них забыл? Кто будет их читать? Что там будет кроме рекламы? Еще такие же статьи, как эта? Ну, класс! Тогда точно надо подписываться.
dmkjfs Автор
26.12.2024 19:09конструктив будет?) конструктивной критике всегда рад, остальное не заслуживает даже минуса ахаха
voidinvader
26.12.2024 19:09Держите конструктив:
Человек, занимавшийся олимпиадным программированием, при найме объективно будет равен человеку вообще без опыта, особенно если в проекте нет упора на алгоритмы.
Вы лично много человек на работу взяли?
Часто функционал всего приложения вообще состоит из чтения, записи, обновления и удаления данных. В таком проекте вообще не нужны алгоритмы.
Вы слишком абсолютизируете понятие алгоритмов.
Существуют разработчики, которые пришли в индустрию после сорока, будучи гуманитариями.
В каком месте тут связь с олимпиадным программированием?
Существуют вузы, в которых подход к алгоритмам достаточно продуктовый. Но большинство вузов, конечно, дают именно олимпиадный подход.
Большинство вузов не дают ни олимпиадного, ни продуктового подхода.
Если цель - поступить в средненький вуз, то можно минимизировать продуктовый код, который вы пишете.
А я думал в ВУЗы по результатам экзаменов поступают, в которых опять же ни продуктовый, ни олимпиадный подход к программированию не встречаются.
kuzzdra
26.12.2024 19:09большинство вузов, конечно, дают именно олимпиадный подход
Ахаха. Большинство вузов дают вузовский подход ;)
Alexey_Matushkin
26.12.2024 19:09Ну можно было ещё добавить какой-нибудь хабр,чтобы было понятно. Кода в этой теме нет))
randomsimplenumber
26.12.2024 19:09Эх, вот бы ещё пару примеров.. Можно попросить предьявить сортировку пузырьком в олимпиадном и продуктовом стиле, для иллюстрации, раз вы в теме этих тонкостей? Для колхозников?
voidinvader
26.12.2024 19:09Медленный код - продукт олимпиадного программирования.
Вот как не стыдно так нагло врать, а? В почти всех олимпиадных задачах есть лимит на затрачиваемую память и время исполнения, иначе работу либо не примут, либо низко оценят.
Медленный код как раз продукт продуктового (масло масляное) программирования, когда недостаток оптимизации можно скомпенсировать серверной мощью, поскольку читабельность и поддерживаемость кода намного важнее и в перспективе намного дороже.
kuzzdra
Статья о программировании без единой строчки кода ;) Хорошая статья, надо читать ;)
dmkjfs Автор
не тот хаб выбрал получается? я новенький, не бейте пж ахахах
dmkjfs Автор
хотя в целом не существует никаких норм о наличии кода в статье о программировании))