Я только начал работать год назад, и я хочу присоединиться к проекту с открытым исходным кодом по тем же причинам, что и все остальные: помогать создавать что-то полезное и развивать свои навыки дальше.
Моя проблема в том, что я не знаю, как найти проект, в который я буду вписываться.
Как мне найти проект для начинающих? Какие атрибуты я должен искать? Каковы предупреждающие признаки того, что проект может не подходить? Существуют ли какие-либо инструменты, чтобы помочь людям с проектами с открытым исходным кодом?
Там есть аналогичный вопрос здесь , но этот вопрос имеет отношение к занятости и ограничивается PHP / Drupal.
Ответы:
Мой первый вклад с открытым исходным кодом был для библиотеки, которую я ранее использовал (и без этого сильно пострадал бы) в предыдущем платном проекте. Во время первого использования я обнаружил ошибку в коде, поэтому создал патч, присоединился к проекту и отправил его на рассмотрение.
Спустя 8 месяцев, когда у меня появилось немного свободного времени, я решил, что верну (и поработаю над своими навыками разработки), внеся больше в проект. Поэтому я клонировал репозиторий и начал знакомиться с базой кода. После нескольких недель отправки небольших исправлений исправлений в кодовую базу и отслеживания запросов функций, я взял запрос функций, чтобы добавить довольно существенный модуль в проект.
Поскольку генерация множества отдельных исправлений исправлений довольно утомительна для любой существенной разработки, я клонировал репозиторий в ветку на git hub и начал отбрасывать код. Через несколько недель и несколько тысяч строк кода мы с руководителем проекта работали над интеграцией и тестированием моих исправлений в библиотеке таким образом, чтобы это согласовывалось с остальной базой кода.
Это был бесценный процесс, из которого я многому научился:
Этот конкретный проект был основан на создании и декодировании сетевых пакетов на всех уровнях сетевых протоколов. Я лично заинтересован в создании сетей более низкого уровня, поэтому было здорово поговорить с другим разработчиком, имеющим общий интерес и знания в этой области.
Если вы хотите просто промочить ноги: найдите проект, который вы уже используете; клонировать хранилище; и начните видеть, можете ли вы исправить некоторые ошибки и / или добавить некоторые юнит-тесты. Кажется пугающим смотреть на чужую кодовую базу свежими глазами, но это чрезвычайно ценный навык для изучения. Отправьте несколько патчей. Сначала вы можете ожидать, что ваш код будет тщательно проверен. Не беспокойтесь об этом, это нормальная часть процесса, чтобы завоевать доверие администраторов проекта.
После создания базы с проектами администраторы начинают искать больше обязанностей, таких как предложение новых функций или просьба быть назначенными для реализации запросов функций.
Если вы не можете найти уже существующий проект в одной из основных сетей репозиториев с открытым исходным кодом (github, sourceforge, google code), подумайте о приложении, которое вы действительно хотели бы использовать, но которое еще не существует, и запустите свое собственное.
Будьте готовы смириться и ожидать отклонения работы в пользу дальнейших пересмотров. Миф о том, что любой может добавить код в проект с открытым исходным кодом, полностью ложен. Между вами всегда есть привратник и принудительный доступ. Чем лучше ваш код, тем меньше он будет тщательно проверяться в долгосрочной перспективе, поскольку вы получаете доверие администраторов проекта. Если это ваш проект, вы будете этим привратником.
Обновить:
Я просто подумал об этом и понял, что не удосужился упомянуть, на какой проект ссылаются многие мои ответы. Для тех, кто хочет знать, это SharpPcap . Ведущий разработчик Крис Морган очень профессионален и точен. Он чертовски хорошо справляется с управлением проектом и многому научил меня, что нужно для разработки проекта OSS.
Из-за личных временных ограничений я не смог добавить код более года, но я все еще пытаюсь дать ответ, скрываясь за переполнением стека и время от времени отвечая на вопросы о SharpPcap.
источник
Вот что я предлагаю сделать, чтобы найти идеальное соответствие:
Если у вас есть проект с открытым исходным кодом, который вы уже используете, знаете и заботитесь о нем, он должен стать вашим первым кандидатом. В противном случае подумайте, что бы вы хотели сделать в целом, и найдите проект в этой области.
Когда вы нашли потенциальный проект, не спешите в него. Попробуйте использовать это самостоятельно. Это так хорошо в действии, как казалось из описания и обзоров? Если нет, это не полный шоу-стопор; Может быть, это возможность для вас, чтобы прыгнуть и действительно изменить ситуацию. Ведь никому не нужен другой разработчик для идеального продукта. Но это даст вам важную информацию о том, хотите ли вы участвовать в этом проекте, в то время как вы получите непосредственный опыт работы с новыми технологиями в интересующей вас области.
Также, прежде чем начинать тратить слишком много времени на проект и изучать его входы и выходы, подумайте о том, чтобы побродить в списках рассылки проекта, на форумах и даже в системе отслеживания ошибок в течение нескольких недель. Если вы начнете вносить свой вклад в проект на регулярной основе, вы проведете там много времени.
Выясните: вам нравится там гулять, или это для вас затягивание? Чувствуется ли, что у этого проекта хорошее и энергичное сообщество, или он медленно умирает? Кажется, что основные люди там поощряют и наставляют новичков, или вы будете самостоятельно?
Выполните эти шаги для нескольких проектов, потенциально в разных областях, и вы с меньшей вероятностью испытаете разочарование, которое случится, когда вы присоединитесь к неправильной команде. Такой опыт может потенциально отговорить вас от повторения в будущем.
Еще несколько мыслей:
Если проект, который вас действительно интересует, является высококлассным проектом с большим количеством разработчиков и активностью вокруг него, вам, вероятно, будет нелегко установить там достаточную репутацию, чтобы получить, скажем, права на коммит или интересную роль в сообществе. В этом случае рассмотрите возможность присоединения к связанному побочному проекту с меньшей видимостью. Например, вместо того, чтобы пытаться внести свой вклад в jQuery, попробуйте найти плагин jQuery, который вам подойдет. Позже вы можете рассмотреть "движение вверх".
Если вам нравится проект, но вас пугает его размер, сложность или требования к качеству кода, подумайте о том, чтобы начать с вспомогательных ролей, таких как тестирование, ведение документации или проверка отчетов об ошибках. Если вы спросите в списке рассылки проекта, какая помощь им нужна больше всего, они будут более чем рады помочь вам. :)
Таким образом, вы изучите проект и создадите там свою репутацию, внося в него гораздо больший вклад, чем если бы вы начали отправлять нестандартные патчи, которые будут отклоняться несколько раз, пока они не будут готовы.
Последнее и самое важное: если вас обожгут в одном месте, двигайтесь дальше; не сдавайся
Надеюсь, это поможет.
источник
Я настоятельно рекомендую вам найти проект с открытым исходным кодом, который вызывает у вас искренний интерес и которым вы активно пользуетесь .
Причина проста: это делает разницу между рутиной и хобби.
Посмотрите на свой компьютер. Какое программное обеспечение вы поставили на него, который является открытым исходным кодом? Предположение может быть Chrome или Firefox, или, возможно, Open Office или клиент Instant Messenger. Они идеальны или есть какая-то крошечная вещь, которую вы хотели бы изменить, если бы могли?
Если есть, то сейчас самое время что-то с этим сделать.
источник
Я бы предложил найти (или запустить) проект, как это делали люди годами, начать использовать программное обеспечение с открытым исходным кодом для выполнения каких-либо задач. Это может показаться вам тривиальным, даже, может быть, слишком упрощенным. Тем не менее, действительно сложно описать удовлетворение от использования чего-либо, поиска ошибки, получения исходного кода и его исправления. Или, возможно, изменить его так, чтобы он работал так, как вы хотите, чтобы он работал.
Кроме того, не просто взломать ради "участия". 95% моих патчей к ядру Linux никогда не увидят свет, я точно знаю , что никто не захочет их, кроме меня, и я, вероятно, буду вынужден пройти психиатрическую экспертизу, если какой-нибудь другой компетентный хакер ядра когда-либо увидит их. Но я все еще наслаждаюсь моей реализацией,
piglatin_printk()
которая началась как кляп 1 апреля несколько лет назад :)В то время как да, ваш код и ваш мыслительный процесс перед многими другими компетентными людьми бесценны, так же как учиться общаться и сотрудничать. Сольный проект - отличный способ показать вам, чего не следует делать. Подсказка, это нечто большее, чем просто использование программного обеспечения для контроля версий, списков рассылки и системы отслеживания ошибок.
Для начала я советую сначала покопаться в Ohloh, чтобы найти программное обеспечение, которое вам может быть интересно использовать . Скачай, построй, играй с этим. Тогда иди что-нибудь еще. В конце концов вы захотите что-то улучшить или поймете, что у вас есть желание реализовать что-то совершенно иначе, чем вы нашли.
Другая вещь, которая помогает, - это работать в открытой дружеской компании. Моя компания широко использует Xen, поэтому у меня нет проблем с поиском интересных ошибок и их исправлением, так как в любом случае нам нужно будет это сделать. Они также не против сотрудников, участвующих в таких вещах, как RFC и проекты спецификаций, поскольку в конечном итоге мы будем использовать результат.
источник
OpenHatch был создан специально для этого.
Цитировать:
Вы можете просматривать проекты по типу, технологии, уровню квалификации и т. Д. И находить то, что соответствует вашему уровню.
источник
Одна вещь, которую я неоднократно замечал, когда речь заходит о людях, желающих начать разработку с открытым исходным кодом, заключается в том, что они поражены огромной сложностью и масштабностью крупных проектов. Я столкнулся с той же проблемой пару лет назад, и, исходя из моего опыта, лучше не смотреть на крупные проекты сразу.
Потратив некоторое время на просмотр проектов, которые мне могут понравиться, я понял, что они все еще были вне моей досягаемости, а затем начал работать над очень маленькими проектами самостоятельно. Я просто хочу выпустить код на Github, независимо от того, действительно ли он актуален или другие люди начнут его использовать. В конце концов, люди могут начать интересоваться тем, что вы делаете. Даже в противном случае вы приобретете уверенность и техническую способность постепенно переходить к более крупным и популярным проектам.
источник
Специально для этого существует новый веб-сайт под названием « Код 52», который поощряет новых разработчиков подключаться к открытому исходному коду , начиная новый проект OSS каждую неделю.
Идея состоит в том, что это будет казаться намного менее пугающим для людей, которые никогда не были вовлечены в open source прежде, и, надеюсь, будут чувствовать себя более склонными к участию в других проектах OSS.
источник
Я рекомендую прочитать: http://open-advice.org/ .
Он направлен на помощь тем, кто создает и поддерживает сообщества, и тем, кто не уверен, к какому из них они хотят присоединиться или как это сделать.
Если это не удастся, найдите проект, у которого есть задание, которое резонирует с вами, или раскошелитесь и внесите свой вклад в проект, который уже полезен для вас.
Удачи.
источник
Когда я начинал, я искал в Интернете варианты, и оказалось, что сложно найти что-то, что вы можете потрогать как начинающий.
В некоторые проекты трудно внести свой вклад не потому, что они слишком продвинуты, а потому, что сообщество не приветствует. Так что не падайте духом, когда вы врезаетесь в стену.
Во время поиска я решил составить список из 10 проектов с открытым исходным кодом, которые новички могут начать поддерживать без особых стрессовых процессов. Вот ссылка для использования:
Десять проектов для начинающих, чтобы поддержать и учиться у
Я надеюсь, что вы найдете это полезным, и вы всегда можете добавить больше, если найдете интересные!
источник
Предлагаю начать проект самостоятельно на интересующую вас тему.
Многому можно научиться, работая над проектом в целом. Не нужно видеть, как кто-то еще кодирует, чтобы научиться кодировать лучше. И иногда вы действительно увидите, что не следует делать, поскольку другие люди зачастую не более опытны, чем вы.
Обычно это помогает увидеть чужой код, но вы встретите чужой код в своем собственном проекте только через библиотеки и компоненты, которые вы используете.
Опыт научит вас, что такое хорошая и плохая практика.
источник
Я владелец проекта в Google Code и ищу авторов. (Однако я не буду злоупотреблять этим ответом для рекламы.) Поэтому мое мнение может быть интересным для вас.
Сначала вам нужно выяснить, что вас интересует. Затем приобретите некоторый опыт в некоторых областях, связанных с вашими интересами. Затем найдите проект, где ваши знания востребованы и необходимы.
Чем меньше проект, тем меньше участников уже есть, тем выше шансы на то, что участники будут разыскиваться, и вы сможете напрямую связаться с авторами / владельцами проекта. Скажите им: а) каков ваш опыт, б) где вы видите, что он может быть применен в проекте в) чего вы думаете, что можете достичь.
Помните: просто знание одного или двух основных языков программирования - это не опыт.
источник