Книга: Программист-фанатик
Совет 41 Публикуй свой код
Совет 41
Публикуй свой код
Представь, насколько упростился бы твой поиск работы, если бы фирмы уже пользовались написанными тобой программами. Ты мог бы говорить: «О, у вас используется система Nifty++? Я могу помочь с ее поддержкой, ведь именно я ее написал». И это бы все меняло. Лица, проводящие собеседования, и специалисты по комплектации штата помнили бы тебя. Что тебе и нужно.
Всего десять лет назад этот прекрасно звучащий сценарий имел не так уж много шансов на реализацию. Сначала нужно было поработать на производителя коммерческого программного обеспечения, чтобы твое имя можно было связать с продуктом, в разработке которого ты участвовал. Но все изменилось. Для разработки популярной программы больше не нужно работать на Больших парней.
Появился еще один вариант: открытый исходный код. Программы с открытым исходным кодом получили повсеместное распространение. Когда в связанной с информационными технологиями фирме дело доходит до нового проекта, старый спор создать или купить теперь звучит как создать, купить или, может быть, загрузить. Под лицензией с открытым исходным кодом выходят если не целые приложения, то платформы от небольших библиотек до полнофункциональных контейнеров приложений, которые фактически становятся стандартами.
И те, кто разрабатывает эти программы, по большей части такие же люди, как и ты. Они сидят дома по вечерам и выходным, для собственного удовольствия создавая программы. Разумеется, порой за созданием и поддержкой продукции с открытым исходным кодом стоят корпорации, производящие программное обеспечение. Но большую часть работы выполняют индивидуальные разработчики в качестве хобби.
Хотя многие из тех, кто вносит свой вклад в проекты, просто развлекаются и упражняются, для участия есть и вполне реальные стимулы. Это возможность подняться по ступенькам социальной лестницы сообщества. Здесь люди делают себе имя. Зарабатывают репутацию в отрасли. Даже не имея такой цели, в процессе работы люди рекламируют себя.
Любой может пользоваться средой Rails. Но только немногие могут похвастаться, что являются ее частью.
Работа над программами с открытым исходным кодом не только дает возможность создать себе имя, но и демонстрирует твою увлеченность данной областью деятельности. Даже если фирма, куда ты пытаешься устроиться на работу, не слышала о твоей программе, сам факт ее создания и выпуска отличает тебя от других. Подумай сам, если бы тебе нужно было нанять разработчика программного обеспечения, предпочел бы ты человека, который отсиживает на работе с девяти до пяти, а потом идет домой смотреть телевизор? Или же ты обратил бы внимание на того, кто влюблен в программирование настолько, что посвящает ему часы после работы и даже выходные дни?
Вклад в проекты с открытым исходным кодом позволяет продемонстрировать свои способности. Упоминание о коде для реального проекта будет смотреться в твоем резюме куда внушительнее, чем просто слова о знакомстве с технологией. Любой может упомянуть в резюме Rails или Nant. Но мало кто в состоянии похвастаться своим вкладом в разработку Rails или Nant.
Руководство проектом с открытым исходным кодом позволяет показать не только свои технические способности. Нужны еще и навыки руководителя, ответственность за выход версий, умение вести документацию и поддерживать продукт и сообщество для сплочения вокруг дела, к которому ты прилагаешь усилия. И если ты в состоянии со всем этим успешно справиться — в свободное время, в качестве хобби, — значит ты удивительным образом отличаешься от множества людей, претендующих на подобную работу. Большинство компаний не в состоянии заставить своих разработчиков заниматься всем этим и делать это хорошо даже при условии оплаты их труда. Более того, некоторые разработчики не справляются даже с частью подобных задач. Демонстрация того, что ты не только можешь делать эту работу, но и настолько увлечен, что готов заниматься ею даже бесплатно, говорит о твоей потрясающей инициативности.
Создав нечто действительно полезное, ты можешь даже стать знаменитым. Это может быть известность в узких технических кругах, например среди людей, связанных с Rails. А если повезет, то ты прославишься и за пределами сообщества компьютерных фанатиков, как Линус Торвальдс. В любом случае, публикация собственного кода сделает тебя более известным. Если слава означает, что множество людей знают, кто ты такой, значит, с каждым новым человеком, который о тебе узнал, ты становишься более знаменитым. А сообщество разработчиков программ с открытым исходным кодом представляет собой всемирную сеть людей, которые в процессе поиска программ в Сети могут обнаружить твое творение, установить его и начать использовать. В этом случае они узнают о тебе, а дальнейшее распространение твоей программы поспособствует распространению твоего имени и твоей репутации. Ведь это и есть суть рекламы. А это именно то, что тебе нужно.
Действуй!
1. На конференциях Стюарт Халловей[20] проводит семинар, который называется «Refactotum». Если будет возможность принять в нем участие, крайне рекомендую это сделать. Его суть состоит в следующем. Нужно взять фрагмент программы с открытым исходным кодом, снабженный модульными тестами. Запустить эти тесты в анализаторе. Определить наименее протестированную часть системы и написать тесты для расширения покрытия. Непроверенный код часто бывает попросту непригоден для тестирования. Переработай его, сделав более пригодным к тестированию. Отправь свои исправления в качестве заплатки к программе.
Все это измеримо и может быть проделано достаточно быстро. Ты обязательно должен попытаться.
- Совет 33 Восприятие и репутация
- Совет 34 Проводник в неведомое
- Совет 35 Велик могучим русский языка
- Совет 36 Будь рядом
- Совет 37 Разговор с бизнесменом
- Совет 38 Меняй мир
- Совет 39 Пусть твой голос услышат
- Совет 40 Раскрути свой бренд
- Совет 41 Публикуй свой код
- Совет 42 Незаурядность
- Совет 43 Заводи знакомства
- Совет 41 Публикуй свой код
- 11.2. СВОЙСТВА ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
- Дополнительные национальные кодовые страницы и порядки сортировки
- Глава 5 Агрессивные формы кода и борьба с ними
- Стиль написания исходного кода
- 1.4. Кодирование информации
- 1.4.1. Кодирование во время выполнения
- Три способа кодирования звука
- Листинг 15.11. Код для загрузки файла с Web-сервера
- 4. Свойства унарных операций
- 3. Свойства бинарных операций
- 2. Пример создания базового отношения в записи на псевдокоде