Луис Петрик, разработчик-любитель из Германии, работает НА JavaScript, Node. js & React. js.

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

Веселитесь и не отвлекайтесь!

1. Не позволяйте себе отвлекаться!

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

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

Сформируйте для себя правильные установки вместо прокрастинации и отвлечения внимания 

Будьте уверены, это не приведет ни к чему хорошему, а, наоборот, станет источником еще больших проблем. Обычно отвлечение внимания во время работы — пустая трата времени.

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

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

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

И еще кое-что…

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

Не беспокойтесь, вы ничего не теряете!

«Я как раз из тех людей, которые не могут взять и сразу приступить к выполнению сложной задачи. До работы в команде я мог откладывать работу на час, а то и на день. Потом очень долго вникал, разбирался, уставал и снова откладывал. А когда спустя какое-то время опять брался за работу, понимал, что нужно разбираться с начала. Это очень сильно расстраивает и раздражает. И тогда требуется время не только, чтобы вникнуть, но и чтобы успокоиться. Ведь работать продуктивно можно, если ты абсолютно спокоен и уравновешен.

Каждый раз кажется, что только посмотрю новости или загляну в мессенджеры на минуту, а в итоге проходит 30!

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

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

АЛЕКСАНДР Б, ПРОГРАММИСТ INTENSA

2. Ставьте личные цели

Различные исследования показали, что необходимо ставить личные цели. Это настолько очевидно, что мне даже не нужно это доказывать.

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

Хороший пример плохой цели — традиционные обещания самому себе в канун Нового года. Например, больше заниматься спортом. Вы не ходили в зал до этого? А теперь делаете 10 отжиманий в неделю? Тогда мои поздравления: вы достигли своей цели.

Забавно, что и вы, и я знаем про себя что-то подобное. Я прав?

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

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

SMART — значит Конкретность (Specific), Измеримость (Measurable), Привлекательность (Attractive), Реалистичность (Realistic), Ограниченность во времени (Time-Bound).

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

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

«Абсолютно согласна, цель должна быть реалистична и измеряема. На данный момент моя цель — до конца лета изучить JavaScript. Ежедневно выделяю 30-60 минут. Я записала цель на листок и прикрепила его на видное место, чтобы всегда был перед глазами. Иначе со временем она забудется, а то, что записано и всегда находится в поле зрения — нет. Можно, конечно, и записанную цель постоянно откладывать, но тогда какой в ней смысл? Это уже, получается, мечта, а мечта не всегда достижима.

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

Мой совет: не ставьте себе много целей одновременно на короткий промежуток времени, поставьте одну или несколько, а после их достижения добавьте новые».

ЮЛИЯ, ПРОГРАММИСТ INTENSA

3. Если это не протестировано, это не работает

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

Вы можете поставить себе цель — разработать несколько небольших фич или компонентов и каждый раз тестировать их по отдельности.

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

«Считаю, что тестирование — это неотъемлемая часть разработки. Код любого более-менее серьезного проекта должен быть покрыт тестами. Представьте, что в системе, в которой более 50 тысяч строк кода и 20 компонентов, случается фатальная ошибка, нарушающая работоспособность системы целиком. А теперь представьте, сколько времени вам потребуется, чтобы определить, в каком из узлов системы она случилась?»

ИВАН, СТАРШИЙ ПРОГРАММИСТ INTENSA

4. Документируйте и делайте рефакторинг хорошо

Лучше потратить несколько лишних минут и написать комментарий, сделать заметки, зафиксировать промежуточный результат (например, с помощью Git) и хорошенько подумать над именами значимых переменных.

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

«Про себя могу сказать, что подробно не описываю незначительные, мелкие поправки, которые не могут сломать весь код. Делаю небольшие заметки типа: “правки, поменял стили” или “поменял контент”, “заменил картинку”. На детальное описание всех изменений уходит очень много времени».

АЛЕКСАНДР Х., ПРОГРАММИСТ INTENSA

Так что насчет рефакторинга?

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

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

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

АЛЕКСАНДР Х., ПРОГРАММИСТ INTENSA

5. Правильная среда решает

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

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

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

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

Так, например, долгое время я не знал, что в Visual Studio Code можно добавить несколько строк кода одновременно. Это могло сэкономить мне много времени.

«Очень часто приходится искать в проектах различные файлы и код, которые отвечают за определенный функционал. Возможности IDE позволяют значительно сократить поиск необходимых файлов и кода в проекте. Буквально несколько секунд, и требуемый файл уже открыт в IDE».

МАКСИМ, СТАРШИЙ ПРОГРАММИСТ INTENSA

Важно, как вы проводите время в своем окружении

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

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

6. Избегайте одинаковых ошибок

Когда я сам начал изучение Node. js, я постоянно сталкивался с проблемами CORS ( совместное использование ресурсов между разными источниками), которых на самом деле можно было легко избежать.

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

«Бывает, я пишу для себя заметку, как решил ту или иную проблему. Пока пишешь, полученный опыт лучше откладывается в голове. Однако, если вы сами нашли ошибку, то написание заметки будет носить чисто формальный характер. Нельзя забыть то, что понял сам. И наоборот: можно посмотреть миллион уроков на YouTube, а когда сядешь писать код, не напишешь ни строчки».

АЛЕКСАНДР Х., ПРОГРАММИСТ INTENSA

7. Научитесь печатать быстрее

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

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

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

ИВАН, СТАРШИЙ ПРОГРАММИСТ INTENSA

8. Автоматизируйте, насколько это возможно

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

Например, вы можете использовать различные инструменты для автоматического рефакторинга и тестирования кода. Также вы можете автоматизировать свою работу в качестве программиста в любой области, которую только представите. Компонент многократного использования можно легко применить еще раз на таких платформах, как Bit. UI-тестирование и анализ кода могут быть автоматизированы даже сегодня.

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

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

МАКСИМ, СТАРШИЙ ПРОГРАММИСТ INTENSA

9. Не бойтесь просить о помощи!

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

Поздравляю, но, на мой взгляд, вам стоило обратиться за помощью.

И неважно, нашли ли вы ответ на Stack Overflow или где-либо еще.

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

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

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

«Когда я был начинающим программистом, то работал не в команде и понять многие вопросы было тяжело. Да, я читал статьи на форумах, но иногда и они были не понятны. Однако мне повезло, так как я практически 24/7 мог задавать вопросы своему брату, программисту со стажем.

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

АЛЕКСАНДР Б., ПРОГРАММИСТ INTENSA

Статью подготовили:

Пишу тексты про digital.