Cómo comenzar a contribuir en proyectos de código abierto

He estado involucrado en el grupo de usuarios de Durgapur Linux durante los últimos cinco años. He estado contribuyendo a varios proyectos de código abierto en algún momento. La razón principal por la que contribuyo al código abierto es la sensación, el disfrute cuando envías un parche o un RP a un proyecto de código abierto. Te hace feliz cuando millones de personas usan tus pocas líneas de código en el día a día.
Después de pasar por Google Summer of Code y obtener cobertura en Super Student, muchas personas se pusieron en contacto conmigo. Todos ellos tenían el mismo conjunto de preguntas.

  1. ¿Cómo empezar?
  2. Sé x, y, z idiomas. ¿En qué proyecto debo contribuir?
  3. ¿Cómo puedo filtrar un error?

Entonces, pensé en escribir una publicación de blog en la que trataré de responder las preguntas. Pero, primero déjenos una visión general sobre qué es el software de código abierto.
¿Qué es el software de código abierto (OSS)?
Open Source Software es un software de computadora cuyo código fuente está disponible públicamente para modificaciones y mejoras lanzadas bajo varias licencias. “¿Qué es código abierto?” Es una buena lectura.
Creo en el hecho de que leer algunas líneas de código vale más que leer 500 páginas de un libro. Cuando sigue el código escrito por grandes programadores, automáticamente tiende a aprender algunas buenas prácticas mientras codifica.
Incluso antes de estudiar la asignatura Ingeniería de software en la universidad, tenía conocimientos prácticos de sistemas de control de versiones, depuradores, rastreadores de problemas, herramientas de integración continua y todo esto se debió a la contribución a un proyecto de código abierto.
Haces un gran currículum que se destaca de la multitud. Contribuir al software de código abierto te ayuda a construir presencia en línea.
Pero, estas alegres palabras realmente no son de mucha ayuda para comenzar.
¿Cómo empiezo?
Lo primero y más importante es elegir un lenguaje de programación de su elección. Una vez que haya terminado de seleccionar un lenguaje de programación, busque un proyecto que le pueda interesar.
Open Hatch es solo para principiantes como tú. La página de búsqueda de Open Hatch filtra los errores basados ​​en

  • Idiomas
  • Proyectos

Mozilla también tiene una amplia gama de filtros de proyectos basados ​​en lenguaje de programación.

¿Cómo filtro un error?
En verdad, encontrar un error para un principiante es realmente un trabajo difícil. Me enfrenté a los mismos problemas. Pero enumeraré cómo encontrar errores fáciles y comenzar a contribuir con una gran organización.

Fedora
La página de Fedora Easy Fix enumera todas las soluciones fáciles con las que puede comenzar. Cada proyecto enumera a quién debe contactar y al responsable del proyecto.
Los repositorios de infraestructura de Fedora contienen algunas soluciones fáciles. Busque la etiqueta EasyFix en la sección de problemas del repositorio Infraestructura de Fedora

Mozilla
Comenzar con Mozilla es muy simple. Mozilla tiene múltiples puertas de enlace para sus nuevos colaboradores.

  1. ¿Qué puedo hacer por Mozilla?

Este sitio sugiere su proyecto en función de la habilidad de programación que seleccione. Una vez que decide que proyecta, lo lleva al proyecto respectivo de Mozilla.

  1. Bichos Ahoy!

Bugs Ahoy es un sitio especialmente para los nuevos contribuyentes. El sitio web clasifica los ‘Errores fáciles’ y los ‘Errores mentorados’ en función de varios proyectos como JS Engine, Devtools, Firefox OS, etc.
Pero, ¿qué pasa si no sabe qué proyecto se basa en qué lenguaje de programación? Errores Ahoy clasifica los errores fáciles en función de los lenguajes de programación, principalmente Python, Java, Shell, JS, C / C ++, HTML / CSS. Uno puede combinar la combinación de filtros para elegir el error perfecto para comenzar.

  1. Mozilla Involucrando páginas.

Mozilla tiene involucrarse, que enumera los proyectos en un equipo en particular. Los proyectos contienen

  • Los mentores con los que se puede contactar
  • Página de Bugzilla
  • Nombre del canal IRC
  • Lista de errores guiados
  • Cómo participar DevTools – DevTools / GetInvolved – MozillaWiki
  • Involucrarse mozilla.org – Webdev / GetInvolved / mozilla.org – MozillaWiki
  • Involucrarse AMO – Webdev / GetInvolved / addons.mozilla.org – MozillaWiki
  • Involucrarse SUMO -Webdev / GetInvolved / support.mozilla.org – MozillaWiki
  • Involucrarse MDN -Webdev / GetInvolved / developer.mozilla.org – MozillaWiki
  • Involucrarse Socorro – Webdev / GetInvolved / crash-stats.mozilla.org – MozillaWiki
  • Involucrándose Mozillians -Webdev / GetInvolved / mozillians.org – MozillaWiki
  • Involucrarse ReMo – Webdev / GetInvolved / reps.mozilla.org – MozillaWiki
  • Involucrarse input.mozilla.org -Webdev / GetInvolved / reps.mozilla.org – MozillaWiki
  • Involucrarse careers.mozilla.org -https: //wiki.mozilla.org/Webdev/…
  • Involucrarse QMO – Involúcrese

Aquí hay otro enlace para la lista de errores de Bugzilla: lista de errores

KDE
Si desea comenzar a contribuir a KDE, busque la etiqueta Junior Jobs . Al igual que cada organización, KDE también contiene una sección sobre cómo comenzar con los proyectos de KDE.

  • Primeros pasos – Contribuir – KDE TechBase
  • Creación de una aplicación de KDE: introducción / creación
  • Guía de KDE para un nuevo contribuyente – Guía de desarrollo de KDE
  • IRC – # kde-devel en Freenode
  • Lista de correo – Página de información de kde-devel

OpenStack
OpenStack también es un gran proyecto para comenzar. El proyecto OpenStack se divide en varios componentes: Swift, Glance, Nova, Horizon, Keystone, etc. Cada uno de estos componentes tiene su propia página. Si te diriges a la página principal de OpenStack Wiki, puedes ver los componentes listados por separado.
Cada página de Componentes contiene el enlace al repositorio, rastreador de errores (Launchpad), Documentación, etc. OpenStack llama a sus errores de principiante como ” Fruta baja “.

  • Primeros pasos: cómo contribuir
  • Si usted es desarrollador -https: //wiki.openstack.org/wiki/…
  • Documentación – docs.openstack.org
  • IRC – # openstack-101, #openstack en Freenode

¿Y para encontrar las frutas bajas? ¡Haga clic aquí!

Wikipedia
La mayoría de las personas en el planeta han oído hablar del nombre Wikipedia, pero alguna vez pensaron en contribuir. Wikipedia es apoyada por la Fundación Wikimedia. Mediawiki etiqueta sus errores fáciles con la etiqueta fácil. ¡Hacer clic!

  • Primeros pasos – Gerrit / Primeros pasos
  • Cómo convertirse en un hacker de Mediawiki – Cómo convertirse en un hacker de MediaWiki
  • Instalación de Mediawiki en el sistema local – MediaWiki-Vagrant – MediaWiki
  • IRC – #mediawiki

Ahora este enlace es importante

  • Pequeños bichos molestos – Pequeños bichos molestos

GNOMO
Gnome-love ‘ es la etiqueta de amor para los errores fáciles que quieren comenzar con GNOME. Si alguna vez visita la página de inicio de GNOME: el enlace ” Involucrarse ” es claramente visible en la barra de menú del encabezado. De todos modos, aquí está el enlace si no quieres buscar 🙂
GNOME mantiene una guía para los recién llegados: GnomeLove / NewcomersTutorial – GNOME Wiki!
Si desea saber cómo enviar su primer parche, lea esto: https: //wiki.gnome.org/GnomeLove/SubmittingPatches
Si desea compilar el código, simplemente compílelo desde aquí: https://wiki.gnome.org/GnomeLove/JhbuildIntroduction
Documentación: Centro de desarrolladores de GNOME

apache
Apache mantiene bastantes proyectos. Apache enumera un catálogo de más de 140 proyectos en los que uno puede comenzar a contribuir. La sección de Recién llegados es una lectura fácil sobre cómo comenzar en Apache, Apache Community Development – Bienvenido, recién llegado.

Involucrarse con Apache Software Foundation: http://www.apache.org/foundation…

