Удовлетворяйте свои амбиции на проектах open source
(В оригинале - Fulfill Your Ambitions with Open Source)
C высокой долей вероятности вы разрабатываете совсем не те программы, которые бы вам хотелось разрабатывать. Например, вы можете работать на проекте для крупной страховой компании, а хотеть при этом работать где-нибудь в Google, Apple, Microsoft или начать свой собственный стартап. Однако вы не сможете устроиться на работу туда, куда вы хотите, не имея опыта разработки в этой области.
К счастью, у этой проблемы есть решение: open source. Существуют тысячи проектов с открытым исходным кодом в самых разнообразных областях. Если вам нравится идея разрабатывать операционные системы, выбирайте любой из дюжины доступных проектов операционных систем. Если вы хотите работать над ПО обработки звука, анимации, криптографии, игр, как индивидуальных, так и онлайновых много пользовательских, или любым другим типом ПО, вы практически наверняка найдете как минимум один проект с открытым кодом, посвященный именно этой теме.
Разумеется, за все придется платить. В данном случае платить вы будете своим свободным временем. Вы ведь не можете разрабатывать open source проект в рабочее время – вы ведь должны выполнять свои прямые обязанности. А материальное вознаграждение за участие в open source проекте получают очень мало людей. У вас должно быть желание потратить часть своего личного времени. Чем больше вы будете работать над open source проектом, тем быстрее вы сможете реализовать ваши настоящие амбиции в программировании. При этом важно учитывать юридические детали вашего контракта с работодателем – там может быть пункт, запрещающий вам писать ПО определенной тематики даже в свободное время. А также вам нужно быть осторожным, чтобы нигде не нарушить закон в связи с авторскими правами, патентами, торговыми марками и промышленными секретами.
Open source предоставляет неограниченные возможности для мотивированного программиста. Во-первых, вы начнете общаться с теми, кто уже занимается тем, что вам интересно, и сможете многому научиться, изучая их код. Во-вторых, вы сами начнете помещать свои идеи и код в проект. Не каждая ваша идея будет принята, но какие-то из них будут. А вы получите новый опыт, работая над проблемами проекта. И в-третьих, вы встретите людей с теми же самыми интересами, что и у вас – такая open source дружба может длиться всю жизнь. И в-четвертых, когда вы станете компетентным участником проекта, вы сможете внести свой вклад в технологию, для вас интересную.
Начать работать с open source проектом достаточно несложно. Документация по необходимым инструментам (системы контроля версий, редакторы, языки программирования, компиляторы) обычно присутствует в изобилии. Найдите интересный для вас проект и изучите используемый в нем инструментарий. Документации непосредственно о самом проекте обычно крайне мало, но это не играет большой роли. Ведь лучший способ чему-то научиться – это изучить код самостоятельно. Если вы хотите присоединиться к проекту, вы можете предложить помощь в составлении документации. Или в написании тестовых сценариев. И хотя это может звучать не слишком захватывающе, правда в том, что написание тестовых сценариев для чьего-то чужого кода – один из самых быстрых способов обучиться чему-то новому. Просто пишите тестовые сценарии. Хорошие тестовые сценарии. Находите ошибки. Предлагайте исправления. Ищите друзей. Работайте над интересным для вас проектом. И удовлетворяйте свои амбиции.
Автор оригинала - Richard Monson-Haefel