[Перевод] Сайд-проекты — почему это важно для разработчика
Мы в Alconost весьма любим и ценим сторонние проекты, и порой отвлекаемся на них прямо в рабочее время. Так родились бесшабашные и задорные видео о стобаксовой купюре в разных художественных стилях, о том, как сделать инфографику вирусной, об истинной цене ожидания в Интернете… У этих роликов не было заказчика — мы просто получили удовольствие, придумывая, рисуя и анимируя их. Для программистов сайд-проекты тоже имеют особое значение. Мы перевели целую статью шведского предпринимателя и разработчика Дэвида Эльбе об этом.
Я встречал сотни разработчиков. У лучших из них всегда были сторонние проекты, над которыми они колдовали по ночам. Как работодатель, я это всячески поддерживаю. Но существует немало компаний, которые запрещают подобную деятельность.
Давайте поговорим о том, почему я считаю сайд-проекты хорошей идеей, как использую их для саморазвития и на что вам стоит обращать внимание.
Личностный рост
Разработка и программирование (в частности, веб-разработка) — это быстро развивающиеся области, где придется периодически изучать нечто новое. Не поймите неправильно — вам не обязательно пробовать каждый новый Javascript-фреймворк и облачные базы для того, чтобы быть хорошим разработчиком. Я вообще за то, чтобы быть экспертом лишь в нескольких областях, с поверхностными знаниями всего остального. Если решили сосредоточиться на Django и jQuery — тем лучше для вас. Но если столкнетесь с Go, Dart, Less, Slim и Gulp, то обязательно попробуйте и их.
Такая проба может быть весьма поверхностной — буквально посмотреть пару примеров и понять, что может новая «фишка». А если появится интерес, то на этой новой «фишке» вполне можно сделать небольшой проект. Попробуйте пересобрать какое-нибудь простенькое приложение на понравившемся новом языке или фреймворке.
Сначала лабораторные тесты
Ученые не просто так проверяют новое лекарство сначала в лабораторных условиях, прежде чем дать его человеку. Все может пойти не по сценарию, даже если в теории никаких проблем не предвидится.
Работодатель должен быть вам благодарен за пробы новых инструментов в собственных проектах, а не в рабочей среде. Я видел слишком много коммерческих разработок, где все пошло не так из-за того, что разработчик захотел попробовать что-то новенькое. Иногда все работает и с этим новым MongoDB-adapter, но иногда — нет. И ни у кого не хватает опыта для того, чтобы понять, что с этим делать. Так что сначала опробуйте новинку в личном проекте, прежде чем даже подумать о ее использовании на работе.
Какой проект подойдет?
Мне нравится делать такие продукты, которые бы решали мои проблемы либо помогали кому-то еще. Это может быть небольшой ruby gem, веб-приложение, софт для Android или виджет для новых Apple Watch.
Временные рамки
Еще одна полезная вещь — временные рамки. Это работает не для всех, но мне нужно некоторое внешнее давление для завершения проекта в разумный срок. Поэтому в первый день каждого месяца я сворачиваю любую затянувшуюся задачу и начинаю новую. Это не значит, что я больше никогда к ней не вернусь. Просто любой проект должен быть полезным и актуальным.
Сторонние проекты должны радовать
Помните, что частные проекты должны радовать, и это важно. Новая технология не всегда любопытна сама по себе, поэтому не заморачивайтесь с тем, что решает чью-то проблему, но не интересно лично вам.
Иначе такое увлечение будет ощущаться как работа, с ничтожной пользой для реального дела. Если не хватает средств — обсудите с работодателем запуск проекта в формате фриланса. Или в качестве продукта с перспективой продажи, что только повысит вашу ценность в глазах руководства.
Сделайте проект общедоступным
Всерьез рассмотрите возможность открыть исходный код (Open Source). Так вы сможете узнать еще больше. И нет, это не помешает заработать в будущем.
Что? Заработать? Уже интересно.
Сторонний проект не должен быть во имя денег. Разработчики зарабатывают достаточно, чтобы не подрабатывать на стороне. Вместо этого, сфокусируйтесь на решении проблемы и познании нового.
Ведь всегда приятно получить неожиданную оплату за созданный для себя продукт. Помню свою первую продажу в App Store — это было простенькое приложение для ведения счета местной хоккейной команды. Было странно осознавать, что кто-то хочет потратить деньги на мой “домашний” проект.
Я мог бы много написать о заработке, но лучше просто сфокусироваться на решении проблемы. Тогда и продавать будет проще, если появится необходимость.
Порой оно не работает
Помните, я говорил, что лучащаяся новизной технология — не всегда хорошая идея? Иногда подобные задачи занимают времени намного больше ожидаемого, либо навевают тоску через пару недель. Это нормально. Именно поэтому такая деятельность второстепенна и направлена только на себя. Отбросьте неинтересное и займитесь чем-то еще. В любом случае, у вас будет аргумент при обсуждении нового подхода или уже знакомой библиотеки. Все будут благодарны за небольшой частный тест-драйв, который может сберечь уйму времени в реальном проекте.
Помогите кому-нибудь с его задачей
Разбор чужого кода и исправление ошибок позволяет многому научиться. Githubs trending repos — отличное место для поиска готовых перспективных решений.
А каков ваш опыт с сайд-проектами?
Статья переведена специалистами Alconost Translations. Кстати, мы уже переводили популярную статью Дэвида о восьми различных типах программистов — советуем ознакомиться!