9 хитростей продуктивного программирования
Луис Петрик, 18-летний разработчик-любитель из Германии, работает в JavaScript, Node.js & React.js.
Писать код — это весело и даже очень, если вы достигаете цели и делаете это быстро. Поэтому я написал эту статью, в которой собрал все свои приемы для продуктивного программирования. Надеюсь, вам они тоже будут полезны.
Веселитесь и не отвлекайтесь!
1. Не позволяйте себе отвлекаться!
Какой крутой переход, правда? Ок, а теперь к сути: вы можете потратить кучу времени, откладывая важные задачи, вместо того, чтобы довести дело до конца.
На самом деле это бессмысленно. Фактически вы ничего не делаете, ненадолго оттягивая момент выполнения текущей, возможно, очень утомительной работы, ради временного успокоения.
Сформируйте для себя правильные установки вместо прокрастинации и отвлечения внимания.
Будьте уверены, это не приведет ни к чему хорошему, а, наоборот, станет источником еще больших проблем. Обычно отвлечение внимания во время работы — пустая трата времени.
Я лично предпочитаю смотреть YouTube или Instagram, чтобы узнать последние новости. Получается, ежедневно я трачу уйму времени, каждый раз находя для себя причину, чтобы отвлечься.
На самом деле, нет никакой разницы, открываю ли я YouTube каждый час или один раз в день. В итоге я просматриваю тот же контент. И что действительно печально: в большинстве случаев я буду потреблять информацию, которую забуду уже к вечеру, так и не узнав ничего полезного.
Для того, чтобы не терять счет времени, периодически смотрите на часы. Так вы научитесь определять, сколько занимает выполнение той или иной задачи. Однажды осознав, сколько времени потрачено впустую, вы будете в шоке и станете менее расточительны.
И еще кое-что…
Отложите ваш телефон. Закройте ненужные вкладки. Есть еще множество вещей, с которыми вам придется попрощаться. Вы должны определить сами для себя, что конкретно вас отвлекает.
Не беспокойтесь, вы ничего не теряете!
2. Ставьте личные цели
Различные исследования показали, что необходимо ставить личные цели. Это настолько очевидно, что мне даже не нужно это доказывать.
Все логично. Часто мы держим в голове только приблизительные цели, а потом врем самим себе, пытаясь достичь их, и, в конечном счете, теряем из виду.
Хороший пример плохой цели — традиционные обещания самому себе в канун Нового года. Например, больше заниматься спортом. Вы не ходили в зал до этого? А теперь делаете 10 отжиманий в неделю? Тогда мои поздравления: вы достигли своей цели.
Забавно, что и вы, и я знаем про себя что-то подобное. Я прав?
И вряд ли мы единственные люди, которые так делают, однако существуют четкие правила постановки целей, чтобы не терять их из виду (как это происходит с нашими новогодними обещаниями).
Одна из систем для постановки оптимальных целей — SMART — может быть использована для чего угодно. Я бы не добавил ее в свой список, если бы вы не могли использовать это в своем программировании.
SMART — значит Конкретность (Specific), Измеримость (Measurable), Привлекательность (Attractive), Реалистичность (Realistic), Ограниченность во времени (Time-Bound).
- Цель должна быть обозначена настолько точно, насколько это возможно.
- Прогресс можно измерить.
- Цель должна быть привлекательна для нас самих.
- Цель должна быть реалистичной. Иначе мы вскоре разочаруемся.
- Она должна быть ограничена по времени, чтобы мы могли достичь ее к установленному сроку.
Теперь ваша новогодняя резолюция может выглядеть вот так: ходить в зал два раза в неделю и качать мышцы, чтобы выглядеть лучше. Это реалистичная и измеряемая цель.
3. Если это не протестировано, это не работает
Всегда все тестируйте после окончания работы — приятно, что этот подход прекрасно соотносится с принципами SMART.
Вы можете поставить себе цель — разработать несколько небольших фич или компонентов и каждый раз тестировать их по отдельности.
Хуже всего, когда вы завершили текущий проект, а потом в нем что-то перестает работать и вы не знаете почему. Это может быть даже баг в разработке. Поверьте, самые нелепые вещи случаются тогда, когда законченный проект не был протестирован в каждом возможном сценарии.
4. Документируйте и делайте рефакторинг хорошо
Лучше потратить несколько лишних минут и написать комментарий, сделать заметки, зафиксировать промежуточный результат (например, с помощью Git) и хорошенько подумать над именами значимых переменных.
Нет ничего забавнее/печальнее, чем обнаружить чей-то непонятный старый программный код…, а этот кто-то — не кто иной, как вы год назад.
Так что насчет рефакторинга?
Хотя рефакторинг и не изменит работу вашего кода и может потребовать больших вложений времени, его значимость не стоит недооценивать. В результате вы получите легко читаемую и поддерживаемую кодовую базу.
В случае, если вы откинули гордость и попросили кого-то о помощи, рефакторинг может значительно помочь тому человеку разобраться в проблеме потому, что ваш код простой, легкий и хорошо описан.
5. Правильная среда решает
После этого пункта вы должны подняться и уйти туда, где меньше всего вас что-то отвлекает, верно? Нет? Тогда подумайте об этом еще раз. Или по крайней мере откройте окно на минуту. Регулярное проветривание помещения поможет сократить потребление углекислого газа, который способствует повышенной утомляемости и головным болям.
Если у вас есть время, так почему же вы не выходите на прогулку? Это невероятно здоровая привычка, которая усиливает концентрацию внимания и улучшает мыслительный процесс. И, кстати, во время прогулки вы дышите свежим воздухом.
Я вполне серьезно говорил о смене рабочего места. Исследования показывают, что периодическая смена вашего местоположения повышает производительность.
А если говорить о собственной IDE (интегрированная среда разработки), то знание ее от и до будет весьма полезно. Поэтому я считаю, что стоит потратить несколько минут и узнать ее ключевые характеристики.
Так, например, долгое время я не знал, что в Visual Studio Code можно добавить несколько строк кода одновременно. Это могло сэкономить мне много времени.
Важно, как вы проводите время в своем окружении
Если вы торопитесь с проектом, возможно, вам не стоит работать в комнате, которая требует уборки. Домашние дела могут привести вас в бешенство, даже если обычно вы их не делаете.
Вы когда-нибудь задумывались о покупке высокого стола? Возможно, вам следует это сделать, ведь многие эксперты приравнивают сидение к такой вредной привычке, как курение. А некоторые исследования (и мой собственный опыт) доказывают, что положение стоя делает рабочий процесс более продуктивным.
6. Избегайте одинаковых ошибок
Когда я сам начал изучение Node. js, я постоянно сталкивался с проблемами CORS (совместное использование ресурсов между разными источниками), которых на самом деле можно было легко избежать.
Конечно, я мог не знать этого в самом начале, но со второго, с третьего раза, когда появлялась эта проблема, я должен был задуматься. В какой-то момент ты понимаешь, как фиксить подобные вещи, исходя из собственного опыта. Но чтобы сократить пропасть между нубом и экспертом, есть смысл записывать все возможные проблемы и ошибки, а также пути их решения. С этой целью я повесил в офисе доску.
7. Научитесь печатать быстрее
Нет никаких оправданий тому, что вы не умеете быстро печатать. Я учился этому сам, пусть это утомительно и, конечно, требует времени, однако это хорошая инвестиция на долгосрочную перспективу.
Кроме того, вы больше не будете злиться и разбивать клавиатуру о стол, так как количество ошибок и опечаток сократится.
8. Автоматизируйте, насколько это возможно
Мы уже поговорили о рефакторинге и документации. Но хорошая новость в том, что вы можете легко автоматизировать небольшие задачи, что весьма ценно.
Например, вы можете использовать различные инструменты для автоматического рефакторинга и тестирования кода. Также вы можете автоматизировать свою работу в качестве программиста в любой области, которую только представите. Компонент многократного использования можно легко применить еще раз на таких платформах, как Bit. UI-тестирование и анализ кода могут быть автоматизированы даже сегодня.
Ваше время слишком ценно, чтобы тратить его на бессмысленные задачи.
9. Не бойтесь просить о помощи!
Приходилось ли вам часами пытаться найти баг, о котором вы абсолютно ничего не знаете? Или, может, вам удалось исправить его спустя долгие и неуклюжие попытки.
Поздравляю, но, на мой взгляд, вам стоило обратиться за помощью.
И неважно, нашли ли вы ответ на Stack Overflow или где-либо еще.
Программистам посчастливилось быть частью сообщества в интернете, всегда готового прийти на помощь, так что не стесняйтесь и спросите кого-нибудь.
Вы также можете стать полезным, ведь вы не первый, кто столкнулся с этой проблемой, но можете стать первым и единственным, кто осмелился спросить. Остальные будут невероятно благодарны вам за то, что вы сообщили о проблеме.
И даже если вам удалось устранить баг самостоятельно, не совсем понимая, как это получилось, помните: многие проблемы часто повторяются. Поэтому лучше полностью понять причину, которая стоит за этим, так как в будущем вы снова можете с ней столкнуться.