Спойлер: работа до поздней ночи не входит в их число

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

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

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

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

1. Установите для себя цели и пределы

Еще до того, как вы начнете писать код, решите, какие именно функции будет иметь ваш проект. Вы хотите создать простой калькулятор HTML + CSS + JS? Хорошо, какие арифметические операции он сможет выполнять? Запишите это где-нибудь.

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

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

2. Начните с эскиза

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

Буквально просто набросок на бумаге - это то, что вам нужно, но если вы хотите получить более конкретное представление, подобное прототипу, вы можете выбрать Figma или AdobeXD. Вы можете искать шаблоны компонентов в Интернете, и они хорошо подходят для быстрого создания макета, не рисуя все с нуля. Рисование всего с нуля также сделает вашу жизнь немного сложнее, если на самом деле кодировать ее так, чтобы она выглядела так же.

Если визуальные эффекты отсутствуют, рекомендуется приступить к моделированию данных. Если это API, какой у него будет интерфейс или конечные точки? Как выглядит результат? Это кодировка в формате JSON или просто текст?

3. Составьте план и придерживайтесь своего t

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

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

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

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

4. Используйте Timeboxing для ваших сессий.

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

Ежедневно это означало, что я буду работать над своим любимым проектом, скажем, с 20:00. до 22:00 и не более того. Независимо от прогресса, мне нужно будет остановиться в 22:00. Это помогло мне двумя способами. Во-первых, мой и без того уставший боевой дух после обычного рабочего дня с 9 до 5 поднимался всякий раз, когда я видел, что у меня не хватает времени. Во-вторых, это не позволяло мне работать допоздна с ужасной производительностью, так как я бы уже так устал. Я много делал это для этой конкретной игры с поиском слов, и я очень сожалею об этом.

5. Сделайте это общедоступным. Покажи это людям

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

Помните, что даже несмотря на то, что этот проект может быть очень простым, вы все равно можете использовать его, чтобы показать, на что вы способны, на собеседовании при приеме на работу или в своем личном портфолио. Сказать, что вы что-то сделали, - это хорошо, но сказать: «Да, вы можете увидеть это на ‹your-pet-project› .com» или «Вы можете скачать это в App Store. Вот ссылка »выглядит более впечатляюще.

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

6. Используйте контроль версий.

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

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

7. Управляйте своими ожиданиями

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

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

Заключение

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