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

Не нравится программирование что делать

Как программировать если совсем не хочется? План спасения на случай перегорания или дедлайна

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

План написан под программиста (меня), да и вообще, в исходном виде подойдет не всем. Советую модифицировать этот план под себя.

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

Предисловие

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

План действий

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

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

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

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

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

Привожу сам план действий.

#1 Работать над самим проектом
Самое важное, в чем в идеале заключается рабочий процесс — работать над бизнес-проблемой, пытаться реализовать требуемый функционал. Это то, к чему мы стремимся.

#2 Подумай как сконцентрироваться
Макс. время: 1 час.

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

Может помочь: еда, кофеин, прогулка, медитация, тренировка, дела по дому, реорганизация труда и целей, музыка, душ, дневник.

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

#3 Незаконченные дела
Подумай, возможно есть какие-то дела по дому или социальные обязанности. Может это уборка дома, оплата коммуналки. Это все может отвлекать тебя от работы, потому стоит решить такие дела как можно скорее или реорганизовать их.

#4 Необязательные дела по дому
Макс. время: 2 часа.

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

#5 Общение
Макс. время: 1 час.

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

#6 Медитация или тренировка
Макс. время: 1 час.

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

Теперь переходим к самому интересному, то, что касается рабочего процесса.

#7 Рефакторинг
Макс. время: 3 часа.

Снова возвращаемся к работе, если сценарии выше не помогли заняться решением бизнес-проблемы, то стоит облегчить задачу. Займись рефакторингом имеющегося кода, но не переусердствуй. Стоит исправлять только откровенные ошибки, а не «делать код лучше».

#8 Упрощение тестирования и отладки
Макс. время: 3 часа.

Подумай над тем, как упростить разработку приложения. Возможно, стоит обновить средства разработки, покрыть приложение тестами, изучить подробней средства разработки, посмотреть, какие есть расширения и встроенные функции IDE, упрощающие работу. Детальней углубиться в процесс сборки и тестирования, постараться это автоматизировать.

#9 Работа над сторонним функционалом проекта
Макс. время: 2 часа.

Можно заняться реализацией каких-то неважных, но интересных функций. Подключить аналитику, подправить интерфейс, добавить логгирование.

#10 Ревью кода проекта и документация
Макс. время: 1 час.

Если не получается заняться работой — просто посиди, почитай код проекта. Даже если его писал ты вчера. Это может помочь настроиться или найти ошибки. Просто открой и смотри.

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

#11 Поработать над своей библиотекой
Макс. время: 2 часа.

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

#12 Кодинг как хобби
Макс. время: 2 часа.

Аналогично предыдущему, но попроще. Делать какой-то простой, но бесполезный проект для души.

#13 Чтение для мотивации
Макс. время: 1 час.

Можно попробовать почитать мотивирующую книгу или статью на хабре и потом приступить к работе. Если не удалось приступить — нет смысла продолжать читать для мотивации дольше часа.

#14 Чтение для образования
Макс. время: 2 часа.

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

Книги читай, только если сможешь ограничить себя во времени, но вообще лучше всего — справочники. В моем случае, по unity, android, xamarin, asp.net, webpack.

В крайнем случае, читай статьи, только следи, чтобы они были не развлекательными, а доносили новую информацию.

#15 Просто поразмышляй как программист
Макс. время: 1 час.

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

#16 Отдых
Увы, но не всегда выходит следовать даже самым простым сценариям. Если это так — пора отдохнуть. Но к отдыху тоже есть свои заметки:

  1. Сон днем только испортит режим и ухудшит продуктивность, его нужно избегать. Прим. В комментариях рекомендуют все же поспать 40 минут.
  2. Отдых не должен вызывать чувство вины, ты ведь делаешь все возможное, следуя плану.
  3. Займись хобби, творчеством.
  4. Отдыхай в социуме. Если ты все равно не работаешь — лучше выйти с друзьями на пару часов или даже целый день выделить, чем сидеть дома.
  5. Смотреть мемы — худшее что ты можешь делать. То же, но в меньшей степени относится к прослушиванию музыки целыми днями.

Дополнительные методики и советы

Привычка очень важна
Самая убийственная вещь против прокрастинации — привычка. Нужно привыкнуть работать, следовать режиму, и тогда будет проще. Для этого нужно работать каждый день (не считая выходных), независимо от обстоятельств. Не важно — сонный ты, занимался делами весь день или у тебя какие-то планы на вечер.

Работать по таймеру
Беспрекословно следовать Pomadoro не стоит, но вот работа по таймеру в целом выходит продуктивней. Например, обязательно 2 часа на сценарий #1, потом час на сценарий #7.

Организуй буткемп
Если работать с еще одним человеком — будет проще заставлять себя работать. Главное не терять концентрацию.

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

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

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

Седативные антидепрессанты, успокоительные — полезно, когда есть время отдохнуть, но под ними вряд ли получится что-то делать. Нет смысла пить в разгар работы.

Энергетики — очень редко можно использовать, если идеальное пищеварение и нет кофеиновых отходняков.