Soy un desarrollador activo de Python / Django durante un par de años. Entonces, estoy agregando cómo se puede comenzar a contribuir a Python / Django

Pitón
Para comenzar a contribuir con Python, solo diríjase a la Guía del desarrollador ( Guía del desarrollador de Python). Comienza con la clonación del repositorio en su sistema, luego le indica cómo puede verificar las soluciones fáciles.
La guía del desarrollador menciona que, ¿cómo puede comenzar con la corrección de la documentación y luego avanzar para corregir pequeños errores? Una vez que se familiarice, puede comenzar a eliminar errores fáciles.

  • LEA: http://docs.python.org/devguide/…
  • Rastreador de problemas: lista de problemas – Python tracker
  • Problemas fáciles: Lista de problemas – Problemas fáciles – Python tracker

Django
Django es un marco web basado en Python utilizado por algunas compañías realmente grandes, como Disqus, Instagram, Transifex, etc. Para comenzar a contribuir en Django, dirígete a la página que contribuye a Django.
Esta página enumera los enlaces a la lista de correo, canal IRC, Issue Tracker.

  • Involucrarse en Django: Django

Como la mayoría del proyecto de código abierto, Django también tiene soluciones fáciles para los nuevos contribuyentes.

  • Pequeña mejora fácil – LittleEasyImprovements – Django
  • Recolecciones fáciles – Consulta personalizada – Django

La “Pequeña mejora fácil” también menciona un problema por el cual uno puede enviar parches para documentación, escribir pruebas o mejorar la base de código.
Django mantiene una página para asesorar a nuevos contribuyentes.

Contribuir a Open Source no obliga a contribuir solo a una comunidad conocida. Hay una gran colección de proyectos de código abierto disponibles en sitios web como Github, SourceForge, Bitbucket, etc. También hago cumplir el hecho de que solo la contribución de código abierto no ayuda. Uno necesita trabajar en proyectos paralelos para que las ideas sigan saliendo de su cerebro.

También me gusta citar algunas líneas de una buena publicación de blog.

No debes convertirte en un artista para ser famoso, pero porque hay arte dentro de ti que te matará si no lo dejas salir. No deberías encontrar una startup para ganar dinero, sino porque es el trabajo de tu vida. Y no debería piratear proyectos de código abierto porque alguien le dijo que su perfil de GitHub es su nuevo currículum, sino porque desea codificar socialmente.

Una vez que comienza a contribuir, comienza a interactuar con las personas a través de IRC, listas de correo. Le sugiero encarecidamente que siga la etiqueta que sigue una organización. En general, pase los ojos por esta presentación para obtener un resumen de la misma: http://www.shakthimaan.com/downl…

Incluso después de leer esto si tienes algún problema. No dude en comunicarse conmigo en Twitter o enviarme un correo electrónico a sayan DOT chowdhury2012 en gmail DOT com . También me gustaría agradecer a Chandan Kumar, quien me ayudó a escribir esta publicación de blog, se le puede contactar en chandankumar DOT 093047 AT gmail DOT com.

También puede dejar un comentario, para una organización de código abierto, intentaré actualizar la sección Cómo involucrarse para esa organización.

[Publicación cruzada de la publicación del blog Cómo comenzar con el código abierto]

Creo que podría ser de ayuda para ti. Acabo de comenzar mis contribuciones de código abierto, después de serpentear durante casi un año, tratando de comenzar. Estaba enfrentando el mismo problema que usted, principalmente, la falta de información sobre cómo comenzar a contribuir y cómo leer el código.

Lo esencial

  1. Debes estar familiarizado con Github y Git . Muchas organizaciones de código abierto usan Git para administrar el control de código fuente. Debe poder clonar un repositorio, bifurcarlo, extraerlo de un repositorio, enviarlo a un repositorio, enviar una solicitud de extracción y también debe saber cómo manejar los conflictos.
    Mientras sepa tanto sobre Git, podrá comenzar a contribuir.
  2. Conozca el idioma de su elección a fondo. Por ejemplo, si desea contribuir al Spring Framework , es imprescindible conocer Java dentro y fuera. Si desea contribuir al compilador LLVM , es necesario conocer bien C ++ .

Cómo contribuir

  1. Elige un proyecto
    Vea qué proyecto le interesa y elija en consecuencia. ¿Te interesan los juegos? Echa un vistazo a Battle for wesnoth. Es un juego escrito en C ++ y Lua. Sin embargo, tenga cuidado de que no exceda sus habilidades. Por ejemplo, el juego que mencioné requiere un poco de inteligencia artificial para cualquier contribución significativa. Si no está interesado en la IA, entonces puede que no sea el proyecto adecuado para usted.
  2. Únete a la lista de correo
    Cada proyecto tiene una lista de correo. Si vas a su página de Github, o su página de inicio, podrás encontrarla. La mayoría de las veces, puede ser un grupo de google. A veces será una lista de correo en otros sitios como sourceforge o gna. Únete a la lista y preséntate.
    Me acabo de unir a la lista de correo de Wesnoth. Cuando te unas a la lista, escribe una publicación en la lista presentándote y diciéndoles que te gustaría contribuir. Te recibirán con los brazos abiertos y te darán dos o tres enlaces que deberías leer para entender cómo contribuir.
    En mi caso, me dieron el enlace a la página donde se archivaron los errores y me dijeron que comenzara con el más fácil.
  3. Elige un error
    Vaya a la página donde se han archivado los errores. Cada organización tiene errores en su software. Por lo general, los de baja prioridad o los menores no se tocan. Se dejan para principiantes para que puedan leer el código mediante la corrección del error.
    Elige la más fácil. Elegí uno que requería solo modificar una línea en un archivo.
  4. Pedir ayuda
    No pude localizar el archivo donde se suponía que estaba el error, así que publiqué en la lista de correo que detallaba el error que pretendía resolver y el archivo en el que se podía encontrar.
    Recibí una respuesta de inmediato. Me dijeron el archivo donde estaba ubicado y lo resolví.
  5. Enviar una solicitud de extracción
    Una vez que resuelva el error, envíe una solicitud de extracción a la organización. Si aceptan su código se incorporará en el repositorio principal.

Por lo tanto, ha comenzado sus contribuciones de código abierto.

Espero haber sido de ayuda.

Supongamos que desea contribuir a la organización X. Vaya a su wiki.

¿Conoces las tecnologías que utilizan?

  • ¿Si? La mayoría de las organizaciones de software libre tienen mucho para ayudar a un novato a contribuir a su software. Clonar el código fuente. Casi todas las organizaciones de software libre tienen algo para archivar un error, intente enumerarlas en un orden fácil o difícil. Muchas organizaciones de software libre tienen ayudas específicas para los novatos. Por ejemplo: GNOME (software) tiene GnomeLove, Linux Kernel tiene Linux Kernel Newbies, Mozilla tiene Qué puedo hacer por Mozilla, todo por novatos.

    Si te quedas atascado en algún lugar, lee blogs, lee tutoriales, haz ping a los colaboradores, pregunta en irc. Acechan en sus canales de IRC. Pedir. No lo dudes. Ni una sola vez. Si lo preguntas, te sentirás estúpido (si) solo por un segundo, pero no por toda tu vida.

  • ¿No? No hay problema. Comienza a aprenderlos ahora. Aprenda Git (control de versiones) o cualquier otro sistema de control de revisiones que use la organización de su proyecto favorito.

    Leer blogs La mayoría de los contribuyentes de código abierto mantienen un blog y tienen un perfil de GitHub.

    Necesitas entender que todo es difícil, hasta que lo aprendas. Comienza a aprender lo que te interesa. De nuevo acechan en los IRC. Pregunta a la gente si te quedas atascado en algún lado.

    Es muy fácil comenzar con las contribuciones de código abierto. Créalo y comience.

Algunos sí y no.

Hace:

  • Añádete a su lista de correo.
  • Hacer preguntas.
  • Lea los wikis correctamente, antes de hacer cualquier pregunta. La mayoría tiene ayuda increíble y páginas wiki.
  • Acecha en los canales de IRC (IRCHelp.org – Un tutorial de IRC).
  • Leer blogs.
  • Se honesto.
  • Aprende si no lo sabes, pero te interesa.

NO HACER:

  • No actues.
  • No mostrar.
  • No mientas mientras pides ayuda.
  • No asumas que no podrás aprender X.
  • ¡No apagues tu internet y tu mente!
  • Obviamente no abuses, si no recibiste la ayuda que esperabas.

