Некоторые размышления о первой годовщине моего сайд-проекта

1656667102 nekotorye razmyshleniya o pervoj godovshhine moego sajd proekta

Вилл Абрамсон

cB9JMFKGrz6-dq-Mbdo4Naq3c4Wx3Px9FgPw
Фото Джозефа Чана на Unsplash

В этом месяце моему побочному проекту исполняется год. Это были настоящие обучающие американские горки.

По сути, сайд-проект – это то, что ты делаешь со стороны – по крайней мере, я так думал. Это проект, над которым у вас есть собственная мотивация, а не контракт.

Хотя побочные проекты могут быть самыми разными, в этой статье я расскажу о моем побочном проекте по разработке программного обеспечения. Итак начнем.

Немного предыстории

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

Это точно стало моим.

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

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

7svkd8WiU44QnpTFoIdeK1dyHwfYRpQZ3yBU
Моя живая заявка!

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

Я начал свой проект, имея за плечами ежегодный опыт разработки на Java и небольшое количество ванильного JavaScript. Моя цель была стать компетентным в React, новой модной библиотеке, о которой все всегда говорили. Теперь я один из этих людей. React – это супер круто!

Я не только достиг своей цели, но благодаря своему проекту я узнал гораздо больше:

  • Node.js: разработка моей системы.
  • Redux: библиотека управления состоянием, идеально сочетающаяся с React.
  • GraphQL: Язык запроса данных, названный новым REST.
  • ApolloClient: клиент GraphQL, облегчающий создание компонентов пользовательского интерфейса, получающих данные с помощью GraphQL. Опять же это очень хорошо сочетается с React.
  • Аутентификация/авторизация: одно из моих самых больших препятствий.
  • Дизайн базы данных: научиться создавать свою схему
  • Развертывание живой веб-приложения: еще один кошмарный вызов.
  • Бесценный проектный опыт, включая организацию своего времени и планирование развития.
  • Использование Git.
  • UI/UX дизайн: точно не моя сильная сторона.

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

почему

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

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

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

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

Вдруг ты понимаешь, что сделал что-то, чем гордишься.

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

Учитесь, создавая, не учитесь творить

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

  • Выберите проект.
  • Подумайте об идее – что-то, что вдохновит вас и что вы действительно хотите реализовать.
  • Тогда выйдите и попытайтесь сделать это.
1AMLXxCFRbN1ok27k6wOHMxvybOtiJzaNnqO

Неважно, что вы не представляете, как вы собираетесь дойти до конца. Важно только то, что вы сделали первый шаг.

Учите новые знания, когда это нужно для прогресса вашего проекта.

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

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

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

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

К примеру, я решил использовать GraphQL после того, как друг с работы посоветовал мне проверить его. Это естественно привело к изучению ApolloClient. Они идут рука об руку, особенно при использовании React. Мне очень понравилось использовать и учить оба в своем проекте.

Пусть ваш побочный проект станет платформой для обучения, экспериментов и удовольствия.

Учитесь, создавая. Поверьте, это гораздо выгоднее.

Бросьте себе вызов

HIsIHuaaGIeFyud6Hn1AvFaciCgiauOY01wA

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

Что-то сложное и сложное.

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

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

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

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

Будьте решительны и последовательны

xFc2xig0hC9So0GOHAqtUHz60QEqYIjgT3D4

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

Просто иногда так бывает.

Это может быть разочарование.

Может быть, вам захочется сдаться.

Все там были, но…

Не сдавайся!

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

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

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

Ничего невозможно научить. Нет ничего невозможного.

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

Если вы оказались у стены, вот несколько способов, которые мне подойдут:

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

Просто никогда не сдавайтесь.

Документируйте как можно больше

N4xx-eWas2lcQ35rdyFQ8etGnfLEfM5lQUEQ
Любой может быть!

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

Это действительно важно. Это то, что я только сейчас начинаю ценить и применять сам.

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

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

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

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

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

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

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

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

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

Один шаг за один раз

Желательно как можно меньше.

jQTOB2mty26uBnMoGCW1NHdXwyDbOLuy7E5O
Детские шаги

Представьте собственный проект как серию итераций. Возможно, вы находитесь на итерации 10, поэтому не беспокойтесь об итерации 100. Сосредоточьтесь на номере 11.

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

Если вы застряли, попытайтесь разбить свою итерацию. Я обнаружил, что часто застреваю, пытаясь решить слишком большую проблему.

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

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

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

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

Побочный проект дает вам уверенность в решении реальных проблем и создании реальных программ. Это бесценно!

Я не могу рекомендовать наличие дополнительного проекта.

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

Вы можете просмотреть мой недавно развернутый сторонний проект здесь и просмотреть его исходный код на GitHub. Предстоит еще долгий путь, и я приветствую советы, комментарии или взносы.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *