Я собираюсь поступить в аспирантуру и получить стажировку на лето и осень. Поскольку я не буду делать домашнее задание, я бы хотел воспользоваться этой возможностью, чтобы принять участие в каком-либо проекте с открытым исходным кодом. Я хорошо знаю C, C ++, Java и Python. Я также достаточно хорошо знаком с Linux, сейчас использую его на своем ноутбуке, и все мои занятия в этом семестре были сосредоточены на нем.
Я подумывал взглянуть на Android или Ubuntu, но в прошлом я чувствовал себя немного ошеломленным. У кого-нибудь есть совет? Заинтересован, над каким проектом было бы хорошо работать, с чего начать, и если я действительно смогу внести большой вклад.
И в конце концов, как часто люди действительно принимают изменения? Как часто я буду писать код, чтобы его отклонили?
tl: dr Ищите больше опыта программирования, участвуя в проекте с открытым исходным кодом. Новичку на сцене нужен совет.
источник
Ответы:
+1 Стиву Хейу за упоминание о лунном освещении.
Если вы работаете в магазине программного обеспечения, вы можете оказаться в ситуации, когда ваш работодатель претендует на право собственности на программное обеспечение, над которым вы работали в свое время. Прежде чем начать, проконсультируйтесь с вашим работодателем, чтобы уточнить политику по совместительству в вашей компании.
Хорошее место для начала может быть OpenHatch . Это веб-сайт, посвященный тому, чтобы помочь людям участвовать в проектах с открытым исходным кодом. Они смогут дать вам список ошибок размером с укус, чтобы начать работу над любым из проектов, которые подписаны с ними, и могут помочь вам связаться с другими участниками, которые готовы наставить вас в проект и / или язык по вашему выбору.
Первоначальное принятие ваших исправлений будет и почти всегда будет зависеть от качества исправления и наличия сопутствующих тестовых примеров. Многие проекты на самом деле не будут принимать патчи, если они не включают тест, проверяющий патч.
Поскольку качество вашего кода оценивается субъективно, будьте готовы к конструктивной критике со стороны тех, кто работает с ним, для улучшения вашего кода.
источник
Как менеджер проекта с открытым исходным кодом (FireBreath), я бы предложил вам просто найти проект, который вы используете или который вас интересует, и искать способы, которыми вы можете помочь. Есть много вещей, которые вы можете сделать даже без написания кода. В нашем проекте нам нужны люди, чтобы помочь:
Конечно, они относятся к моему проекту (и вы можете помочь! ;-), но у всех проектов есть такие вещи, которые могут внести новые пользователи. Мой последний вклад в другой проект состоял в том, чтобы добавить инструмент для лучшего управления разрешениями хранилища подстановочных знаков в gitolite. Придерживайтесь проектов, которые вы считаете интересными или можете использовать!
Удачи!
источник
Я не могу сказать вам, какой проект вы должны выбрать - это на самом деле ваше дело. Тем не менее, я могу рассказать вам, как принять участие: если вы испытываете страсть к какому-то проекту, то есть долгое время использовали приложение (для ОС это может быть не так просто), вы всегда можете отправить патчи с предлагаемыми изменениями (улучшения, исправление ошибок) и попросить владельцев проектов для обзора / интеграции.
Это довольно легко с проектами на GitHub - просто создайте свой патч и отправьте запрос на извлечение.
В любом случае, чем больше ценных патчей вы отправите, тем больше вероятность, что они будут приветствовать вас в основной команде.
источник
Если вы не разбираетесь в каком-либо конкретном языке, есть еще много мероприятий, которые высоко ценятся. Они включают тестирование, написание учебных пособий, написание документации по API, создание веб-сайта для проектов и т. Д. Если у вас есть особый интерес, найдите проект в этой области и поделитесь знаниями в предметной области. (Например, у нас есть активное сообщество проектов ОС химии).
источник
Чтобы попасть в проекты с открытым исходным кодом, познакомьтесь с OpenHatch - в этом вся их миссия:
источник
Например, Mozilla всегда ищет программистов на C ++ для разработки и тестирования своих проектов. Для новичка непросто загрузить огромную базу кода и потратить часы на ее создание. Затем уходит около шести месяцев, где вы проводите в среднем более 10 часов в неделю, чтобы ознакомиться с ним и понять ошибку, дефект или что-то подобное. Затем вскоре вы сможете понять, как выглядеть, воспроизводить, изолировать, исправлять, тестировать, регрессировать, применять патч. По мере того, как вы будете делать это больше, вы можете получить прямой доступ к базе кода, контролировать функцию или около того. Я верю, что это верно для каждого зрелого проекта, над которым работает много людей.
С другой стороны, многие проекты умирают, потому что некому их развивать. Это может быть трудно найти людей, которые могут помочь вам или документацию в такого рода.
Чтобы найти баланс между этими крайностями, вы можете найти программу, которую вам нужно использовать часто или каждый день. Продолжайте использовать его настолько, чтобы вы в скором времени максимально использовали его набор функций. Возможно развить некоторую близость к использованию этого по другим вариантам. Затем вы можете либо отправить запрос на функцию, либо принять его на себя, поскольку вы, скорее всего, будете обладать наибольшим пониманием предлагаемой вами функции. На первый взгляд, эта опция заставляет вас чувствовать, что вы никогда не собираетесь максимально использовать возможности программы. Если вы останетесь с ним достаточно долго, вам понадобится программа, которая сделает больше, чем она может на самом деле. Это может быть исправление безопасности / конфиденциальности, тонкая вещь или улучшение юзабилити.
источник