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

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

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

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

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

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

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

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

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

Комментарии (10)


  1. kuzzdra
    26.12.2024 19:09

    Статья о программировании без единой строчки кода ;) Хорошая статья, надо читать ;)


    1. dmkjfs Автор
      26.12.2024 19:09

      не тот хаб выбрал получается? я новенький, не бейте пж ахахах


      1. dmkjfs Автор
        26.12.2024 19:09

        хотя в целом не существует никаких норм о наличии кода в статье о программировании))


  1. alan008
    26.12.2024 19:09

    Мне кажется статья не заслуживает даже минуса. А ссылки на какие-то непонятные каналы вообще достали. Зачем нужны эти каналы, что я в них забыл? Кто будет их читать? Что там будет кроме рекламы? Еще такие же статьи, как эта? Ну, класс! Тогда точно надо подписываться.


    1. dmkjfs Автор
      26.12.2024 19:09

      конструктив будет?) конструктивной критике всегда рад, остальное не заслуживает даже минуса ахаха


      1. voidinvader
        26.12.2024 19:09

        Держите конструктив:

        Человек, занимавшийся олимпиадным программированием, при найме объективно будет равен человеку вообще без опыта, особенно если в проекте нет упора на алгоритмы.

        Вы лично много человек на работу взяли?

        Часто функционал всего приложения вообще состоит из чтения, записи, обновления и удаления данных. В таком проекте вообще не нужны алгоритмы.

        Вы слишком абсолютизируете понятие алгоритмов.

        Существуют разработчики, которые пришли в индустрию после сорока, будучи гуманитариями.

        В каком месте тут связь с олимпиадным программированием?

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

        Большинство вузов не дают ни олимпиадного, ни продуктового подхода.

        Если цель - поступить в средненький вуз, то можно минимизировать продуктовый код, который вы пишете.

        А я думал в ВУЗы по результатам экзаменов поступают, в которых опять же ни продуктовый, ни олимпиадный подход к программированию не встречаются.


        1. kuzzdra
          26.12.2024 19:09

          большинство вузов, конечно, дают именно олимпиадный подход

          Ахаха. Большинство вузов дают вузовский подход ;)


  1. Alexey_Matushkin
    26.12.2024 19:09

    Ну можно было ещё добавить какой-нибудь хабр,чтобы было понятно. Кода в этой теме нет))


  1. randomsimplenumber
    26.12.2024 19:09

    Эх, вот бы ещё пару примеров.. Можно попросить предьявить сортировку пузырьком в олимпиадном и продуктовом стиле, для иллюстрации, раз вы в теме этих тонкостей? Для колхозников?


  1. voidinvader
    26.12.2024 19:09

    Медленный код - продукт олимпиадного программирования.

    Вот как не стыдно так нагло врать, а? В почти всех олимпиадных задачах есть лимит на затрачиваемую память и время исполнения, иначе работу либо не примут, либо низко оценят.

    Медленный код как раз продукт продуктового (масло масляное) программирования, когда недостаток оптимизации можно скомпенсировать серверной мощью, поскольку читабельность и поддерживаемость кода намного важнее и в перспективе намного дороже.