Otros enlaces útiles:

  • Herramientas comunitarias para software libre y de código abierto.
  • Desarrolle un software mejor, juntos
  • Bountysource
  • Software de código abierto
  • Proyectos de código abierto
  • Google Summer of Code (GSoC)
  • Pasantías de software libre y de código abierto para personas de grupos subrepresentados

Escribí algunas publicaciones de blog sobre cómo contribuir al kernel de Linux y a otros proyectos de código abierto.

  • Kernel de Linux | Tamiz
  • Contribución de código abierto

Avísame si te quedas atascado en alguna parte. 🙂

La mayoría de las cosas son súper fáciles. Todo lo mejor.

Aquí encontrará buenos recursos, sesiones, descripciones detalladas paso a paso sobre cómo comenzar con un proyecto de código abierto de colaboradores, mantenedores y administradores de proyectos de código abierto. Puedes unirte al canal Slack si tienes más preguntas. Esta es la versión alfa de esta plataforma, avíseme si desea contribuir a este proyecto en su repositorio GitHub.

Otras personas ya describieron bastante bien cómo hacerlo . Intentaré ayudarte a elegir qué hacer .

Lo primero que debes hacer es preguntarte qué tipo de colaborador quieres ser. Hay varios aspectos que debe considerar en su decisión. Desarrollé, a lo largo de los años, un pequeño marco que utilizo cuando quiero elegir mi nuevo proyecto de código abierto:

  • Frecuencia: ¿Cuánto tiempo quieres pasar contribuyendo? ¿Unas pocas horas por semana? ¿Unas pocas horas al mes? ¿O solo una contribución muy adicional de vez en cuando?
  • Lenguaje de programación : ¿Desea contribuir a un proyecto con algún lenguaje de programación específico? Ruby, JavaScript, Java, lo que sea, la mayoría de los idiomas tienen toneladas de proyectos de código abierto. Contribuir a un proyecto de código abierto es una excelente manera de mejorar sus habilidades con un idioma que no sabe mucho al respecto.
  • Tipo de proyecto: ¿Hay algún tipo de proyecto que le guste más? Nuevamente, hay toneladas de diferentes tipos de proyectos por ahí. Algunos ejemplos son: herramientas de desarrollo, navegadores, sistema electrónico de registros médicos, pruebas de seguridad y muchos, muchos otros.
  • Por qué : ¿Cuál es su objetivo principal para contribuir a un proyecto de código abierto? ¿Quieres mejorar tus habilidades técnicas? Aprender un nuevo dominio? ¿Ayuda a construir un proyecto que pueda afectar la vida de otras personas?

Si tiene una respuesta para las preguntas anteriores, será más fácil tomar una decisión en el proyecto al que contribuirá. Te daré un par de ejemplos que me sucedieron en diferentes partes de mi vida:

Ejemplo 1 – OpenMRS

Frecuencia : unas pocas horas por semana. Lenguaje de programación : Java, al que estaba más acostumbrado. Por qué : Contribuir a un proyecto que pueda afectar la vida de las personas. Tipo de proyecto : Asistencia sanitaria.

En este caso, elegí contribuir a OpenMRS. OpenMRS era la elección correcta en ese momento, su código base está en Java e impactan a personas de todo el mundo. Sin embargo, no es muy fácil comenzar, debe dedicar un tiempo a comprender el modelado de datos, la arquitectura y otras cosas. Es muy difícil contribuir a OpenMRS si no está dispuesto a pasar una buena cantidad de tiempo en él.

Ejemplo 2: complementos de Grunt

Frecuencia : Pocas contribuciones a lo largo del tiempo. Lenguaje de programación : JavaScript. Por qué : quería mejorar mis habilidades de JavaScript. Tipo de proyecto : Cualquiera, siempre que el proyecto sea simple.

En este caso, elegí contribuir a algunos complementos de Grunt. Grunt es un corredor de JavaScript que mucha gente lo usa. Además, la mayoría de los complementos de Grunt son bastante simples y su código es bastante pequeño. Esta fue una buena opción para mí, ya que no estaba dispuesto a pasar demasiado tiempo trabajando en ellos y podía entender el proyecto con bastante facilidad porque son muy pequeños.

Ejemplo 3 – ZAP

Frecuencia : pocas horas por semana. Lenguaje de programación : Java. Por qué : quiero mejorar mis habilidades en materia de seguridad. Tipo de proyecto : herramientas de seguridad

Muy, muy recientemente comencé a contribuir a ZAP. Zap es una herramienta de prueba de penetración de herramientas y es perfecta para mi objetivo de aprender más sobre seguridad.

Hay una cosa más importante. Independientemente del proyecto al que contribuya, debe ser confiable y confiable. Sé honesto contigo mismo en cuanto esfuerzo estás dispuesto a gastar en el proyecto y comunícate claramente cuando hables con la comunidad de código abierto. Por mucho que tenga expectativas sobre la comunidad, la comunidad tiene expectativas con sus contribuyentes. Además, asegúrese de leer toda la información relevante sobre cómo contribuir en el sitio web del proyecto.

¡Feliz pirateo!

Citaría una de mis respuestas anteriores sobre una pregunta similar:

Q1. ¿Cuáles son algunas de las técnicas que utilizan los desarrolladores experimentados para comprender rápidamente una nueva base de código y comenzar a contribuir a ella?

Mi respuesta, pegada aquí nuevamente:

Esto es lo que hago cuando trato de entender y contribuir a una base de código de código abierto, y me ayuda mucho:

1. Obtenga una visión general: el diseño general.
Identificar módulos y sus funcionalidades. Los proyectos populares con una gran cantidad de clientes, normalmente están muy bien diseñados. Paso 2-3 días en esto, 6-7 horas por día. Utilizo el software de diferentes maneras, tratando de “activar” y “ingresar” en diferentes módulos.
Hay muchos hilos de ejecución posibles, y simplemente jugueteo e intento identificar tantos como sea posible.

2. Vea algunos errores corregidos y cómo se corrigieron:
Primero, identifique algunos errores corregidos del rastreador de errores. Si es posible, identifique un error corregido por el autor o algún colaborador experimentado.
Ahora entra un buen uso del control de versiones. Tire de una versión del código con el error no corregido, en una rama separada. Luego, extraiga la versión del código donde se solucionó el error en otra rama. Identifique qué archivos cambiaron y mire los fragmentos de código modificado. Pase mucho tiempo rebotando entre las dos ramas y analice:
1. Qué hace la solución y cómo.
2. ¿Por qué se implementó la solución de una manera determinada, en cuanto al diseño?

Este paso ayuda a comprender mejor cómo un desarrollador experimentado corrige errores mientras se adhiere a un buen diseño. Nuevamente, paso 2 días en esto: se analizaron 2-3 errores corregidos.

3. Corrige algunos errores:
Una vez que he identificado dónde están la mayoría de las cosas, reviso algunos errores fáciles en el rastreador de errores e intento solucionarlos. Esto implica identificar pacientemente el módulo afectado primero. Si mi primer paso ha sido completo, no necesitaré mucho tiempo aquí. Ahora, la parte más difícil es corregir el error sin desviarse del enfoque de diseño “aceptado” para este programa.
Normalmente, primero escribo una solución muy ingenua, sin mucha consideración para el diseño, solo para ver si funciona. Si es así, trato de replicar el mismo enfoque de diseño que vi en el paso 2 (de algún otro error)

4. Escribe una nueva característica:
Reutilice los objetos / módulos existentes para implementar su propia característica. Si ha identificado los módulos correctamente y sabe cómo funcionan, esto debería ser bastante fácil. Es como trabajar con una API. La parte más difícil es hacer que su módulo de funciones sea reutilizable (para que otros lo usen)

Se tarda unas 3 semanas como esta para comenzar a sentirse cómodo con el código. La experiencia solo se puede obtener después de meses de corrección de errores y práctica.

Hablo desde la perspectiva de alguien que también está comenzando a navegar por la participación de software de código abierto.

Hay muchas formas de hacerlo. El primero, y el más fácil, es utilizar software y bibliotecas de código abierto. Otra es hablar sobre cómo lo estás usando. Para colmo, la parte del principiante es reportar errores, no solo decir que algo “no funciona”, sino también detallar los pasos para reproducir los errores.

