Es muy simple: primero escriba sus áreas de interés. Simplemente siendo bueno en C ++, las estructuras de datos y los algoritmos no lo harán contribuir al software de código abierto. Contribuir al software de código abierto es completamente diferente de ser seleccionado en una entrevista.
Primero aprende un sistema de control de versiones. Más comúnmente se usa Git; otros son Subversion y CVN.
Luego, según su interés, aprenda los siguientes idiomas, bibliotecas y API:
Sistema operativo (kernel de Linux, GNU Hurd, illumos o cualquier otro kernel): C, buenos conceptos de sistema operativo
- ¿Cuál es el código MATLAB para realizar el algoritmo AntNet?
- ¿Alguien puede enviar el código para la búsqueda binaria en cadenas con clasificación en C ++?
- ¿Cuáles son las ventajas y desventajas de los algoritmos y la heurística en la resolución de problemas?
- ¿Debería centrarme en el aprendizaje de algoritmos y estructuras de datos en profundidad, o aprender una habilidad como desarrollo web o desarrollo móvil usando Nanodegree?
- ¿Cuál es la diferencia entre un algoritmo y una fórmula?
Programación del sistema: C, C ++, POSIX y la API de Windows
Desarrollo de aplicaciones GUI: C, C ++, Java, Python, GTK +, Qt, wxWidgets, Clutter, Swing, SWT, .NET y muchos otros.
Desarrollo web: PHP, Python, Ruby, Perl, Django y Ruby on Rails.
Desarrollo de aplicaciones de Android: Java, C, C ++ y Android SDK / NDK.
Y muchos otros. No los conozco a todos, pero estos son algunos comunes.
Después de tener experiencia con cualquiera de ellos, vaya a GitHub, SourceForge, OpenHatch, Bitbucket y muchos otros para descubrir el proyecto que más le interese.
Luego vaya a su sitio de errores, resuelva un error y envíe un parche o solicitud de extracción o sea cual sea su mecanismo.
Voila !! Ahora estás contribuyendo a un proyecto de código abierto. Algunos grandes proyectos como GNOME, Fedora, etc. utilizan Bugzilla y sus propios servidores Git.
Además, puede ver Google Summer of Code. Es un programa de pasantías de Google donde los estudiantes contribuyen al software de código abierto.
PD: Siempre lea el README o la guía de contribución antes de contribuir a un proyecto. Siempre siga sus pautas y reglas de codificación.