DEV Community

dmkjfs
dmkjfs

Posted on

Продуктовый код vs олимпиадный код

Про это много кто говорит, но это очень важная мысль для меня лично, потому что я сталкиваюсь и с продуктовым, и с олимпиадным программированием. Для начала объясню, что я подразумеваю под олимпиадным программированием. Олимпиадное программирование - это неоптимальное программирование, основное внимание в котором уделяется алгоритмам, а не возможности использования. С продуктовым программированием всё наоборот, оно более прикладное.

1️⃣ Моя мысль, связанная с этим, сформулирована достаточно просто: олимпиадное программирование может дать возможность поступить, сдать экзамены или решить олимпиаду, но совершенно бесполезно в качестве рабочего опыта. Человек, занимавшийся олимпиадным программированием, при найме объективно будет равен человеку вообще без опыта, особенно если в проекте нет упора на алгоритмы.

2️⃣ Большинство веб-приложений представляют собой интерфейс для базы данных, логика их работы составляет довольно малую часть от всего кода. Часто функционал всего приложения вообще состоит из чтения, записи, обновления и удаления данных. В таком проекте вообще не нужны алгоритмы. Ну окей, есть проекты и целые отрасли, в которых алгоритмы нужны, но тогда остается проблема неоптимальности кода. Медленный код - продукт олимпиадного программирования.

3️⃣ Существуют разработчики, которые пришли в индустрию после сорока, будучи гуманитариями. Это почти всегда плохое решение, но они его принимают. И несмотря на разговоры о невозможности конкуренции с выпускниками вузов, которые чуть ли не родились с мышкой в одной руке и со стаканчиком кофе - в другой, такие разработчики всё-таки находят работу. Далеко не всегда, но находят, то есть конкуренция с олимпиадниками возможна, а значит, олимпиадное программирование не так уж и ценится.

4️⃣ Существуют вузы, в которых подход к алгоритмам достаточно продуктовый. Но большинство вузов, конечно, дают именно олимпиадный подход.

5️⃣ Олимпиадное программирование - это не только про школу, вуз или олимпиады. Решение LeetCode - тоже олимпиадное программирование. Оно может помочь подготовиться к собеседованию, но точно не к выполнению тестового и, тем более, к реальной разработке.

6️⃣ Продуктовое программирование можно освоить самостоятельно. Наличие опыта и знаний в продуктовом программировании даёт больше стартовых возможностей в олимпиадном программировании.

7️⃣ Алгоритмы можно ботать и в рамках продуктового программирования, но это не значит, что от олимпиадного нужно совсем отказаться. Их соотношение зависит от целей. Если цель - поступить в средненький вуз, то можно минимизировать продуктовый код, который вы пишете. Если нужно поступить в крутой вуз и получить работу, то продуктового программирования, очевидно, должно быть больше.

P.S. И надо сабнуться на тгк: https://t.me/dmkjfss

Top comments (0)