Fue solo recientemente que comencé a aportar código a los proyectos. Mi experiencia es que no solo entras y dices “Quiero contribuir con código”. Sería más fácil usar alguna biblioteca para un proyecto real. Con el tiempo, encontrará agujeros y características faltantes que podrían ser útiles. Por ejemplo, estaba usando D3.js (biblioteca de JavaScript), y encontré alguna característica faltante. Propuse el cambio, y fue aceptado. Pero resultó que sería redactado debido a problemas futuros que no vi. De todos modos, para inspirar a otros principiantes, la conversación se puede encontrar aquí: https://github.com/mbostock/d3/p… . Como verás, es solo una línea de código 🙂

Esa fue mi primera contribución. Finalmente, estaba navegando por la página de Problemas del proyecto y encontré un problema que debería ser muy fácil de resolver. Le envié un correo electrónico al autor, Mike Bostock, y le pregunté si podía abordar ese tema. Bueno, solo estaba actualizando los ejemplos y renombrando las variables. Pero me sentí bien al poder contribuir. Puede ver algunos de mis confirmaciones de código aquí: https://github.com/mbostock/d3/c

Ya deberías saber que soy un principiante orgulloso y feliz 🙂 ¡También ten en cuenta que soy mejor en Python que JavaScript, pero me encontré contribuyendo a JavaScript!

——

Bien, esa fue la parte del “concepto”. Para el procedimiento exacto, sugeriré este entre tantos:

  1. Aprende el sistema de control de versiones Git. Intenta usarlo para tus propios proyectos primero.
  2. Regístrese para obtener una cuenta de Github. Empuje sus propios proyectos allí.
  3. Juega con Git. Añadir cambios. Código de compromiso Empuje el código a su repositorio en línea.
  4. Juega con Github. Fork proyectos populares. Desarma el código. Haz tus propios cambios. Cometer cambios en su tenedor. Obtenga actualizaciones de los repositorios originales. Fúndelos en tu tenedor.
  5. Habla con los desarrolladores de Github. Diles qué parte de su código te molesta. Por supuesto, siga con un plan concreto para que su código no le moleste. Hacer cambios. Empújalos hacia tu tenedor. Envíe al autor original una solicitud de extracción para que pueda ver su contribución y fusionarla con el repositorio original.
  6. Hable sobre los proyectos de código abierto en los que participa.
  7. ¡Que te diviertas! 🙂

El camino de Github

Paso 0: Comprenda Git, el sistema de control de versiones utilizando recursos gratuitos como Git SCM Book e inténtelo localmente o en su navegador.

Paso 1: elija su sabor (Java / Android, Python, JavaScript Nodejs, etc., etc.)
Paso 2: crea una cuenta de Github
Paso 3: navega a la sección Explorar:


Paso 4: navega a la pestaña Tendencias


Paso 5: elige tu idioma preferido en el panel lateral derecho

Paso 6: vea los repositorios y comprenda su propósito, seleccione cualquiera que llame su atención

Paso 7: Lea el archivo README, Wiki, así como los temas abiertos y cerrados para obtener una mejor comprensión del proyecto


Paso 8: Bifurca el proyecto y “jálalo” en tu propia área de desarrollo

Paso 9: piratee localmente, juegue con él, conozca mejor el programa. Recuerde que solo puede contribuir significativamente si usted mismo utiliza el programa.

Paso 10: lee el código, sí, como leer un libro. Mejore sus propios estándares de codificación.

Paso 11: la contribución puede comenzar incluso desde las cosas más pequeñas, como la actualización de la documentación, que las personas hacen inicialmente. Descubra las áreas que se pueden mejorar.

Paso 12: Si no está seguro de cómo proceder, hable con los propietarios / colaboradores del repositorio. Puede ponerse en contacto con ellos a través de IRC, correos electrónicos o según la nueva tendencia de las salas Gitter / Slack. Puedes ver fácilmente qué respalda ese repositorio con las insignias:

Paso 13: Realice sus cambios, comprométalos e introdúzcalos en la bifurcación local y emita una solicitud de extracción

Paso 14: Espere a que los contribuyentes lo revisen. Incluso si rechazan su cambio, no se moleste y sepa por qué se rechaza e intente rectificarlo en la próxima solicitud de extracción (PR)

Paso 15: ¡Se acepta tu RP y has hecho tu primera contribución de código abierto! Felicitaciones y estar encantado de ver su nombre en el panel de contribuyentes.


¡Espero eso ayude! Actualizaré el otro “Apache Way” más tarde.

La mayoría de los proyectos de código abierto se enumeran en Github. Puedes contribuir a ellos de la siguiente manera:

1. Bifurca el repositorio y clónalo localmente. Conecte su local al repositorio original “ascendente” agregándolo como control remoto. Con frecuencia, los cambios de extracción de “flujo ascendente” se mantienen actualizados para que cuando envíe su solicitud de extracción, sea menos probable que se produzcan conflictos de fusión. (Consulte las instrucciones más detalladas aquí).

2. Haz una rama para tus ediciones.

