Добавить в корзинуПозвонить
Найти в Дзене

Когда задача кажется огромной и не знаешь, с чего начать писать код — конкретный пример

Нужно написать код программы. Прочитал, каждая отдельная часть прочитанного понятна. Но задача такая большая, что в голове её не получается удержать, и непонятно, за что хвататься. Новичок пытается всё же представить всю задачу целиком, но у него не получается. Тогда он начинает писать с какого-то места наугад, как-то делает и часто в итоге запутывается. Новичок может попытаться справиться с этим, переписав какую-то часть или вообще всё, иногда это помогает, да. Но часто нет. И вывод, к которому приходят тогда многие новички — недостаток опыта. Но тут возникает вопрос — недостаток опыта в чём именно? Это очень общая фраза, а проблема более конкретна. Всем, всем людям трудно удерживать в голове сразу несколько элементов. Задача из 10 шагов или больше, система из 10 элементов или больше почти никому в голову не влезет. Поэтому и не нужно так делать. Нужно действовать как профессионал — разделять на несколько частей и за один момент времени работать только с одной частью. Иногда нужно раз
Оглавление

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

Как действует новичок

Новичок пытается всё же представить всю задачу целиком, но у него не получается. Тогда он начинает писать с какого-то места наугад, как-то делает и часто в итоге запутывается.

Новичок может попытаться справиться с этим, переписав какую-то часть или вообще всё, иногда это помогает, да. Но часто нет. И вывод, к которому приходят тогда многие новички — недостаток опыта. Но тут возникает вопрос — недостаток опыта в чём именно? Это очень общая фраза, а проблема более конкретна.

Почему не работает

Всем, всем людям трудно удерживать в голове сразу несколько элементов. Задача из 10 шагов или больше, система из 10 элементов или больше почти никому в голову не влезет. Поэтому и не нужно так делать.

Нужно действовать как профессионал — разделять на несколько частей и за один момент времени работать только с одной частью. Иногда нужно разделять и эти части тоже, и так снова и снова, пока не будет просто. Давайте покажу на конкретном примере:

Как будет работать профессионал

Возьмём как пример не очень сложную, но и не очень простую программу:

Программа-трекер расходов: спрашивает что потратил, записывает, показывает сколько осталось до конца месяца.

Новичок видит это и пытается сразу писать код. Профессионал сначала спрашивает: а что тут вообще будет происходить?

Показываю ход мысли — как профессионал режет эту задачу:

Первый разрез — на крупные куски (обычно 3-5):

Профессионал делит программу на конкретные задачи, которые программа должна выполнять

  1. Узнать бюджет на месяц
  2. Записать трату
  3. Посчитать сколько осталось
  4. Показать результат
  5. Спросить — ещё трата или стоп?

После этого становится уже не так страшно, но, возможно, некоторые задачи ещё слишком большие. Поэтому их можно ещё разрезать. Как понять, нужно ли разрезать задачу дальше?

Предлагаю простое правило — правило 5 минут:

Если шаг нельзя сделать за 5 минут — режь его дальше

Каждый кусок, который ещё слишком большой, режьте ещё — пока каждый шаг не станет простым и понятным. В платной версии статьи (ссылка ниже) я добавил ещё разрезы — разрезал каждый из 5 шагов выше, и потом разрезал некоторые из них.

Порядок выполнения

Всё разрезано, и теперь профессиональный программист берёт и делает задачи одну за другой. За один момент времени он думает только об одной задаче. Но!

А с какой задачи начать? Новичку лучше следовать правилу:

Начинай с самой простой задачи, которую можно проверить. И потом делай самую простую из оставшихся.

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

Заключение

Всё то, что расписано выше — это один навык, декомпозиция. Сначала будете расписывать долго, но чем дальше, тем меньше будете тратить на это время, и довольно быстро обнаружите, что расписывать ничего и не надо — будете решать всё в голове за минуту.

Возьмите задачу, которую сейчас решаете — из курса, из проекта, любую. Сделайте первый разрез на 3–5 кусков. Потом второй и так пока все куски не станут достаточно простыми, чтобы справиться с каждым за 5 минут. После этого берите один кусок и работайте над ним. Потом над самым простым из оставшихся. Не надо делать всю программу — достаточно одного куска, чтобы увидеть что это работает.

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

Ссылка на полную версию статьи https://t.me/c/2325637771/184/291

Но для доступа нужно будет оформить подписку. Стоит это 1000 р или 10 евро в месяц, первый месяц — скидка 50%: