Как заставить себя изучать программирование
Как успешно научить себя программировать
Я хочу поделиться с вами статьей, которая во время прочтения очень сильно отозвалась во мне. Ее автор девятнадцатилетняя девушка веб-разработчик, Lydia Hallie, больше известная как «the most hardworking, yet most relaxed person» (очень трудолюбивый, но все-таки расслабленный человек) рассказывает о том, как современному разработчику справляться с многочисленными потоками входящей информации и сохранять мотивацию к саморазвитию.
После того, как я опубликовала свою предыдущую статью о том, как я стала разработчицей в 19 лет, сотни людей писали мне примерно одно и то же:
«Отличная статья. Я очень хочу научиться программированию, но просто не знаю, с чего начать. Это так расстраивает и подавляет, что я теряю мотивацию»
Моя задача: вовлечь в мир технологий как можно больше людей, поэтому очень важно сосредоточиться на тех, кто действительно мотивирован, но просто не знает, с чего начать.
Сегодня существует множество ресурсов, которые «научат вас программировать». Однако, это не самое главное, и статья не об этом. Решающее значение имеет то, как вы строите свою жизнь, обрабатываете новую информацию, сохраняете мотивацию и фокусируетесь на главном.
«Всё это звучит хорошо, Лидия», скажете мне вы, «но, чувствую, это еще одна статья, которая мотивирует меня на 10 минут, пока я не вернусь к Netflix!» Прежде, чем я начну, хочу, чтобы вы поняли, что вы уже крутые, хотя бы потому, что решили научиться программировать. Это значит, что вы можете думать на несколько шагов вперед и способны выйти из зоны комфорта, даже если еще не сделали этого!
Если вам нравится изучать что-то новое и сложное, вы определенно станете хорошим разработчиком.
Я много лет была наставником и часто слышала от своих подопечных, что им не хватает мотивации. Они фокусировались на крупной цели, игнорируя свои небольшие, но все же очень важные улучшения. Поэтому им казалось, что они никуда не движутся.
Хотя я знала, как важно помнить об этом при получении какого-то нового умения, я сама попала в эту ловушку, когда начинала. Я не чувствовала какого-либо прогресса и думала, что все вокруг меня всё равно остаются на голову выше. Мне казалось, что я никогда не достигну их уровня.
Эти мысли мешали осознать, как много важных шагов мне уже удалось сделать. При этом я писала код с первого раза, и создавала всё более сложные приложения. Продолжая сравнивать себя с другими, более опытными людьми, я не могла увидеть свой прогресс. И всё, о чем я могла думать: «я всё еще так далека от своей цели».
Критический момент в обучении программированию реален, и чтобы справиться с ним, нужно приложить усилия. Это в большей или меньшей степени свойственно всем начинающим программистам и я действительно хочу помочь вам преодолеть этот критический момент. Это не значит, что всё на самом деле так, как вам кажется — возможно, всё происходит исключительно у вас в голове. Но сказать проще, чем понять это.
Каждый преодолевает это по-своему, но я подробнее остановлюсь на самых распространенных проблемах всех начинающих программистов: как максимально эффективно работать с новой информацией и как сохранять мотивацию. Я не собираюсь останавливаться на поиске лучших сайтов, потому что это очень субъективно.
Заканчивая даже относительно небольшое проект, я чувствовала такое счастье! Я многому научилась в процессе и имела возможность поработать с технологиями, с которыми никогда раньше не работала.
Эффективная работа с новой информацией
Все мы разные, и по-разному усваиваем информацию. Да, я говорю как Капитан Очевидность, но это не столь очевидно, как может показаться. Прежде, чем научиться кодить, вам придется научиться учиться.
Скоро вы узнаете (или, возможно, уже узнали), что есть два типа общедоступных информационных ресурсов: онлайн-курсы и документация. Однако, если вы не сверхчеловек, то просто не запомните всю информацию, просматривая курсы (даже не из-за трудностей с концентрацией внимания, а из-за того, что они бывают откровенно скучными) или читая текст.
Чувствовать себя потерянным и запутавшимся во время просмотра курсов или чтения документации — нормально, каждый преодолевает это в начале своего пути. Разработчики с трудом могут обучить программированию людей, которые не слишком в этом разбираются, не прибегая к скучным расплывчатым терминам (да-да, это я про вас, Stack Overflow!).
Не важно, насколько по вашему мнению вы круты, не пропускайте основы. Всегда начинайте учить язык с самого начала и ничего не упускайте. База очень важна, и вы обязательно пожалеете о том, что не уделили ей достаточно внимания! Конечно, всегда можно погуглить, но это только замедлит вашу работу. Читая документацию, начинайте с первой страницы (или с 1.1 в некоторых случаях). Кому-то это может показаться пустой тратой времени, но поверьте мне: это не так. Уделяйте внимание всем деталям и в будущем вы будете себе благодарны!
Если вам трудно понять основы, расслабьтесь! Всё будет в порядке. То, как вам сейчас тяжело, никак не влияет, насколько хороши вы будете потом.
Каждые 10 минут или после каждого прочитанного абзаца объясните своими словами, что вы только что узнали. Это может быть достаточно трудно, но скоро вы поймете, какие части вы усвоили не до конца. Лучший способ выучить что-то: объяснить это кому-то другому, даже если рядом никого нет!
Представьте, что вы объясняете эту тему кому-то другому, и как только поймете, что не усваиваете какую-то часть, разберитесь в ней и запишите ответ! Пока будете писать, вы еще раз хорошенько обдумаете информацию, и тогда ее будет легче запомнить.
Не просто слушайте курсы и читайте документацию: активно пользуйтесь новой информацией в своих проектах. Внедряйте все, чему вы научились, даже если это кажется вам незначительным! Это не так просто, как может показаться, а иногда и довольно неприятно, но только так вы поймете, что все делаете правильно. Прокачивать свои навыки нужно в том числе и на практике! Поверьте, вы будете становиться лучше с каждой попыткой, даже если не осознаете этого!
Сохранение мотивации
Меня часто спрашивают, как я заставляла себя писать так много каждый день. Надо сказать, что мне потребовалось какое-то время, чтобы сформулировать, что творилось тогда у меня в голове.
Мы все любим играть, не важно в какие игры. Игры приносят мгновенное удовлетворение, позволяют чувствовать себя успешным от незначительных достижений. Это идеальная формула мотивации! Я смогла получить её в процессе программирования. И это намного проще, чем вам кажется.
Ставьте себе небольшие цели. Не потому, что вы не стремитесь развиваться, наоборот — потому что вы стремитесь развиваться. Составьте список дел, которые вы хотите завершить сегодня. Может быть, прочитать одну страницу, просмотреть один курс или написать 10 строчек кода. Завершив свой список, вы почувствуете себя удовлетворенным и уверенным в своем успехе. Что звучит лучше: «я сделал всё, что планировал на сегодня» или «я сегодня прошел только 2 % курса»? К тому же, даже если вы всего лишь прочитали одну страницу или сделали одно поле ввода, это всё равно невероятно важно осознать. Мгновенное поощрение!
Постоянно напоминайте себе, как далеко вы продвинулись. Это может показаться довольно трудным, потому что прогресс часто остается незамеченным. Вы не можете постоянно видеть свой рост, но поверьте, если вы пишете код каждый день (хотя бы немного), он становится лучше.
Хороший способ — вести дневник. Опишите в одном предложении, с какой проблемой вы столкнулись сегодня, и перечитайте через месяц. Есть очень, очень большая вероятность, что для вас уже больше не будет существовать такой проблемы! Вы увидите, насколько сильно выросли за это время.
Работайте над личным проектом, в котором вы действительно заинтересованы! Не над одним из миллиона в списке дел, но над тем, который вы действительно хотели бы сделать. Я не имею в виду автомобиль с автопилотом или личного робота-повара, выберите что-то поменьше. Освежите макет сайта или напишите маленькую игру. Вы заметите, что мотивация закончить эти дела будет гораздо выше. А когда проект будет завершен, вам будет, что показать, ведь вы уже что-то сделали!
Поймите, что вы гораздо лучше, чем сами думаете. Это называется синдром самозванца. Вам может казаться, что люди вокруг знают и умеют гораздо больше вас, но это неправда. Я не устану повторять: вы станете хорошим разработчиком, если продолжите интенсивно работать. Вы уже доказали, что можете кодить, благодаря тому, что достаточно мотивированы чтобы учиться этому, у вас всё в порядке.
Что следует знать перед тем как «увлечься» программированием
Вступление
Этот хабратопик предназначается для всех тех, кто хочет с головой (или не очень) погрузиться в волшебный мир программирования, но пока не знает, с чего начать. Возможно, вы уже предпринимали попытки научиться программированию, однако безнадежно забуксовали.
Так получилось, что около четырех-пяти месяцев назад я решил слегка разнообразить свой досуг новым хобби и вплотную заняться веб-программированием. Как я докатился до жизни такой — это тема для совсем другой статьи, и речь сейчас пойдет не об этом. Речь пойдет о трудностях, с которыми я столкнулся, и к которым абсолютно не был готов. Возможно, этот топик поможет вам лучше подготовиться и не повторить моих ошибок.
Итак, после осознания навязчивого желания хотя бы немного да освоить это таинственное ремесло, каждый задает абсолютно логичный вопрос — «С чего же мне начать»? Ответов может быть множество — к услугам новичков скринкасты, книги, курсы, онлайн-обучение, форумы и прочее, и прочее. Учи-нехочу. И так как никакой общепринятой системы самообучения программированию не существует, можно смотреть и читать все без разбору, дни напролет. При желании, в чтении можно захлебнуться, однако для уверенного продвижения по лестнице знаний необходимо четко и эффективно расходовать свое время и силы, и если не знать с чего начать и куда двигаться — вы попросту забредете в дремучий лес, по которому можно блуждать неделями, пока, наконец, вы не выйдете на верную тропинку. Если выйдете вообще — велик шанс, что вам попросту все это дело быстро надоест.
Я и сам пошел по этому пути — скачивал тучи роликов, впридачу купил несколько книг, читал их и забрасывал, потому что мне все-равно не хватало знаний и подготовки, несмотря на то, что все материалы были предназначены для «новичков». Я постоянно гуглил разные мелочи, задавал нубские вопросы на форумах, хватая минусы, и это убивало во мне желание продолжать самообучение.
Да, любые знания и любой накопленный (нагугленный?) опыт вам, безусловно, поможет и пригодится, однако ваша цель научиться тому, чему вы хотите научиться, и увидеть мало-мальский результат в обозримом будущем ведь так?
Абсолютно все материалы, которые попадались мне на глаза, после краткого вступления немедленно бросались с места в карьер, предлагая читателю решения и примеры на заданную тему. Я чувствовал себя абсолютным двоечником в классе вундеркиндов, и постоянно сталкивался с одной и той же проблемой — авторы книг, впрочем как и любого другого образовательного материала, предполагали что я владею некоторой базой основ, которая, на первый взгляд, к непосредственному программированию не имеет никакого отношения.
Это как если вы пришли работать, скажем, крановщиком, вас в первый же день посадили в башню, и похлопали по плечу со словами «Ну, удачи!». А как же техника безопасности и базовое объяснение что делать, а чего делать не нужно? Как мне пользоваться инструментами? Что вообще у меня за инструменты в наличии? Что я должен знать перед тем как приступить к работе?
Статья носит сугубо рекомендательный характер, однако попадись мне подобный топик на глаза пол года назад, я бы значительно увеличил свою продуктивность, сэкономил уйму времени себе, а так же множеству людей с форумов, отвечавшим на мои абсолютно идиотские вопросы. К каждому пункту я добавил несколько ссылок, как отправных точек для начала обучения. Так как текст предназначается для абсолютных новичков (да и сам я еще таким себя считаю) — я буду изъясняться предельно просто и понятно, поэтому если вы — гуру, и вы нашли в моем тексте оплошность — судите, но не строго!
Итак, что же следует знать, перед тем как увлечься программированием?
1. Терминал
Для вашего дальнейшего успешного самообучения программированию вам необходимо научиться пользоваться терминалом. Помимо непосредственного взаимодействия с языками программирования, обучение пользованию терминалом поможет вам лучше, так скажем, понять язык компьютера и устройство файловой системы в целом, а это уже маленький шажок в нужную сторону. Более того вы скажете мне спасибо, после того как начнете обучаться по скринкастам, в которых терминал используется постоянно.
Самообучение
2. Регулярные выражения
Представьте себе, что вы решили выучить иностранный язык не вникая в его азбуку, алфавит или иероглифику. Конечно, это возможно. Но насколько это усложнит процесс и путь к пониманию сути вещей? Решение сомнительное, правда? Так вот, регулярные выражения (они же регексы, с ударением на первый слог) — это, объясняясь простым языком, в какой-то степени вспомогательная азбука любого программиста, или, выражаясь языком викисловаря — «формальный язык поиска и осуществления манипуляций с подстроками в тексте, основанный на использовании метасимволов».
Выглядеть регекс может, например, так:
Задача регулярных выражений — помочь программисту с поиском чего-либо. Сейчас объясню.
Если я в своей программе захочу найти все слова, частью которых является слово car (car, carrot, cartoon), мой регекс будет выглядеть так:
Если же меня интересует только слово car, я напишу:
Дальше — веселее. Можно фильтровать поиск через слово, через букву, исключать слова перед или же после искомого результата… Список возможностей фильтрации результатов при помощи регулярных выражений по-настоящему захватывает, и в паре с терминалом, про который я вам уже рассказал выше, эта штука просто невероятно крута. Несмотря на различающийся синтаксис отдельно взятых представителей ООП, многие из них поддерживают регексы и экономят уйму времени людям их использующим.
«Ну поиск, кому оно надо? Я же буду учиться программировать, а не искать слова!» — наверняка подумаете вы. Я вас услышал и даже понял. Так что если вы все еще сомневаетесь в необходимости заморачиваться с регулярными выражениями, просто поверьте мне на слово — они вам пригодятся. Многие книги и скринкасты используют регексы в примерах, вообще не объясняя, что происходит — авторы думают, что вы уже владеете этими азами и особенно не акцентируют внимание на разжевывании написанного.
Зубрить их совсем не обязательно, но, согласитесь, просмотр пары-тройки скринкастов на данную тематику вас явно не убъет.
Самообучение
3. Софт для разработки — знай свое оружие
Правило номер один — вы должны по-максимуму знать и владеть своими инструментами. Грамотно выбранный и изученный редактор, в котором вы вскоре обязательно начнете творить чудеса, я легко могу сравнить с превосходно подобранным самурайским мечом. Солдаты собирают и разбирают свои автоматы с завязанными глазами — вот насколько хорошо вы должны владеть софтом, которым пользуетесь! Пока вы буква за буквой пишете простую функцию, ваш враг, используя весь потенциал своего редактора, напишет несколько.
Для веб-разработки существует огромное количество програм, от простых текстовых редакторов до сложных облачных решений. В этой статье я не буду сравнивать эти редакторы между собой, вам придется сделать это самостоятельно — ведь вам с этим редактором жить, работать и смотреть на него и в горе и в радости. Я остановил свой выбор на редакторе Sublime Text 2. Помимо тонны возможностей, которыми обладает Sublime, необходимо отметить, что он условно-бесплатный и по нему существует множество отличной документации. Возможно совсем скоро, познав все хитрости Sublime и научившись подключать к нему плагины, подобная строка будет для вас обычным делом:
div>(header>ul>li*2>a)+footer>p (используется плагин Emmet, если кому интересно)
Самообучение
4. Система контроля версий
«Ну а это еще что такое?» — спросите вы. О, система контроля версий это прекрасная вещь, без которой в наши дни не обходится ни один серьезный девелопер. Википедия гласит — «Система управления версиями позволяет хранить несколько версий одного и того же документа, при необходимости возвращаться к более ранним версиям, определять, кто и когда сделал то или иное изменение, и многое другое.» Систем контроля версий существует достаточно много, поэтому сразу скажу — ниже речь пойдет исключительно о GitHub, самом большом сервисе для совместной разработки проектов.
Резонный вопрос: «Зачем мне этот Гитхаб осваивать, ведь мне пока нечего выкладывать?» А причин на то несколько. Помимо содержания собственных репозиториев, GitHub, во-первых, поможет вам осознать себя частью огромного сообщества разработчиков (возможно, кто-то из читающих сейчас ухмыльнулся, но поверьте, это действительно важно, особенно на ранних стадиях обучения!). Кроме того, вы сможете взглянуть на чужой исходный код и научитесь правильно его скачивать и «форкать» (копировать). В дальнейшем GitHub частенько будет всплывать в различных онлайн-курсах и скринкастах, и, конечно же, их авторы будут уверены в том, что вы знаете, как Гитхабом пользоваться. Поэтому если у вас найдется немного времени на неделе, сделайте себе одолжение — попробуйте Git.
Самообучение
5. История и культура
Этот пункт, скорее, вспомогательный, но если программиста которым вы восхищаетесь зовут Стив Джобс, то прошу вас, продолжайте чтение. Программирование имеет богатую и интересную историю (говорю вам как историк по первому диплому), в которой следует поковыряться хотя бы для общего образования. Занимаясь чем-либо, всегда полезно знать, откуда у этого чего-либо растут ноги. Кроме того, я искрене считаю, что без знания истории предмета невозможно полностью понять его суть, и, следовательно, достичь предельных успехов в его освоении. Поэтому если по прошествии некоторого времени такие имена, как Линус Торвальдс или же Грейс Хоппер не будут для вас пустым звуком — уважение вам и респект!
Помните — тот, кто не изучает историю, повторяет ее ошибки.
Заключение
Надеюсь, данный текст вас ни в коем случае не испугал, а наоборот, направил в нужную сторону, или же поможет в будущем избежать затруднений, которые постоянно встречаются на пути ученика. Я буду рад получить отзывы и комментарии, или же ссылки на дополнительные ресурсы, которые помогут новичкам в самообучении.
Как программировать если совсем не хочется? План спасения на случай перегорания или дедлайна
Никакой воды в этой статье, только описание конкретного плана действий в случае если вы перегорели, у вас дедлайн, прокрастинация, депрессия, а также методики и советы, помогающие привести этот план в действие.
План написан под программиста (меня), да и вообще, в исходном виде подойдет не всем. Советую модифицировать этот план под себя.
Некоторые советы могут показаться банальщиной, но все равно проще им следовать, когда они собраны в одном месте.
Предисловие
Мне этот план помог превратиться из перегоревшего грустного бездельника, который несколько месяцев не мог заставить себя программировать, в более-менее продуктивного человека. Сейчас совмещаю 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 Отдых
Увы, но не всегда выходит следовать даже самым простым сценариям. Если это так — пора отдохнуть. Но к отдыху тоже есть свои заметки:
Дополнительные методики и советы
Привычка очень важна
Самая убийственная вещь против прокрастинации — привычка. Нужно привыкнуть работать, следовать режиму, и тогда будет проще. Для этого нужно работать каждый день (не считая выходных), независимо от обстоятельств. Не важно — сонный ты, занимался делами весь день или у тебя какие-то планы на вечер.
Работать по таймеру
Беспрекословно следовать 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 |
Заключение
Естественно, в этом плане в этом плане куча недочетов, и он субъективен, используйте его как шаблон для написания своего личного плана действий.
Буду очень рад почитать ваши методики борьбы с прокрастинацией в комментариях.