3. Haga referencia a cualquier problema relevante o documentación de respaldo en su RP (ej. “Cierra # 37”).

4. Incluya capturas de pantalla del antes y el después si sus cambios incluyen diferencias en HTML / CSS. Arrastre y suelte las imágenes en el cuerpo de su solicitud de extracción.

5. Pruebe sus cambios! Ejecute sus cambios contra cualquier prueba existente si existe y cree otras nuevas cuando sea necesario. Ya sea que existan pruebas o no, asegúrese de que sus cambios no rompan el proyecto existente.

6. Contribuya en el estilo del proyecto a lo mejor de sus habilidades. Esto puede significar usar sangrías, punto y coma o comentarios de forma diferente a como lo haría en su propio repositorio, pero facilita que el mantenedor se fusione y que otros lo entiendan y mantengan en el futuro.

Referencia: cómo contribuir al código abierto


¿Te gusta mi respuesta?

Vota y sígueme para más cosas como esta.

1. Definir un idioma / plataforma. En primer lugar, debe poder tener una experiencia decente con el lenguaje / plataforma. Si aún no lo ha hecho, eche un vistazo a algunos de los más populares (porque encontrará más documentos y proyectos sobre ellos), y pase un tiempo aprendiéndolos (y diviértase experimentando con ellos with)

2. Busca un proyecto. Si ya tiene experiencia y ha definido un idioma / plataforma de su agrado, vaya a Github y busque proyectos que parezcan divertidos e interesantes, o vaya a un sitio de Google Summer of Code con la lista del código abierto que respaldaron. Los proyectos en Github tienden a ser más pequeños, por lo que son más fáciles de aprender / modificar; Por otro lado, los grandes proyectos como los mencionados en Google SOC -es decir, Mozilla, Mono- son más grandes, más complejos, pero pueden brindarle mucha más experiencia.

3. Participe. Una vez que haya definido eso, únase a una lista de correo o canal IRC mencionado en la página del desarrollador para ese proyecto. Juega con el proyecto real, luego con el código. Haga preguntas en IRC para las cosas que está tratando de entender, y una lista de correo para cosas que son un poco más complejas.

4. Comience con algo pequeño. En mi experiencia, la mejor manera, una vez que esté en este punto, es pedir que se hagan cosas pequeñas (cosas incompletas o pequeños detalles que se pueden mejorar), o la corrección de errores. En ambos casos, conocerá el sistema de compilación, los conceptos básicos del entorno y conocerá el código en general. Una vez que haya recibido algunos cambios (generalmente en forma de parche), publíquelos en la lista de correo, wiki o sistema de seguimiento de errores.

Como último consejo: sea paciente mientras llega a 4, y sea paciente y humilde cuando haya escrito sus primeros códigos revisados ​​por los encargados (y expertos). No lo tome como algo personal cuando sugiera formas de mejorar su código; en realidad, esta es una GRAN oportunidad para que aprenda rápidamente de ellos y mejore mucho sus habilidades de codificación.

¡Buena suerte!

Paso # 1: aprende algunas cosas

  • Al menos 1 lenguaje de programación, lo suficientemente bueno como para comprender los patrones de diseño en él.
  • Conocimiento del dominio: explore proyectos e ideas de proyectos en línea y filtre los proyectos con los que desea trabajar. Luego, comience a obtener conocimiento específico para el problema que está resolviendo ese proyecto. Por ejemplo: si desea trabajar en un raspador web de código abierto de Python para generar estadísticas sobre delitos en su área, debe comprender cómo programar los raspadores web, cómo usar bibliotecas de estadísticas en Python, algunas estadísticas y matemáticas básicas, además de herramientas de visualización (no es necesario, pero sería un punto a favor)
  • Git y github (la respuesta de Raghav Dua a ¿De dónde aprendo github?)

Paso # 2: Comience abriendo su repositorio Github favorito (el proyecto al que le gustaría contribuir) y comience a usar el software . Lea su documentación y use el software actual tanto como pueda, para que se familiarice con los problemas que el software resuelve / tiene la intención de resolver . Ahora, piense, cuáles son los defectos / errores / inconvenientes que enfrenta actualmente al usar este software.

Luego comience a examinar los problemas en este repositorio y lea las discusiones de estas personas. Aprenderá mucho de los miembros principales del repositorio, porque conocen el proyecto con mayor profundidad.

Comienza a leer el código. Al principio, no intente comprender todo el código base, probablemente sea demasiado grande (o tal vez no). Simplemente lea y comprenda cómo cada módulo se comunica con los demás para realizar el trabajo. Luego busque la implementación del módulo específico que desea mejorar. Por ejemplo: si está utilizando MS Word y cree que debería haber un botón de acceso directo para buscar el texto resaltado en wikipedia, iría a los archivos de código que contienen la implementación de accesos directos de teclado. Debería plantear un problema que le gustaría crear esta funcionalidad. Otras personas presentarán ideas / opiniones y, en última instancia, usted decidirá si sería una buena idea. Ahora, si se aprueba su idea, lea el módulo de acceso directo del teclado en profundidad para comprender cómo lo han implementado los demás. Usando el mismo estilo y patrones de codificación, desarrolle su código de acceso directo y haga una solicitud de extracción .

Te puedo garantizar que no tendrás éxito desde el principio hasta el final en tu primer intento. Muchas de sus ideas / sugerencias y solicitudes de extracción serán rechazadas. Pero debes leer las razones que los otros programadores te dan para rechazar.

Poco a poco, desarrollará la intuición de los codificadores y comenzará a hacer contribuciones valiosas.

Lo digo porque así es exactamente como sucedió conmigo. Solía ​​sentirme mal y desanimarme, pero seguí sin embargo.

Y puedes ver mi perfil de Github por ti mismo aquí:

duaraghav8 (Raghav Dua)

Me considero un programador promedio y mis contribuciones han sido apreciadas (la mayoría de ellas han sido rechazadas, pero son los pocos que son aceptados los que lo hacen un colaborador exitoso del sistema operativo)

Otras referencias:

La respuesta de Raghav Dua a ¿Cuáles son algunos proyectos en GitHub que son buenos para principiantes?

La respuesta de Raghav Dua a ¿Cuáles son algunos buenos proyectos de pila MEAN de código abierto en Github?

La respuesta de Raghav Dua a ¿Cómo empiezo con las contribuciones de código abierto?

1. Comience a usar GNU / Linux

En primer lugar, cambie a GNU / Linux (si aún no lo está usando) y conviértalo en su sistema operativo predeterminado, no salte entre GNU / Linux y Windows o Mac a menos que sea realmente necesario.

Elección de distribuciones:
Ubuntu ha sido el jugador más grande en el mercado desde hace un tiempo, pero no lo recomendaría a menos que sea nuevo en Linux. Han agregado muchas campanas y silbatos para facilitar a los antiguos usuarios de Windows / Mac recién migrados, pero esto es patéticamente lento. En el lado positivo, les da mucha base de usuarios y casi cualquier problema que enfrenten (incluso los más tontos), pueden pegar la cadena de error en Google y definitivamente recibirían alguna pregunta sobre el problema en sus foros en línea.

La principal diferencia viene con los paquetes, las distribuciones como Debian / CentOS se centran más en la estabilidad, por lo que obtendría paquetes de software relativamente más antiguos en su repositorio, Ubuntu tiene paquetes relativamente más nuevos en comparación con ellos, pero aún no son los últimos. Arch Linux se encuentra en el otro extremo, tiene paquetes de última generación, la mayoría de las actualizaciones lanzadas para los softwares se sincronizan con el repositorio en unos pocos días. Pero con ese lujo viene el costo de la inestabilidad. Así que vamos a la mitad del camino aquí, ya que recién está comenzando, recomendaría Fedora: Decentemente estable, Proceso de instalación fácil, Paquetes de vanguardia. Más adelante, puede cambiar a Arch Linux si lo necesita.

¿Por qué estoy haciendo hincapié en los paquetes de vanguardia?
Porque cuando comience a contribuir al código abierto, tendrá que trabajar con la fuente de versiones inestables (aún no lanzadas) del software, que tendrá (otros softwares como) dependencias y si su sistema no proporciona la versión mínima requerida de dependencias, entonces tendrá que compilar incluso las dependencias de la fuente.

2. Stick a la terminal

No puedo enfatizarlo lo suficiente. Intente hacer todo lo que pueda con el terminal para que se sienta cómodo con él. Es una curva de aprendizaje empinada, pero una vez que la haya superado, comenzará a disfrutarla.

¡Es poderoso y divertido!
¿Cómo?
Digamos que hay 10000 archivos de texto en un directorio y necesita agregar una línea particular en la parte superior de los archivos que contienen ‘X’ en su nombre y tienen un tamaño> ‘Y’KB?

Si usa GUI, terminará revisando cada archivo que satisfaga los criterios de nombre y tamaño y luego lo abrirá en algún editor de GUI y pegue la línea en la parte superior y guárdelo.

En cambio, puede escribir un script bash de 4 líneas, ejecutarlo y dejar que haga su trabajo y jugar.

3. Familiarícese con algunas herramientas básicas de desarrollo

Para nombrar unos pocos:

Editores – Vim / Emacs
Control de versiones – Git / SVN
Utilidades para compilar – Make / CMake
Depuración – gdb, Valgrind
Herramientas básicas de Linux como: sed, grep, find, man, diff, etc.

4. Seleccione el software al que desea contribuir

En general, las personas notan algunas fallas en su software favorito o sienten que hay una necesidad de una característica en particular y entran y contribuyen a la aplicación, de esa manera uno se siente más motivado y da un placer inmenso ver a personas de todo el mundo usar esa pieza de código escrito por usted y apreciando la adición de características que hizo y sintió la necesidad de.

De lo contrario, también puede elegir un software en función de dónde residen sus puntos fuertes, por ejemplo, si siente que es bueno en C ++, es posible que desee elegir alguna aplicación que esté escrita en C ++ O de otra manera, puede elegir algún proyecto basado en su dominio de interés (por ejemplo: Desarrollo web) y aprenda las habilidades necesarias para el mismo.

Lista de algunos proyectos de código abierto: Lista de paquetes de software gratuitos y de código abierto.

5. Contribuir

Revise el código fuente y obtenga una idea de cómo los diferentes módulos interactúan entre sí y cómo se han implementado las cosas.
Puede usar herramientas como grep o algún IDE para facilitarle la vida si el proyecto tiene una base de código relativamente grande.

La mayoría de los proyectos tendrán rastreadores de errores donde la gente archiva errores, revisa si no tienes nada en mente que quieras arreglar / implementar, y ve cómo puedes solucionarlos.

Hable con los encargados / encargados del proyecto sobre la función que desea implementar o el error que desea solucionar y cómo planea hacerlo y ellos lo guiarán desde allí … 🙂

Bueno. Entonces, ¡has decidido contribuir a un proyecto de código abierto! Felicidades ¡El viaje por delante será increíble y te transformará para siempre!

Esta es una pregunta bastante común que veo entre las personas que desean contribuir pero no tienen idea de cómo comenzar … Permítanme comenzar con las formas en que pueden comenzar a contribuir.

0. ¿Eres un codificador kickass? (bueno, no tienes que ser uno para ser franco)
Hay muchos softwares en varios dominios de la informática que requieren su experiencia en codificación. No necesitas ser un ninja codificador para contribuir. Si ya es usuario de FOSS, vea si alguna de las herramientas que utiliza a diario necesita ayuda. Suscríbase a su lista de correo. Vea si tienen un canal IRC. Cuelgue el IRC y asista a un par de reuniones. Esto le ayuda a comprender cómo funciona la comunidad y cuál es el objetivo que intentan alcanzar. o tal vez busque los proyectos en github (¿Dónde puedo encontrar proyectos de código abierto para trabajar?) que le parezcan interesantes. Una vez que decida a qué proyecto contribuir, comience a mirar la lista de errores. OpenHatch (herramientas de la comunidad para software gratuito y de código abierto) es uno de los pocos buenos lugares para buscar tales cosas. Hable con los desarrolladores sobre el error que ha decidido solucionar y analice cómo solucionarlo. codifícalo. Enviar una solicitud de extracción. Si los desarrolladores están satisfechos, fusionan su código en la rama maestra. ¡Y felicidades, te has convertido en un colaborador de código abierto!

1. ¿Eres increíble en la escritura técnica?
Muchas comunidades quieren personas que sean buenas en la escritura técnica. Como puede saber, hay muchas comunidades de código abierto que tienen poca / poca documentación y a las personas a menudo les resulta difícil comenzar con algunos proyectos. Puede comenzar a escribir manuales de inicio, fragmentos de código, tal vez un libro de cocina basado en su experiencia con ese software. Cualquier cosa y todo lo pequeño que sea será útil para una comunidad de código abierto.

2. ¿Eres increíble en el diseño?
Muchos softwares de código abierto carecen de una buena interfaz de usuario intuitiva debido a la falta de diseñadores de interfaz de usuario / diseñadores de interacción en el equipo. Comienza a ayudarlos. Comunidades como elementaryos (Get Involved | elementary OS) tienen un segmento especial para las personas interesadas en el diseño.

3. ¿Conoces varios idiomas?
Muchos proyectos de software requieren traducción para llegar a personas de todo el mundo. ¿Eres el que es bueno en un lenguaje oscuro para el cual la comunidad está buscando a alguien para traducir su software … adelante y ayúdalo!

Hay muchas comunidades que buscan personas que puedan contribuir a sus proyectos. Tómate un tiempo. ¡Decide el proyecto según tu gusto y comienza a contribuir!

Feliz contribuyendo!

Recuerda … no eliges la comunidad a la que contribuyes … la comunidad te elige a ti … ¡asegúrate de ser la persona adecuada y de encajar en su equipo! 😛

Antes de responder esto, respondería ” ¿Qué es el desarrollo de código abierto?”

En el desarrollo de software de código abierto, no mantiene la confidencialidad de su código fuente, agrega una licencia de código abierto a su software y hace que su código esté disponible públicamente para desarrollar y / o utilizar otros.

Requisito previo:
Debe estar familiarizado con el control de versiones y un lenguaje de programación.
puedes elegir cualquier lenguaje C, C ++, JAVA, Python, Ruby, etc. Pero recuerda una cosa en mente que debes saber lo básico. En caso de que no conozca ningún lenguaje de programación y control de versiones, estoy enumerando algunos enlaces, por favor hágalo:
Introducción a la informática

Introducción a la informática y programación usando Python

Cómo usar Git y GitHub

Además de estos, puedes aprender desarrollo de Android, desarrollo web también.
Después de eso, recomendaría analizarse y ver lo que aprendió y lo que sabe. Tienes que descubrir qué es lo que realmente quieres y con qué te sientes cómodo. Por ejemplo: usted sabe sobre el desarrollo de Android y desea contribuir a un proyecto relacionado con Android o de lo contrario solo conoce los conceptos básicos del desarrollo de Android y desea aprender más, así que creo que uno aprende haciendo. Por lo tanto, elija cualquier proyecto y contribuya para obtener más experiencia.

¿Cómo encontrar proyectos?

A partir de ahora, supongo que ya conoce el control de versiones y el lenguaje / tecnología de programación. Ahora la parte difícil de encontrar aquí es encontrar los proyectos amigables para principiantes. Así que aquí he enumerado algunos enlaces donde la comunidad hizo una lista de proyectos amigables para principiantes:

En juego

Fuente abierta

MunGell / impresionante para principiantes

https://openhatch.org/search/

Cada proyecto tiene Contribution.md . Este archivo contiene instrucciones y pautas para la contribución. Asegúrese de leerlo detenidamente.

AÑADIR:

Echa un vistazo en este repositorio

tapasweni-pathak / Getting-Start-With-Contributing-to-Open-Sources

No había tal comunidad antes. Casi todos los programas de pasantías de código abierto, la organización tiene sus propios canales IRC, listas de correo donde lo ayudan con sus propios programas / proyectos.

Dinu y Tony han comenzado recientemente una comunidad de “comunidad de ayuda de código abierto”. Tiene un grupo Slack. Puedes solicitar una invitación aquí.

Es una comunidad virtual donde puede obtener ayuda para comenzar a contribuir al código abierto. Puede hacer sus preguntas sobre cómo participar en concursos como Outreachy, Google Summer of Code (GSoC), Google Code-in y otros programas similares de pasantías de código abierto y contribuir a proyectos de código abierto en general.

Los participantes, administradores, mentores de proyectos de código abierto de pasantías de programas de código abierto responderán a sus preguntas.

El grupo Slack tiene cuatro canales designados,

#general: para todas las preguntas generales sobre fuentes abiertas

#gci: para preguntas relacionadas con Google Code-in

#gsoc: para preguntas sobre Google Summer of Code (GSoC)

#outreachy: para preguntas sobre Outreachy

Tiene una página en Facebook.

Si desea comenzar a contribuir a las fuentes abiertas y tiene preguntas o desea ayudar a alguien que lo desee, ¡únase!

También estoy allí, así que si tiene alguna sugerencia, siéntase libre de decirlo aquí, en la página de Facebook o en el grupo Slack. Estaremos encantados de acogerlos.

Feliz codificación !!

Sientete libre de hacerme ping. Vaibhav Singh

Tengo una solución ad-hoc que descubrí cuando entré en OSS. De hecho, sospecho que casi todas las buenas respuestas a esta pregunta son ad-hoc .

  1. Vaya a la lista “Organizaciones aceptadas” de Google Summer of Code. Elija algunas organizaciones que le interesen. El enlace a la lista de 2011 está aquí http://www.google-melange.com/gs
  2. Para cada uno de estos proyectos, mire la “Página de Ideas” relacionada. Debería verse así:
  3. Encuentra ideas que te gusten. Los detalles variarán aquí: algunas organizaciones tienen un wiki, otras tienen una hoja de cálculo de Google. Sin embargo, cada idea debe tener una descripción, y posiblemente (con suerte) un posible mentor.
  4. Flotar correos electrónicos; trabajar en una buena idea respaldada por una buena comunidad. En mi caso, le envié un correo electrónico a una de las personas que figuran como “posible mentor”. El correo electrónico fue algo como esto:

Hola, soy Alex, y aunque NO ESTOY DE NINGUNA MANERA interesado en GSoC, estoy interesado en desarrollar $SOME_IDEA , y me preguntaba si estarías dispuesto a ayudarme a pasar por el proceso de no hacer redundancias y / o trabajo no útil

Gracias Alex “.

Por supuesto, si no hay un mentor posible, puede enviar un correo electrónico similar a, por ejemplo, una lista. Simplemente deje en claro que no está tratando de ingresar a GSoC y que desea ayudarlos. El objetivo no es solo examinar los proyectos, sino también las comunidades: desea trabajar en un lugar donde tenga una alta probabilidad de obtener código en el tronco. Si la comunidad parece estúpida, ve a otro lado.

Ahora, más importante, ¿POR QUÉ DEBE HACER ESTO? En pocas palabras, porque hay varias barreras importantes para comenzar a trabajar con OSS, y para la mayoría de las personas, son realmente difíciles de superar sin ayuda:

  1. Es difícil saber en qué proyectos trabajar.
  2. Es difícil saber en qué se debe trabajar en esos proyectos.
  3. Es difícil saber cómo acercarse a una comunidad o cómo enviar parches (especialmente si eres nuevo, la gente inteligente da miedo).

Usando la solución descrita anteriormente, estos problemas se tratan prácticamente: tiene una lista de proyectos para elegir, y tiene una lista de cosas que necesitan trabajar para cada uno de ellos, y en general, tiene una lista de personas que están dispuestos a ayudarlo a través del proceso de contribución. ¿Qué te deja esto? La codificación!

TEN EN CUENTA QUE SOY NUEVO AQUÍ. Si ve algo que podría mejorar, no dude en hablar.

Comencé a contribuir a proyectos de código abierto después de 2 meses de aprender a codificar .

Fue realmente divertido y emocionante, y de ahí encontré un gran cliente .

Definitivamente desea participar en proyectos de código abierto, es una aventura increíble que le pagará 10 veces. Para un programador, recomendaría GitHub , es un excelente lugar para comenzar.

Las contribuciones de código abierto realmente agregan credibilidad a su currículum.

Hay tres formas a través de las cuales puede contribuir fácilmente a proyectos de código abierto como desarrollador.

1. Prueba

Muchos proyectos de código abierto, especialmente los nuevos, realmente necesitan probadores.

Escribir código en un entorno virtual no garantiza un rendimiento perfecto en el mundo real. Los propietarios del proyecto siempre están buscando personas que puedan participar instalando y ejecutando estas aplicaciones en sus máquinas y retroalimentando el rendimiento.

A partir de sus comentarios, los desarrolladores pueden corregir, por ejemplo, si encuentra un error o un mal funcionamiento.

Para participar en las pruebas, es posible que deba ejecutar un sistema operativo en particular o tener un dispositivo en particular para que la prueba sea específica.

Las pruebas funcionales no son complicadas y, como desarrollador, lo encontrará divertido y fácil .

2. Documentación

Hay un par de formas en las que puedes participar aquí.

  • Puedes escribir la documentación . Esto requiere que tenga una comprensión profunda del software / biblioteca / complemento. Debe haber utilizado este software ampliamente para poder escribir su documentación
  • Puede corregir la documentación que ya está escrita . Si no eres técnicamente competente en el software, aquí es donde quieres acampar. Revise el documento original, ya sea técnico o guías de usuario final en su mejor idioma y recomiende los cambios que considere oportunos. Tendrá que ser bueno en un idioma para poder identificar errores gramaticales, lógicos y ortográficos.
  • Traduce la documentación original a tu lengua materna. Si quieres jugar con idiomas, aquí tienes tu expediente. Tal vez la documentación aún no esté disponible en su lengua materna. ¡Traduce! Tienes que divertirte!

3. Escribir código

Sí, si te gusta romper cosas , prepárate, ¡te ensuciarás las manos aquí!

Esto, diría, es la parte más emocionante de las contribuciones de código abierto para un programador. ¿Imagina que su contribución a un marco popular como Django aparece en su currículum? Todas las puertas estarán abiertas para ti, ¿verdad?

Bueno, primero debes hacer tu trabajo a domicilio.

Encontrar un proyecto de código abierto adecuado para contribuir, especialmente en GitHub, puede resultar una tarea desalentadora .

Los proyectos más populares probablemente rechazarán su contribución. Más sobre eso en una respuesta anterior que escribí.

Aquí hay algunos consejos para seleccionar un proyecto adecuado para comenzar.

i) Elija un proyecto que le interese

