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

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

1. Придерживайтесь плана.

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

Я начал с React для интерфейса, как и предполагал. Затем я захотел хранить данные клиента, поэтому решил использовать MongoDB вместе с Meteor, фреймворком JavaScript, предназначенным для связи клиентской части со стороной сервера. Но MongoDB не предлагала бесплатные серверы, поэтому я попытался использовать Google Firestore, облачное хранилище от Firebase, платформы разработки, созданной Google. Но чтобы сохранить конфиденциальность данных между пользователями, я хотел использовать Google OAuth 2.0 для проверки идентификации.

«Подожди. Я думал, вы хотите просто изучить React и построить таймер? »

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

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

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

2. Исследования Исследования Исследования.

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

Я не знал, что Meteor мне было довольно сложно интегрировать с другими функциями, такими как Google Firestore и Google OAuth 2.0. Фактически, Meteor был причиной того, что мой конечный продукт даже не стал надстройкой Mozilla. В Интернете было много сложностей и мало ресурсов, в которых продукты Meteor работали как надстройки, и в результате мне пришлось отказаться от этого плана и превратить его в одностраничный веб-сайт.

Теперь вы, вероятно, думаете: «Почему вы даже использовали Meteor вместо Firebase, когда собирались интегрировать Firestore?» Все это испытание началось, потому что я хотел придерживаться Meteor, но использовать бесплатный сервер, который должен был быть Firestore.

По правде говоря, я не думал о хранении баз данных или о хостинге серверов, пока не стало слишком поздно. Не потому, что я отложил это как более позднюю проблему; Я просто не знал, что должен это делать. Для тех, кто думает, что это такая очевидная вещь, это не так очевидно для тех, кто только начинает разрабатывать свои собственные приложения. Школа научила меня алгоритмам, соглашениям о коде и передовым методам кодирования, но на самом деле никогда не рассказывала мне о процессе разработки и развертывания приложения.

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

3. Просто собери эту чертову штуку!

Просто. Получать. Что-то. Выполнено.

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

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

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

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