La mejor respuesta
Me quedo con esto.
Primero de todo, estoy completamente en desacuerdo con una respuesta (con 1K + upvotes) en este hilo junto con las líneas, « Si eres un principiante, ¡no contribuyas a un proyecto de código abierto en GitHub! Es una aventura sin salida que conduce a frustración y ira !»
Si algo causó frustración e ira en alguien, eso no significa que lo mismo estaría causando una reacción similar en usted. Lo siento, pero eso fue una perspectiva negativa.
De hecho, contribuir al código abierto es algo que lo diferencia de los principiantes, intermedios o experimentados. Le da un impulso para avanzar más en su viaje tecnológico o de codificación. Por supuesto, no querrás ser principiante para siempre, ¿verdad?
Recomiendo encarecidamente a los principiantes que contribuyan al código abierto en GitHub y yo Le mostraré exactamente cómo puede hacer eso justo después de leer esta respuesta.
Mucha gente piensa que contribuir a proyectos de GitHub de código abierto necesariamente requerirá que escriban algún tipo de código.
Tienen esta imagen artificial en su mente de que algún repositorio público de alguna biblioteca o marco de JavaScript de código abierto tendría algún tipo de problema o error y tendrán que corregir ese error si deciden contribuir.
Eso no es cierto (todo el tiempo) .
Solía tener una imagen similar en mi mente cuando estaba empezando por contribuir al código abierto en GitHub.
Contribuir al código abierto no significa necesariamente escribir código.
- Dar a las personas pautas para aprender algún lenguaje de programación también puede ser considerado un contribuyente de código abierto
- Mostrar a las personas el camino para convertirse en desarrolladores front-end también puede considerarse una contribución de código abierto.
- Bueno, el hecho de que estoy escribiendo esta respuesta para enseñar cuáles son los La forma no tradicional de contribuir a las actividades de código abierto en GitHub también se puede considerar como mi contribución al código abierto.
Ya basta de hablar. Permíteme darte una idea de cómo puedes contribuir al código abierto ahora mismo.
Comenzaré con la elaboración de mi experiencia personal sobre la contribución a un repositorio público de GitHub.
Lo soy parte de algunos foros relacionados con la comunidad de desarrolladores. Muchos de ellos. Un día, hubo un tipo que creó un hilo que menciona:
«Creé el repositorio de GitHub con con el objetivo de proporcionar programas 999 C para principiantes. Creé 7 de ellos. Quedan 992 más «.
Esto me pareció muy interesante. Rápidamente hice clic en el enlace de su repositorio y exploré 7 programas que creó. Eran realmente amigables para los principiantes y se alineaban perfectamente con su objetivo, ayudar a las personas que se están iniciando en la programación en C.
Rápidamente bifurqué su repositorio de GitHub. Cloné ese repositorio en mi máquina local. Y creé un programa C amigable para principiantes con solución, siguiendo el formato y estructura que el chico siguió para otros 7 programas. Envió los cambios al repositorio bifurcado. Hizo una solicitud de extracción (PR) al repositorio original de ese tipo con un mensaje «se agregó otro programa C compatible con principiantes con solución». Ese tipo aprobó mi solicitud de relaciones públicas y fusionó los cambios en su rama principal. Al día siguiente, hice lo mismo con un programa más.
Ahí va. Mi contribución de código abierto. Si. Necesitaba escribir código para esta contribución. Sin embargo, era algo totalmente diferente a lo que estaba imaginando antes. No resolví algún error o problema de nivel avanzado en alguna biblioteca o marco famoso. Solo pensé en un programa para principiantes que aprendimos en la universidad, proporcionamos una solución y eso es todo.
Puedes crear un repositorio de GitHub en tu propio perfil basado en estas ideas:
- los mejores recursos para aprender el desarrollo front-end (mencione enlaces de artículos, libros, recursos de video, cursos gratuitos, etc.)
- los mejores scripts de automatización de tareas en Python (fuentes de scripts en línea y recopilarlos en un solo lugar , dé crédito a los autores originales)
- descripción general de las diferentes bases de datos (eduque a la gente sobre bases de datos famosas como MySQL, MongoDB, SQL Server, Oracle, etc. Dígales por qué deberían seleccionar una sobre otra.)
- o cualquier cosa que crea que sería educativo para todo Internet
Si le gusta ReactJS, no dude en contribuir a mi repositorio de GitHub: UnnitMetaliya / 99-reactjs-project-ideas
Estoy trabajando para proporcionar 99 ideas de proyectos simples que la gente puede desarrollar usando la biblioteca ReactJS. ¿Tiene una idea? Excelente. Bifurca mi repositorio. Cree una carpeta para su idea siguiendo la misma estructura que la carpeta # 001. Empújelo al repositorio que bifurcó. Realice una solicitud de extracción a mi rama maestra. Y eso es todo.
tl; dr >> Contribuir al código abierto en GitHub no requiere necesariamente escribir código. Hay cientos de formas diferentes de contribuir al código abierto además de escribir código.
Respuesta
En primer lugar, el software de código abierto es un software que se puede utilizar libremente, cambiado y compartido (en una forma modificada o sin modificar) por cualquier persona.
Siendo ese el significado teórico de lo que es el código abierto, el significado más profundo se alinea con la visión de mantener las cosas transparentes para el usuario para que el el usuario comprende totalmente lo que está sucediendo y, por lo tanto, tiene la oportunidad de marcar la diferencia al agregar la función que desea más del software / hardware en particular.
El primer paso en el código abierto es identificar la organización que te gusta o cuya visión se alinea con lo que realmente quieres devolver al mundo. Cada una de estas organizaciones tiene su propia visión y misión para devolver algo a la gente, yo contribuyo a Mozilla por su visión y su misión en la que realmente creo, dar a las personas una Internet sin fronteras y mantener la web libre.
Nuestra misión es promover la apertura, la innovación y las oportunidades en la Web.
En Mozilla, somos una comunidad global de tecnólogos, pensadores y constructores que trabajan juntos para mantener vivo Internet y accesible, para que personas de todo el mundo puedan ser contribuyentes y creadores informados de la Web. Creemos que este acto de colaboración humana a través de una plataforma abierta es esencial para el crecimiento individual y nuestro futuro colectivo.
También hay muchas otras organizaciones, como Fedora, Ubuntu, GCC, Python, OpenCV, KDE. Muchas personas que están en estas organizaciones trabajan únicamente porque la misión / visión se alinea con su pensamiento o cómo creen que sería lo mejor para retribuir a la sociedad en general.
Después de elegir la organización, habrá múltiples proyectos que están disponibles para que elijas o contribuyas, Firefox es uno de los proyectos más importantes de Mozilla, hay muchos otros proyectos como MDN (Mozilla Developer Network), Firefox OS, Persona, etc., La organización de su elección puede tener una página web / wiki dedicada a cómo empezar a contribuir. En Mozilla tenemos algo llamado ¿Qué puedo hacer por Mozilla [1]. Ayuda a llevar claramente a las personas a sus intereses en función del lenguaje de programación de su elección etc., así que busque algo como eso que pueda ayudarlo a comenzar, el siguiente paso es buscar algunos errores, tomar el código fuente requerido y construir el sistema en su máquina de desarrollo particular y finalmente enviar un parche.
La principal diferencia Entre trabajar con la base de código de una organización de código abierto y la base de código utilizada durante las estructuras de datos universitarias o cursos similares está el tamaño de la base de código. Averiguar dónde se encuentra el contenido y qué segmento de código hace cuál es el mayor desafío. Inicialmente, también podría ser un desafío comprender la base del código a pesar de que es posible que conozca el lenguaje de programación, pero el dolor vale la pena. Tendrá gente increíble para ayudarlo a lo largo del proceso, quienes podrían tomarse un poco de su tiempo libre para ayudarlo si está yendo en la dirección correcta y sabe lo que está haciendo exactamente.
Sí, contribuir a proyectos de código abierto requiere que tengas un conocimiento sólido de al menos un lenguaje de programación en caso de que estés dispuesto a contribuir a su base de código. Aparte de esto, bastante buena habilidad de lectura y paciencia para leer la documentación de cada proyecto, entendiendo uno de los muchos sistemas de control de versiones, ya sea git, mercurial o svn
Hasta donde yo sé, existe » Como nada se llama un enfoque «correcto», a veces la contribución de código abierto de un individuo entra porque usa el software en particular y su vida se vuelve más fácil al integrar una característica específica en este software, por lo que lo integran y lo vuelven a aportar al código original base, diferentes personas tienen diferentes requisitos y personalizan el software de acuerdo con sus necesidades, algunos contribuyen con sus cambios con la esperanza de que ayude a alguien más, algunos prefieren tomarlo como un proyecto independiente independiente. La mejor manera de comenzar es elegir el proyecto y sentir pasión por él.
ej.El navegador Tor es un proyecto derivado de Firefox, se ha personalizado para proporcionar anonimato y se ha convertido en un proyecto independiente.
Lo que elijas, tiene que ser algo que uses de alguna manera, de esa manera sabes lo que estás haciendo y también sabes cómo funciona el software, por lo que es más fácil correlacionar el funcionamiento del código con su funcionamiento real.
Algunas sugerencias de mi parte cuando estás entrando en el El mundo de la contribución de código abierto sería
- Comience a usar sistemas basados en Linux / Unix.
- Quédese en la terminal y disfrute trabajando desde allí.
- Conozca lo básico cosas de línea de comando como, man, grep y para todos los demás comandos tiene un archivo man. (man file = manual, si quiere saber cómo usar un comando específico, diga grep, simplemente haga `man grep`)
- Un buen editor; vim v / s emacs war siempre está ahí entre desarrolladores, pero también puedes optar por Sublime Text / Notepad ++
Contribuir al código abierto es una sensación increíble como desarrollador porque sabes que esos pequeños Las líneas de código que estás escribiendo están impactando las vidas de millones de personas que están usando el software.
Otra cosa que surgirá en estos tiempos son los fanboys, compartiré una experiencia contigo , siendo un colaborador de Mozilla, la pregunta a la que nos enfrentamos como evangelistas [2] es que la gente obstinada dice «¡Yo uso Chrome! No me gusta Firefox»
Genial, no tenemos absolutamente ningún problema con eso. Creamos Firefox solo porque nos encanta y el objetivo principal aquí no es qué navegador usas realmente, nos encantaría si utilizaras Firefox, pero el objetivo principal es tener una web abierta.
Una web que es gratuita, abierta, segura, privada y, sobre todo, una web que es nuestra.
Esperamos verte con la comunidad de Mozilla.
[1] ¿Qué puedo hacer por Mozilla [2] Grupo de trabajo / Evangelismo