Cuando busque un proyecto, no elija ningún proyecto en su lenguaje de programación favorito y comience a trabajar en él.

Contribuir con código a un proyecto de código abierto es un compromiso a largo plazo que está haciendo con ese proyecto. Una vez que arregles un error o produzcas esa característica asesina, serás absorbido más profundamente en el proyecto. La creación de software es un proceso que no termina cuando la función está lista.

ii) Solo considere proyectos que están actualmente activos

Eres nuevo en la codificación. Por lo tanto, busca aprender un montón de cosas escribiendo más código sobre proyectos importantes. Lo último que desea darse cuenta después de dedicar su tiempo y energía a producir una función es que el propietario interrumpió el proyecto.

Feliz codificación

¡Salud!

Twitter ( @geoffreybans )

Gracias por el A2A.

El código abierto funciona al hacer que muchas personas contribuyan a la creación y mantenimiento de software. La cosa es que funciona bien solo cuando las personas realmente están contribuyendo.

El reciente error de Heartbleed en OpenSSL es un ejemplo sorprendente. El error fue introducido por un programador, contribuyendo a un proyecto con solo cuatro programadores, y es sorprendente saber que ninguno de ellos tenía OpenSSL como un trabajo de tiempo completo. Nadie atrapó el error hasta dos años después de que estuviera en estado salvaje. Después de todo, la Ley de Linus que “dado suficientes globos oculares, todos los errores son superficiales” se basa en que haya suficientes globos oculares.

