Идеи бесполезны, пока вы не выбросите их из головы и не увидите, на что они способны.

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

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

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

Вдобавок ко всему, кодирование в нерабочее время делает мою работу в течение дня более приятной. Это почему?

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

Так что же такого особенного в сторонних проектах, которые так… возбуждает?

Невероятные возможности обучения

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

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

Ваше творчество становится диким

Прелесть сторонних проектов в том, что в них нет ограничений! Вы можете построить все, что душе угодно. Вы хотите выучить новый язык программирования? Идите вперед и создайте POC. Хотите немного подзаработать на стороне? Обязательно попробуйте свои силы в создании сайта электронной коммерции.

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

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

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

У вас есть шанс взять на себя дополнительную ответственность

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

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

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

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

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

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

Принесите дополнительный опыт вашей повседневной работе

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

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

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

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

Вы можете внести свой вклад в сообщество разработчиков ПО с открытым исходным кодом

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

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

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

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

Заключение

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

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

Вы ограничены только тем, что можете создать своим творчеством, так что выходите, напишите код и сделайте его открытым!

Заинтересованы в моих сторонних проектах? Вот мой GitHub!