Разве плохо присоединяться к проектам с открытым исходным кодом как любитель?

17

Я думал около шести месяцев, что должен присоединиться к проекту с открытым исходным кодом для iPhone или iPad, чтобы отточить свои навыки в Objective-C, но каждый раз, когда я делаю это, я вижу тысячи строк кода в огромных проектах, которые я в конечном итоге убедить себя, я никогда не пойму. Я всегда думаю, что мои коммиты просто станут хлопотами для администраторов проекта и более старших участников, поэтому я всегда отступаю в последнюю секунду.

По сути, мой вопрос заключается в том, является ли неприятность, когда опытный программист со средним опытом присоединяется к проекту с открытым исходным кодом?

esqew
источник
1
Ответ Маке является более исчерпывающим, но краткий ответ на ваш ободренный вопрос: нет.
Крис Браун
1
@ChrisBrowne: Хороший вопрос. Я отредактировал свой ответ, чтобы соответствовать. :)
Macke

Ответы:

15

Нет, это не так.

Если кодовая база проектов, на которые вы смотрите, слишком устрашающая, подумайте:

  • Выбор (даже) меньшего проекта для работы.
  • Выберите меньшее задание в проекте:
    • Напишите пример / учебник / демо для чего-то
    • Обновление и исправление документации (все проекты, ОС или нет, нужны лучшие документы)
    • Исправление многих низкоприоритетных, но легко исправляемых ошибок (отличное знакомство с кодом, разработчики обычно довольны, низкий риск)
  • Есть способы внести свой вклад без фиксации доступа к основному источнику, например:
    • Отправка патчей, которые можно прокомментировать.
    • Форкировка и отправка запросов на просмотр (см. Выше)
    • Разрабатывая и работая самостоятельно, просто чтобы увидеть, куда это вас приведет. Если вы счастливы, попросите разработчиков взглянуть на все, что вы сделали, чтобы увидеть, имеет ли это смысл.

Чтобы преодолеть свой «страх», что ваши коммиты не будут приняты, сначала зайдите в безопасные пункты. Это позволит и вам, и команде разработчиков обрести уверенность в ваших отношениях и научиться мыслить друг друга. По мере того, как вы будете совершенствоваться (как в навыках, опыте, качестве кода, так и в понимании команды проекта вашей ОС и ее динамики), вы сможете решать более сложные задачи, создавая меньше хлопот.

Это также помогает в поиске подходящих отправных точек и посмотреть, что команда может найти подходящим для вас.

В качестве примера, я немного помог Buildbot за эти годы. Я начал просто исправлять несколько небольших проблем, а затем повысил качество шагов исходного кода Mercurial, исправив некоторые явные ошибки. Наконец, я переписал большинство веб-страниц и поменял html-вставку в коде на решение для генерации HTML на основе шаблонов. Последний был несколько сотен коммитов за несколько месяцев тяжелой работы.

Я также немного поработал с Mercurial, но эти парни более разборчивы, а технология более сложна, поэтому я еще не получил никаких исправлений в ядре. Я сделал несколько отчетов об ошибках и написал несколько небольших расширений, но в данный момент я не получил ничего большего.

Надеюсь, это поможет.

Маке
источник
+1 для buildbot - это фантастический проект, с очень хорошими, полезными сопровождающими. Если вы хотите начать с хорошего проекта, его обязательно стоит посмотреть.
Nate
как насчет полных любителей? Люди, у которых низкий уровень программирования и нет официального образования?
Рой
1
@Roy В таком случае, я бы начал с того, что пошутил и просто покопался в источнике, чтобы поучиться у него. Достижение точки, где вы эффективно вносите свой вклад, занимает немного больше времени. Возможно, вам лучше начать с самостоятельного изучения некоторых хороших руководств (для проекта и его структур / библиотек) и накопить свои знания, чтобы вы знали, куда и как внести свой вклад. Игровые моды (и плагины) могут быть отличным промежуточным звеном между одиночкой в ​​песочнице и уровнем основных разработчиков.
Маке
4

Вскочите. Следите за списками разработчиков на некоторое время и представьтесь, когда вам удобно. Во многих проектах есть несколько простых заданий по исправлению ошибок или документации, о которых завсегдатаи будут рады вам сообщить. Большинство Проектов довольно дружелюбны к новым рукам, и они достаточно быстро приведут вас в порядок, чтобы вы могли стать настоящим активом Проекта.

Через некоторое время вы ознакомитесь со структурой и наиболее важными частями базы кода. Научиться понимать подобный код - это действительно важная часть программирования, и открытый исходный код - отличный способ изучить его.

Фабио Фракасси
источник
2

Действуй. Тонны начинающих делают то же самое. Руководитель проекта может помочь вам найти вещи для работы, которые не выходят за пределы вашей лиги. Вы постепенно превращаетесь в остальных.

О, и то, что вы не понимаете код, не означает, что он хорош . Я видел какой-то серьезно ужасный код там. Некоторые из них трудно понять, потому что они плохо написаны и сделаны намного сложнее, чем должны быть.

Брайан Кноблаух
источник