Para muchos programadores, la idea de contribuir a proyectos: el código abierto parece demasiado difícil y requiere mucho tiempo. No necesita ser un genio de la programación con todo el tiempo del mundo para hacer una contribución significativa.
Eso simplemente no es verdad. Los proyectos exitosos de código abierto prosperan con una amplia variedad de contribuciones de personas con todos los niveles de habilidades de codificación y compromiso. Por lo general, una persona corrige la advertencia del compilador, otra cierra un error o agrega a la documentación, muy pronto estás hablando de un progreso real.

Para un gran número de personas, la parte más difícil es comenzar. Aquí hay algunas formas en que puede comenzar a contribuir de inmediato, en el nivel que le resulte más cómodo.

1. Informar un error

La gestión de errores es probablemente una de las formas menos atractivas y aburridas de contribuir a un proyecto de código abierto, pero también es una de las más importantes.
Siempre que encuentre un error en un producto de código abierto que utilice, repórtelo al sistema de seguimiento de errores del producto. Esta es probablemente la cosa más útil que puede hacer para contribuir a un proyecto, porque si los usuarios como nosotros no informan los errores que encontramos, es probable que los desarrolladores no los encuentren.

2. Escriba un ejemplo para la documentación.

Pocos desarrolladores están ansiosos por escribir documentación, pero es fundamental para el éxito de los proyectos de código abierto. Piénselo, ¿qué es lo primero que busca al explorar un nuevo proyecto? La documentación. ¿Y qué es lo primero que buscas en esa documentación? Ejemplos de cómo usarlo.

“Aquí te sugiero que hagas para encontrar tu pareja perfecta:

  1. Si tiene un proyecto de código abierto que ya utiliza, conoce y le interesa, debería ser su primer candidato para intentarlo. De lo contrario, piense en lo que le gustaría hacer en general y busque un proyecto en esta área.
  2. Cuando haya encontrado un proyecto potencial, no se apresure. Intenta usarlo tú mismo. ¿Es tan bueno en acción como parecía por descripción y comentarios? Si no, no es un completo show-stopper; tal vez sea una oportunidad para que saltes y realmente marques la diferencia. Después de todo, nadie necesita otro desarrollador para un producto perfecto. Pero le dará una idea importante de si desea ser parte de este proyecto, mientras adquiere experiencia de primera mano con las nuevas tecnologías en un área que le interesa.
  3. Además, antes de comenzar a invertir demasiado tiempo en el proyecto y aprender sus entresijos, considere pasar un par de semanas en las listas de correo del proyecto, foros e incluso en el sistema de seguimiento de errores. Si comienzas a contribuir al proyecto regularmente, pasarás mucho tiempo allí “.

-kdubinets (StackExchange)

Esto es lo que hice:

Comencé a aprender programación leyendo el libro del lenguaje de programación C, también conocido como K y R2. Como había desarrollado interés en los compiladores, comencé a experimentar con un compilador de juguetes propio en C, y aprendí algo de la teoría del compilador. Teniendo algo de experiencia escribiendo un compilador de juguetes, comencé a incursionar en GCC, enviando parches triviales e interactuando con la comunidad. Solicité GSoC’14 a GCC, que fue mi primera contribución real al proyecto, y gracias a eso, hoy estoy trabajando a tiempo completo en GCC.

Mi sugerencia sería similar: comience a experimentar con proyectos de juguetes en su área de interés y una vez que se sienta cómodo, busque proyectos de código abierto existentes en esa área. Un buen punto de partida sería enviar parches para errores fáciles, o pocos parches de refactorización, lo que podría ayudar a familiarizarse con la base de código. Muchos proyectos tienen “tareas fáciles” marcadas explícitamente para los recién llegados. Y hago hincapié en este punto: no tenga miedo de hacer preguntas u orientación en la lista de correo , no existe una pregunta estúpida -;)

Si eres estudiante, te recomiendo que solicites el programa GSoC. Lo bueno de esto es que los mentores están obligados a prestar atención personal a su progreso, lo que podría ayudar mucho a familiarizarse con el proyecto y la comunidad.

¡Buena suerte! -;)

Esta pregunta (cómo comenzar) es fácil. Pero contribuir a proyectos de código abierto es más difícil.

Primero, sugeriría instalar y usar alguna distribución de Linux en su computadora, porque Linux es amigable para el desarrollador y está hecho de software libre. Asegúrese de usarlo principalmente en la línea de comandos (así que lea la Guía avanzada de secuencias de comandos Bash) y lea Programación avanzada de Linux

Luego, elija algún proyecto de software libre (tal vez en github) que le guste y use, y al que quiera hacer contribuciones. Para un primer proyecto, no elija un gran software libre, es decir, elija un pequeño proyecto de software libre , algo como máximo de cien mil líneas de código fuente (no comience con grandes proyectos de software libre como Firefox o GCC o el Kernel de Linux). Estar familiarizado (como usuario) con ese software. Poder compilarlo, compilarlo e instalarlo fácilmente desde el código fuente. Construya e instale su última versión (y / o su instantánea de desarrollo o troncal). Probablemente tenga una idea de algunas características que desea agregar. Por cierto, si puede proponer una solución a algún error existente, ¡también será bienvenido!