Никотин убивает мотивацию. Бросать во время дедлайна — не имеет смысла. Курить желательно только с момента, когда уже что-то сделал за сегодня.

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

Если работаешь ночью или уставшим — плотно есть не стоит, уснешь.

Чай или кофе?
Можно выпить кружку кофе, если не кофеиновый отходняк, и при сильной необходимости сделать рывок. В остальных случаях лучше наварить себе литр чая и намешать туда полезной фигни: лимон, мед, разные виды чая.

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

Режим сна
Он почти всегда имеет главный приоритет. Единственное исключение — дедлайн проекта.

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

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

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

Если режим сбит окончательно и одинаково неприятно просыпаться в любое время, всегда сонный, то имеет смысл просыпаться в 5 утра. Потом можно доспать, но не раньше часов 11 утра. Это поможет быстро восстановить режим и даже даст запас времени на его сдвиг, но первую неделю надо именно что в 5 просыпаться.

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

Лучше включать осты из игр, я например слушаю Silent hill, Transistor, Hades, Pyre, Assasins Creed, Witcher, Detroit.

Если много энергии — Minecraft, Firewatch, LOU, Thief.

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

Душ
Иногда душ может помочь почувствовать себя получше. Именно душ, ванна — слишком долго и потянет в сон.

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

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

Сон-перезагрузка
Можно уснуть не более чем на полчаса или просто полежать это время. Перед этим можно залпом выпить кофе.

Метод не эффективен при сильном недосыпе и усталости.

Дневник
Ведение дневника может помочь избавиться от стресса и разложить все по полочкам. Но делать слишком длинные записи чаще, чем 2 раза в неделю, тоже нет смысла.

Постоянное повышение продуктивности ведет к выгоранию
Если на протяжении многих дней ты все время повышал продуктивность — неизбежно наступит момент, когда еще повысить ее уже невозможно (очень сложно). Это может расстраивать, в такой момент лучше устроить 1-2 выходных, чтоб обнулить результат и любой следующий день казался продуктивней.

Примеры применения плана

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

6 часов

Сценарий Время
Медитация/тренировка 0:30
Чтение 0:30
Ревью кода проекта 0:20
Работа/рефакторинг 1:00
Перерыв 0:15
Работа/рефакторинг 1:25
Перерыв 0:20
Работа/рефакторинг 1:40

4 часа

Сценарий Время
Медитация/тренировка 0:15
Чтение 0:20
Ревью кода проекта 0:20
Работа/рефакторинг 1:00
Перерыв 0:15
Работа/рефакторинг 1:50

2 часа

Сценарий Время
Чтение 0:15
Ревью кода проекта 0:20
Работа/рефакторинг 1:25

Заключение

Естественно, в этом плане в этом плане куча недочетов, и он субъективен, используйте его как шаблон для написания своего личного плана действий.

Буду очень рад почитать ваши методики борьбы с прокрастинацией в комментариях.

Как не терять мотивацию изучать программирование?

Как не терять мотивацию изучать программирование? главное изображение

Заниматься однотипным делом рано или поздно надоедает. Даже если вам это сильно нравится, в какой-то момент вы почувствуете скуку или нежелание что-либо делать, у вас попросту опустят руки. На этот счет есть отличная цитата: Станет легче. С каждым днем становится немножко легче. Но делать нужно каждый день – это самое трудное. Но легче обязательно станет.

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

Постараюсь абстрагировать это именно на ситуацию с изучением программирования:

  1. Представьте, что будет, если вы продолжите это делать. И что будет, если перестанете

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

Скажу честно, иногда мне кажется, что другим людям программирование интересно гораздо больше, чем мне. Но что будет, если я брошу всё это? Я лишусь возможности работать на одной из самых увлекательных и высокооплачиваемых профессий, на которой можно развиваться всю свою жизнь. Мне придется искать работу из разряда офисного работника, который заполняет бумаги. Безусловно, это вполне себе нормальная работа, но это ли то, к чему я стремлюсь? Возможно, я просижу им всю жизнь, но если я получу первую работу программистом, то мои знания будут только расти, с течением времени я стану идти только вверх по карьерной лестнице.

  1. Преодолейте отвлекающие факторы

Меня, например, сильно раздражает распорядок на моем рабочем столе. А ещё меня очень сильно отвлекает телефон, на который постоянно приходят разного рода уведомления. Если вы чувствуете, что не можете сосредоточиться — исключайте все лишнее из области видимости.

  1. Скажите о занятии программированием кому-то другому

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

  1. Сравните свои знания на начальном и нынешнем этапах

Задумайтесь о том, что когда-то вы не знали, что такое верстка, а сейчас уже верстаете сайт-лендинг. И это всего лишь спустя месяц! Нужно понимать, что такими шагами вы однажды достигнете своей цели.

  1. Делайте перерывы

Ни стоит быть зацикленным на программировании. В какой-то момент у вас будет просто кипеть голова от количества информации. Чем больше мы знаем — тем больше мы не знаем. Что учить: React, Vue.js или Angular? А может просто посмотреть видос о том, как сделать корзину на сайте на чистом JS?

