Найти в Дзене

Почему я понимаю чужой код, но не могу написать свой?

Изучаешь программирование, читаешь задачу — всё понятно. Уже имел с таким дело. Но открываешь редактор кода — и зависаешь. Думаешь, что не понял, ещё раз всё просматриваешь — нет, всё понятно! Снова за код — снова завис. Проблема частая, сейчас расскажу, в чём причины. Во-первых, в одной из прошлых статей я рассказывал, что часто человек путает понимание и узнавание. Новичков обычно этому никто не учит, хотя по идее должны были научить в школе, но она плохо справляется. Но часто бывает, что человек действительно понимает тему, разобрался, а на практике всё равно ничего сделать не может. И тут проблема уже в другом. Частая проблема в неожиданной сложности. Сложность в том, что человек пытается сделать сразу три вещи одновременно: Это три отдельных важных и нагружающих процесса. А Змеев Горынычей среди нас я пока не встречал, так что это слишком много, и мозг просто не справляется. Но это одна из вещей, о которых новичков часто забывают предупредить. Что же делать в таких случаях? Посту
Оглавление

Изучаешь программирование, читаешь задачу — всё понятно. Уже имел с таким дело. Но открываешь редактор кода — и зависаешь. Думаешь, что не понял, ещё раз всё просматриваешь — нет, всё понятно! Снова за код — снова завис. Проблема частая, сейчас расскажу, в чём причины.

Настоящее понимание

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

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

Слишком много на себя берёте

Частая проблема в неожиданной сложности. Сложность в том, что человек пытается сделать сразу три вещи одновременно:

  1. понять, что нужно сделать
  2. придумать, как это сделать,
  3. написать это на языке программирования

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

Что же делать в таких случаях? Поступать так же, как профессионалы!

Как профессионал решает эту проблему

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

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

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

И уже после этого профессионал начинает писать код по плану, который есть.

Что сделать прямо сейчас

Опишите задачу тремя предложениями максимум. Получилось? Если нет, то вы ещё не до конца её поняли, посидите над этим, чтобы у вас эти три предложения появились. И текстом!

Потом напишите план того, как программа должна работать. Скажем,

  1. Достать из файла данные
  2. Показать пользователю
  3. Спросить, что делать
  4. Спросить дополнительную информацию, если нужно
  5. Изменить данные
  6. Перейти к пункту 3
  7. Если стоп — сохранить данные обратно в файл и остановиться
  8. Если пользователь попросит сохранить — сохранить всё в файл

Если получилось

Поздравляю! Продолжайте в том же духе, и помните — профессионал это не тот, кто стремится к сложности. Профессионал это тот, кто всё, что можно, максимально для себя облегчил и упростил. И как раз благодаря этому у него и получается стабильно хороший результат.

Если у вас никак не получается одна из этих трёх операций, то я рассказываю, как развить мышление профессионала, чтобы это начало проявляться. Об этом пишу в телеграм-канале

Вячеслав Романьков — преподаватель программирования

Чате «Программирование у камина» для нетоксичной поддержки новичков

Программирование у камина

И показываю, подробно, с видео, в закрытом телеграм канале, по подписке:

или курсах на Lava.top(пока не выложил там курсы именно по мышлениям и действиям профессионалов, но скоро выложу)

Вячеслав Романьков | lava.top

А также можно обратиться ко мне за консультацией, и первая из них будет бесплатной.