ТОП-разработчики о пользе программирования «для себя»

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

По статистике сайта Stack Overflow 91,7% программистов “кодят” не только по работе, но и для хобби. Обычно это собственные проекты или open source. Мы поговорили с разработчиками известных компаний и выяснили почему стоит программировать для себя и как сделать мир лучше, участвуя в проектах с открытым исходным кодом.

Наличие собственных идей - показатель профессионализма

Матвей Кукуй, бывший сотрудник Kaspersky Lab, фрилансер:

“По-моему наличие собственных идей и отличает профессионала. Есть классная книжка Пола Грэма "Hackers & Painters", как раз в основном про то, что нельзя позволять себе "костенеть".
Самым интересный мой хобби-проект - это распределенный движок для создания сервисов без единого центра. Такой клубок из криптографии, peer-to-peer и романтических идей о свободном интернете. Он сыграл мне хорошую службу, на его основе я сделал диплом в университете, а потом переключился на более реалистичные идеи.
Из open source советую выбирать проекты, которые интересны лично вам, желательно не очень большие. Я активно слежу за Rust, а вследствие этого за Racer, RustDT, и т. д. 
Насчёт собственных идей, как улучшить open source проекты, основная - попытаться добраться до bleeding edge (технология, которая еще не готова  к публичному использованию, так как не была достаточно тестирована). Там всегда есть место для новичков и разобраться можно достаточно быстро. Например, еще год назад можно было сделать один из первых GUI для Docker. Большинство же стремится участвовать в проектах, которые доживают свои дни и теряют хакерский дух, приобретая черты неповоротливых монстров. Например, в Zend. Хотя, от таких штук “тащатся” системные интеграторы, это может помочь в карьере, но фана будет не много.”

Практика никогда не будет лишней

Михаил Ерофеев, data engineer в Яндекс:

“Иногда у меня появляются идеи, которые, как я в то время уверен, “стрельнут” в супер классный сервис, и я их программирую один или с друзьями. Самый интересный и большой опыт был год назад, мы сделали с тремя товарищами прототип пользовательского сервиса, но началось много возни со стартап-акселераторами, обоснованиями бизнес-идеи, консультациями с менторами, и выяснилось, что: 
1) идея так себе;
2) делать стартап и вести команду не тоже самое, что просто программировать. 

Ну и после этого мы как-то “расползлись”. Другие идеи тоже приходят в подвешенное состояние со временем. При этом иметь такие идеи и слепо верить в них очень удобно ради практики - ты мотивированно вкалываешь, делаешь код, который собираешься запускать в продакшн, смотришь во все места от хостинга до верстки. Потом такие поверхностные знания пригодятся на работе, в другом стартапе, или при разработке сервиса для компании. Многие компании очень позитивно относятся к full stack разработчикам (я сейчас говорю не про тех, кто на LAMP поднимает сайты-визитки и интернет-магазины, а про серьезные проекты).
Есть очень позитивный опыт с хакатонами, когда народ объединяется на выходные и 48 часов кодит какую-нибудь идею. Хакатоны полезны тем, что за супер-короткое время можно овладеть технологиями, зарядиться мотивацией к своему основному проекту, пообщаться, сделать прикольную рабочую штуку, выиграть ценные призы. 

Что касается open sourse проектов, то я сам немножко “контрибьютил” в Apache Flink. Выбирать надо тот проект, который подходит к специализации, который используешь в своих проектах. Участвовать в open source очень полезно, так как можно насмотреться на различные подходы к коду, правильные паттерны, получить офферы от компаний, использующих эти проекты.
Даже без цели развивать код совместно, полезно выкладывать код на GitHub в публичные репозитории - код не потеряется, может быть кому-то будет полезен, работодатель может почитать. Я выкладываю много своего не секретного кода и интересные “домашки”. 

Я с нетерпением жду повсеместного появления роботизированных автомобилей и рынка, который они породят. Самая сложная штука там - автопилот, который может привести из точки А в Б, вокруг этого можно делать сервисы логистики, экскурсий, планирования путешествий, чуть сложнее - оптимизаций взаимодействия группы машин, оптимизаций светофоров, трафика, мобильный офис, умные системы управления. Еще мне очень нравятся электронные правительства, "электронная демократия". Можно делать прототипы без попытки внедрения, и с ними приходить в компании, которые хотят этим заниматься серьезно с ресурсами. На одном из хакатонов мы делали календарь для синхронизации задач между землянами и марсианскими колонизаторами, там сложность в том, что дни на Марсе длиннее, чем на Земле. Простая и понятная задача, которую обязательно нужно будет решать через несколько десятков лет. 

Из конкретных инфраструктурных задач мне сейчас не хватает простого открытого тула, который по запросу создаст для меня вычислительный кластер в облаке, зальет на него мои большие данные, я пару часиков его поиспользую, заплачу облаку 5 баксов и “грохну” кластер до следующего требования. Если кто-то сделает это раньше, чем я, то будет круто. Работы там на 5 вечеров. А, вообще, на GitHub есть раздел с продвигаемыми стартующими проектами, очень легко искать.”

Коллективная разработка помогает подсмотреть лучшие практики и тренды

Максим Попов, PHP-developer, работает в Mail.Ru Group:

Нужно постоянно развиваться, коллективная разработка - хороший способ подсмотреть лучшие практики и тренды в разработке ПО. Здесь лучше начать с малого. Достаточно просто открыть issue tracker какого-нибудь известного проекта, изучить его стандарты к разработке, исправить какой-то баг или сделать небольшое улучшение, запросить pull request и, если все сделано правильно, - его примут. Так все и начинается. Сам я достаточно пассивен в этом плане, последнее время начал помогать проекту Yii - отвечаю на вопросы в тикетах, вношу мелкие исправления.”

Программирование для себя - это весело

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

Сотрудник одной из IT-компаний Санкт-Петербурга, пожелавший остаться анонимным:

Я пишу модификации для World of Tanks (python, flash, C#). Сейчас там более 2 млн MAU (активных пользователей в месяц). Проект живет активной жизнью.”

Участие в open source проектах - это возможность сделать мир лучше и помочь себе в трудоустройстве

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

Евгений Авсиевич, разработчик команды ВКонтакте:

Программирую для себя, но обычно эти вещи никак не связанны с задачами из реального мира. Работа в ВКонтакте приносит удовлетворение в этом плане, тут мыслей о пользователях хватает. Вообще люблю порешать задачки с Projecteuler.net. Есть масса интересных open source проектов. В качестве примера могу привести Fresco. Очень интересная библиотека для загрузки изображений на Android, разрабатывается компанией Facebook. Сейчас она довольно сырая, поэтому у всех есть шанс существенно ее улучшить. Кроме того, активное участие в таких крупных проектах будет являться преимуществом при трудоустройстве в крупные IT-компании.

Не писать ничего для себя - это стыдно:)

В ходе интервью только один из собеседников сказал, что не разрабатывает ничего для себя: “Честно говоря, я ничего дома не пишу. Хватает работы и в плане исследований, и в реализации концепций, о которых ранее прочитал. Дома максимум - чтение статей, обзоров, подходов и т.д. Сейчас я занимаю должность senior .NET developer в компании … в Амстердаме, но не надо на меня ссылаться, мне стыдно что я ничего не пишу дома.”

Тем, кто хочет стать программистом, рекомендуем профессию «Веб-разработчик».

развитиеopen source
Нашли ошибку в тексте? Напишите нам.
Спасибо,
что читаете наш блог!