Дайте себе время оценить все варианты, почитать об этом в каком-то лайтовом варианте, а не в стиле технической документации, попросите совета у других людей. Поиграйте в футбол, посмотрите фильм, полежите на диване. Иногда нужно повалять дурака какое-то время, необязательно 3 дня, это может быть что-то вроде месяца.

Главное чтобы в вас снова горело желание изучать программирование снова! 🙂

Не нравится программирование что делать

Пришло время летних каникул. Все школьники счастливы. Первые несколько недель все наслаждаются свободным временем и ничего не делают. Затем начинают снова жаловаться.

Видите ли, учеников в конечном итоге одолевает вялость. Во время учебы все так скучно и сложно, что они устают от этого и под конец чувствуют себя обессиленными. Но как только наступают каникулы и они верят в то, что все станет лучше, им быстро становится скучно. Я называю этот феномен «отсутствие внутренней цели».

Моя сестра – наглядный пример этого явления. После нескольких бесполезных проектов она достигла дна: недельный период просмотра видео о макияже на YouTube и других социальных сетей. Со временем она начала страдать вслух, и я был вынужден помочь. Тут история и приобретает краски.

Она хотела заняться чем-то «механическим», где бы не было места творчеству. Раньше она писала рассказы, это занятие требовало продолжительной умственной нагрузки, и она уставала. Прочитав несколько статей о ценных навыках в 2018 году, я предложил ей научиться программировать. Я считаю, что это ценный навык, и сам программирую. Первый день обучения прошел замечательно. Она была заинтересована и нашла смысл существования. Вы, возможно, задаетесь вопросом: а к чему такой заголовок?

На самом деле в своей компании я не очень часто пишу код – лишь в экстренных ситуациях (дедлайны, больничный). Даже в такие моменты мне это очень не нравится. Я ненавижу программирование, потому что большая его часть кажется мне роботизированной.

Основная суть программирования – следовать известному рецепту, придуманному группой очень умных людей.

Цель и процесс ее достижения в программировании обычно ясны. У вас есть набор задач, которые нужно выполнить, и вы пишете код, чтобы сделать это хорошо. Проблема заключается в том, что без какого-либо предупреждения в процессе может возникнуть 20 миллионов ошибок. Исходя из своего опыта, я могу сказать, что не каждая вещь, которая может пойти не так, пойдет не так. Но вещь, которая должна работать, в итоге будет работать не так, и тем самым вызовет еще больше проблем, чем ожидалось в самом начале.

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

Фото: Unsplash. Большинство кода, который вы пишете – мусор.

В программировании вы ограничены в возможностях.

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

  • Во-первых, выходить за пределы возможностей этого набора подходов практически невозможно или настолько неприятно, что вы даже не будете пытаться. Поэтому новые способы постоянно создаются в форме новых языков или фреймворков. Да, все программирование до этого момента можно было записать в виде двоичных кодов. Просто не нашлось столько сумасшедших людей.
  • Во-вторых, если вам нужно сделать другие, продвинутые вещи, вы должны помнить, что они тоже должны придерживаться этих подходов, и поэтому процесс программирования кажется еще более сложным.

Я понимаю, что не все читатели знакомы с техническими формулировками и не понимают природу этих страданий. Поэтому я придумал близкую аналогию: представьте, что вам нужно за шесть часов перевезти 50 арбузов из точки А в точку Б, расстояние между которыми составляет 50 км. У вас есть грузовик, в который сразу помещается 50 арбузов. Все просто, правда? Надо загрузить арбузы и отправиться в точку Б. Шесть часов – более чем достаточно, чтобы преодолеть 50 км. Что ж, в зависимости от языка программирования, ход событий будет различаться.

Если вы разработчик С, у вас уже ничего не получится, потому что вы забыли импортировать необходимые библиотеки. Кроме того, ваш грузовик переполнен мусором, что делает его непригодным. Если вы разработчик систем, у вас даже нет грузовика, поэтому вы достаете из арбузов семена, пробегаете 50 км и сажаете их в точке Б в надежде, что там вырастет 30 арбузов. Если вы разработчик Ruby on Rails, грузовик на самом деле беспилотный, и все, что вам нужно сделать, – загрузить арбузы. Но в процессе вы неправильно используете метод ActiveRecord, и теперь ваши арбузы стали авокадо. Хорошие новости – у вас есть 24 книги с рецептами из авокадо.

Видите? Это очень раздражает.

Программирование – слишком неестественно и не интуитивно, чтобы проявлять креативность.

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

Кодинг откроет нам невероятные возможности, если он просто будет более приятным. Если вы мне не верите, попробуйте научиться программировать. В первый месяц вам будет казаться, что вы контролируете целую галактику. Но как только вы начнете делать реальные вещи при помощи кода, вы поймете, что я имею в виду. Разработчики не просто так получают высокую зарплату.

Как вернуть кодингу былое величие?

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

Что нам, программистам, следует делать?

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

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

Мы должны делать кодинг проще и мощнее. Так многие профессии станут куда приятнее. Еще важнее, мы заживем долго и счастливо. Мы уже потратили слишком много времени.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *