Creo que tienes mucho tiempo para prepararte.
Respuesta corta:
Lo primero que debe hacer es comprender lo que le interesa en el campo de la informática (PNL, Web Dev, ML, etc.). Lo siguiente sería elegir / aprender un lenguaje de programación con el que pueda perseguir sus intereses o con el que se sienta completamente cómodo. Lo último sería elegir una organización de código abierto alineada con sus intereses (consulte la lista completa aquí: Organizaciones aceptadas para Google Summer of Code 2014, Organizaciones aceptadas para Google Summer of Code 2013)
Prerrequisitos: GSoC es un programa que espera que los estudiantes codifiquen sus proyectos en el período de 4 meses. Por lo tanto, debe sentirse cómodo con la programación, las mejores prácticas de codificación y, por supuesto, interesado en el desarrollo de código abierto.
Respuesta larga:
Ahora compartiré mi experiencia en particular, que podría ayudarlo mejor ya que estuve en una posición similar hace 2 años. Como mencioné anteriormente, uno necesita comprender dónde se encuentran sus fortalezas / pasiones en Comp Science. Si no tiene una comprensión clara de lo que le gusta hacer, le sugiero que revise las listas de organizaciones y lea la página wiki. Siempre puedes filtrar tu búsqueda en función de idiomas, dominios, etc. Estoy seguro de que podrás encontrar muchos proyectos que te dejarán boquiabierto. Llevaba mucho tiempo trabajando en tecnologías web. Así que filtré organizaciones basadas en etiquetas como php, javascript, html ya que estaba más familiarizado con la pila LAMP.
- He estado tomando clases de francés en la escuela durante años, pero todavía me cuesta comprender cuándo se habla. ¿Cómo puedo mejorar esto?
- ¿Puedo legalmente grabar una conversación privada?
- Solicité una visa a largo plazo en la República Checa con el patrocinio de una empresa. Han pasado más de 4 meses. ¿Por qué tarda tanto?
- Me gustaría aprender alemán pero pierdo mi interés por estudiar en 5 minutos. ¿Puedes hacerme como alemán?
- Mi escuela otorga automáticamente un rango de clase número 1 a cualquier estudiante con una calificación de 4.0 o superior, ¿es justo cuando se aplica a las universidades?
Luego, acostúmbrese a git / mercurial / svn u otros sistemas de control de versiones. Configure el proyecto en su máquina local. Si está atrapado en algún momento, recuerde que la ayuda está a solo un correo de distancia. Suscríbase a las listas de correo y comience a interactuar con los desarrolladores en el IRC. A veces, los desarrolladores pueden sugerirle cosas según sus intereses. Recuerdo que el líder del proyecto me dio un módulo desactualizado y se suponía que debía actualizar el SDK.
Cada proyecto tendría una página de “Cómo contribuir”. Esto también tendría enlaces a una página de bugzilla (lista de problemas / errores abiertos). Siempre puede filtrar errores, problemas basados en el nivel de dificultad. Si tiene problemas para entender el problema, nunca dude en hablar con los desarrolladores.
Por último, te sugiero que leas las pautas de desarrollador / codificación. Cada organización tiene su propia forma de hacer las cosas que debes seguir. Intenta corregir tantos errores como sea posible. Esto le ayuda a desarrollar una comprensión del código base. Sí, confía en mí, es un placer enorme ver que tu código se fusiona en el repositorio principal.
Esta fue la fase de calentamiento;). Muchas personas tienden a saltarse la fase anterior y les encanta pasar directamente a la siguiente.
Ahora viene el período de solicitud del estudiante. Cada organización publica una lista de proyectos en su “Página de Ideas”. A veces, los proyectos también se etiquetan según su nivel de dificultad (Fácil, Medio, Difícil). Debería comenzar a discutir con los posibles mentores y comenzar a recibir comentarios sobre sus ideas con respecto al proyecto.
Luego viene la fase de construcción de la propuesta. A veces las organizaciones quieren que te quedes con una plantilla. Crear una propuesta increíble requiere tiempo y esfuerzo. Puede consultar este artículo (Cómo escribir una propuesta increíble para Google Summer of Code) que explica cuáles son los componentes básicos de una propuesta sólida (Metodología, línea de tiempo, patrones de diseño, pruebas), por nombrar algunos. Mira, ahí es donde entra en escena el tema de “Ingeniería de software”.
Obtenga su propuesta revisada por los mentores. Trabaje en los cambios / comentarios sugeridos y envíelo para su revisión nuevamente.
Hecho esto, solo espera hasta que se anuncien los resultados. Si te seleccionan, te puedo asegurar un verano memorable. Si no lo logras, nunca te decepciones. Pídales a sus mentores comentarios sobre lo que salió mal. Siga contribuyendo resolviendo errores / problemas. Después de todo, se trata de contribuir al mundo de código abierto.
Gracias por el A2A.