Estudia el código fuente. Haga preguntas técnicas a su comunidad de desarrolladores (en la lista de correo o foro apropiado). Discute tus ideas. Luego, escriba un pequeño parche (menos de cien líneas) y envíelo. Repetir.

Bueno, el código abierto es un área amplia. Cualquier cosa puede ser de código abierto, ya sea una biblioteca pequeña o un sistema operativo realmente grande. Primero necesita encontrar a lo que quiere contribuir.
Déjame darte un ejemplo, digamos que uso una distribución de Linux, que tiene Gnome como entorno de escritorio. Encontré algún problema que sigue ocurriendo en el sistema y es reproducible, bueno, se llama error. Puedo presentar un informe del error en el bugzilla de gnome. Incluso puedo tratar de corregir el error, pero para eso necesito identificar dónde ocurre el problema, que es un trabajo difícil. Requiere leer mucha documentación y comprender el código de otra persona, pero si lo he hecho, puedo agregar más funcionalidades al código. Pero el código también debe ser aceptado por la comunidad y debe estar lo más libre de errores posible.

Pasos generales para la codificación de código abierto:
1. Corregir errores. Esa es la mejor ayuda que puedes hacer a la comunidad.
2. Archive tantos errores como sea posible, asegúrese de que algunos se marcarán como Duplicados, pero eso hace que la comunidad sea más consciente del problema.
3. Use más software de código abierto, bueno, este debería haber sido el punto 1. Sin usar ningún software de código abierto, realmente no puede contribuir.
4. Cargue el parche en un error o una mejora y espere a que el administrador lo pruebe y le dé una confirmación o quizás le informe el problema con su solución.
5. ¡Disfruta de la gloria de tu código siendo utilizado por muchas personas en todo el mundo! 🙂

Hay muchos programas que usa todos los días que son de código abierto y ni siquiera se da cuenta. Por ejemplo:
1. Mozilla Firefox
2. Chromium (proyecto padre de Google Chrome)
3. Casi todos los navegadores excepto Apple Safari e IE.
4. OpenSSL
5. GIMP
6. Inkscape
7. Linux
8. VLC
9. Android (AOSP)
10. Git

Existe la posibilidad de que no haya nada que use diariamente a lo que no quiera contribuir, por lo que debe consultar algunos recursos en línea.

1. Github -> https://github.com (mejor para principiantes)
2. Koding -> https://www.koding.com
3. SourceForge–> http://sourceforge.net (Proyectos un poco difíciles de encontrar aquí)

La codificación de código abierto también requiere etiquetas. La mayoría de las conversaciones que tendrá con los desarrolladores serán en IRC o listas de correo. Debes ser cortés con la gente, ya que todos están viendo lo que estás escribiendo y nadie quiere un mal jugador en el equipo. Además, las personas no parecen responder tan rápido en IRC o en las listas de correo, así que espere un momento. Puede demorar algunas horas hasta que vea una respuesta, pero no irrite a las personas enviando correos no deseados o la sala de chat.

Aprendizaje rápido que debes hacer:
1. Algún sistema de control de versiones probablemente Git (el más utilizado ahora).
2. Aprenda a usar IRC, es realmente divertido de usar y una buena manera de hacer nuevos amigos que comparten la misma pasión que usted.
3. La mayoría de los codificadores de código abierto usan un sistema basado en * nix debido al acceso a la terminal, pero Windows también funciona bien. Hay muchos proyectos que se desarrollaron en Windows pero son de código abierto. Pero le recomendaría que cambie a Linux, está más hecho a medida para codificadores, o puede adaptarlo a sus necesidades. Windows carece de ese tipo de personalización. (Solo recomiendo usar Linux, no es obligatorio).
4. Aprenda python o Java o JS. C tiene muchos proyectos, pero al principio son muy complejos de entender. Los proyectos C tienden a tener una documentación más pobre en comparación con Java o Python.

Espero que esta respuesta ayude. Si alguien conoce más fuentes para encontrar proyectos de código abierto, por favor comparta.

También eche un vistazo al programa Google Summer of Code, que es una forma de inculcar hábitos de código abierto en las personas. Es un buen programa con muchas grandes organizaciones como parte de él.

Actualmente, soy desarrollador en dos organizaciones de código abierto: GNOME y Kivy. Aquí va mi historia.
Comencé con una contribución a Open Source, cuando quería presentar una solicitud en Google Summer of Code 2013. Es la mejor manera para que un estudiante conozca la comunidad de Open Source. Decidí presentar dos propuestas, una para GNOME y otra para Python Software Foundation (PSF). Como solo uno de ellos será aceptado, mi propuesta de PSF fue aceptada. Entonces, comencé con mi proyecto en PSF. Mi suborganización era Kivy. Completé el proyecto con éxito en Kivy y ahora soy uno de los miembros de Kivy. A veces también contribuyo a Kivy.
Decidí contribuir a GNOME también. Primero, envié muchos parches para errores a GNOME. Yo mismo archivé los errores y presenté parches para ellos también. Después de enviar más de 40 parches, me convertí en desarrollador en GNOME. Aunque no soy mantenedor de ninguno de los proyectos de GNOME. Pero aún así, contribuyo a GNOME regularmente.

Editar:
Para contribuir a tales proyectos:

  • Debes ser bueno en el idioma en el que está trabajando el proyecto. Puede ser C, C ++, Python o Java o cualquier otro.
  • Debería ser bueno con las bibliotecas principales del proyecto como Gtk + (o enlaces de lenguaje) para GNOME, Qt para KDE, etc.
  • Siempre es mejor ser bueno en Data Stuctures y Algorithm. Asegúrese de tener un buen conocimiento de ellos.
  • Debe saber cómo usar su sistema de Control de versiones, principalmente Git o Mercurial.
  • La mayoría de los principiantes abandonan el proyecto temprano porque no pueden entender la base del código actual. Asegúrate de no hacer eso. Lo más difícil es el comienzo y al principio tienes que entender una base de código tan grande.
  • Comience descargando y compilando primero el código fuente.
  • Luego estudie README, INSTALL, HACKING u otros documentos para tener la idea de las pautas de codificación. Debe seguir estas pautas, ya que se utilizan en todo el proyecto y hacen que el código sea coherente y fácil de entender.
  • Luego arreglando los errores. Los mantenedores y otros desarrolladores son muy útiles. Seguramente lo guiarán para resolver el error más fácil y luego pasar al difícil.
  • Después de que te hayas acostumbrado al código fuente arreglando errores. Pregunte a los encargados de mantenimiento o desarrolladores sobre qué más puede trabajar. Seguramente responderán.
  • Después de muchos parches, la comunidad comenzará a confiar en usted y puede convertirse en uno de los desarrolladores.

More Interesting

¿Qué hace un desarrollador de software en principio? Mi designación es esa también, pero solo puedo hacer desarrollo web en el trabajo.

¿Cuántos programadores se necesitan para este tipo de proyecto?

¿En qué debería centrarme, ser un desarrollador de software desempleado?

He sido desarrollador de software durante más de 8 años y todavía soy débil en programación y algoritmos, ¿cómo puedo mejorar?

Acabo de dejar mi trabajo de desarrollador de software para tratar de convertirme en cantante. Mis amigos y padres no me apoyan. ¿Qué tengo que hacer?

¿Por qué empresas como Delhivery contratan desarrolladores de software de manera tan agresiva?

¿Qué parte de la Introducción a los algoritmos de Thomas Cormen debería ser capaz de comprender y utilizar para cuando termine mi BS en Informática?

A los 25 años, ¿soy demasiado viejo para solicitar un programa de pasantías de desarrollador de software?

¿Qué promociones obtendré si me convierto en desarrollador de software?

Cómo manejar el trabajo artístico en el desarrollo de juegos independientes como desarrollador de software

¿Las ecuaciones diferenciales parciales son utilizadas por los desarrolladores de software y cómo se comparan con el procesamiento de imágenes?

Cómo convertirse en un mejor programador para full stack

¿Pueden los programadores principiantes escribir código limpio?

¿Cómo trato con un compañero de trabajo lento que está comiendo demasiado de mi tiempo?

¿Qué tipo de desarrollador de software necesitará la industria en 5 años?