SlideShare a Scribd company logo
1 of 23
Introduciendo a
Programa-me
Mi nombre es José Ráez. He hecho esta
presentación para ayudar y animar a otros
estudiantes y centros a participar.
Nuestro equipo, RuralHome The Nightmare,
formado junto a Raúl Ortiz y Rubén Fernández,
fue campeón de la fase regional y final nacional
de 2017.
Actualmente soy programador Back-End en C#
y Java.
Es un concurso de programación español para
alumnos de Formación Profesional de 1º y 2º. Los
alumnos participan en grupos de 3.
Se divide en dos fases: una fase regional dividida
en varias competiciones por regiones, y una fase
nacional donde van los primeros puestos de las
fases regionales.
Participar es gratis o con una pequeña cuota de
inscripción para material del concurso.
Puedes visitar la página principal del concurso en
http://www.programa-me.com o en twitter
@programame
¿Qué es Programa-me?
Además, participar tiene ventajas
● El formato del concurso es similar a las entrevistas
técnicas que hacen las compañías.
○ Conocer cómo afrontarlas os dará una gran ventaja
durante la entrevista.
○ Es incluso recomendable echar un ojo a los problemas
como práctica para afrontar una próxima entrevista.
● Es una gran incorporación a vuestro currículum.
○ Solamente por participar ya os diferenciais de otros
alumnos.
○ Lograr buenas posiciones os servirá para entrar en la mira
de empresas.
● Viviréis una experiencia de trabajo en equipo real.
○ Tendréis que aprender a repartir, priorizar y resolver en
entornos de tiempo limitado.
¿Dónde empezar?
Acepta el reto www.aceptaelreto.com
En el encontrarás todo tipo de problemas divididos por
materia y dificultad, así como los problemas de otras
ediciones. Aquí podrás prepararte para el concurso.
Concursos de calentamiento www.programa-me.com
Así mismo, suelen hacerse ediciones de calentamiento alrededor de navidad. Contacta con los
organizadores para conocer que se está organizando ese año.
Calentamiento Navidad: http://programa-me.com/2018/reg/navidad/
También podéis probar en Las 12 Uvas: http://www.las12uvas.es/2017/#/quees
https://www.aceptaelreto.com/problem/statement.php?id=116
● Para buscar nuevos problemas, recomiendo buscar
por Categorías > Programación
● No hace falta seguir el orden propuesto, los
problemas no están por orden de dificultad.
● Al principio céntrate en pensar cómo resolverías los
problemas con tus compañeros.
○ Según se acerque el concurso, intenta programarlos
y subirlos a la web para coger soltura y
acostumbrarte a posibles fallos.
Afrontando los problemas
En esta sección hablaremos sobre el funcionamiento de los problemas de Acepta el reto y
Programa-me, para evitar tener dudas con cómo entran los datos y poder centrarnos en buscar la
solución.
Entrada y salida de datos
● La entrada siempre va por el flujo estándar y la salida siempre va por la salida estándar. La entrada
y la salida además tienen que ir ser una linea (C y C++: carácter 'n', Java: println o carácter 'n')
● ¡La salida no tiene que salir después de toda la entrada! De hecho, debéis escribir la solución
después de cada línea/problema.
● Alumnos de 1º: Aunque no se pueden incluir librerías, se les puede proveer un fichero con métodos
leerLinea y escribir para que no tengan que enfrentarse a I/O o flujos.
Ejemplos: C++
C
Java
Consejos:
● Java: Usad split para separar los datos.
C y C++: Cread una función que simule split con strtok
(necesitareis memoria dinámica).
○ Es SUPER ÚTIL para poder luego iterar sobre los
datos rápidamente.
○ No convirtáis los datos a sus tipos reales hasta que
los uséis para operar.
○ C y C++: También podéis usar scanf()
● Si tenéis una frase o dibujo formado por varias líneas,
recordad que podéis iterar por un string como si de un
array se tratase. (También en números para ir cifra por
cifra)
● Así mismo, recordad que cuando busquéis un valor en
concreto, basta con poner la cadena que lo generaría (por
ejemplo, si la fecha 25/11 entra como "25 11" podéis mirar
directamente si es igual, no hace falta que saquéis los dos
números).
● Por último: ¡no hace falta que verifiqueis que los datos son
válidos! Siempre obedecerán el formato presentado.
Además, los problemas irán introduciendo los datos generalmente de una de estas 3 formas:
Estructuras de datos
● Conocimientos de manejos de arrays y strings es más que suficiente para afrontar las pruebas con
garantías. Conocimiento de listas y diccionarios puede dar ventaja pero no es necesario.
● Matrices: practicar el patrón de "pintado".
Recursiva que recorre todas las celdas
disponibles.
● ¡Cuidado al ordenar números como strings!
● Problemas de ordenamiento pueden ser
bastante fáciles o difíciles. Ante la duda,
dejadlos para el final.
¿Cómo funciona el concurso?
Puntuación
● Tu puntuación es tus problemas resueltos. Para desempatar, el tiempo hasta la resolución con penalizaciones.
● Al tiempo se suma el minuto en que has resuelto el problema y minutos extra de penalización por intento para
resolverlo (los fallos en problemas sin resolver no cuentan). Siempre aparece Intentos/Tiempo total.
● Esta es una razón por la que es super importante localizar y resolver los problemas fáciles rápido.
○ Equipo 1 y 2: 3 problemas resueltos en el minuto 30 sin fallos.
○ Equipo 1: 3 | 40 -- Primero P1: minuto 2, P2: minuto 8, P3: minuto 30. 2 + 8 + 30 = 40.
○ Equipo 2: 3 | 70 -- Resolvió primero el P3 en el minuto 22. Luego resolvió el P1 en el minuto 23 y luego el
P2 en el minuto 25. Pese a tardar solo 1 y 3 minutos en P1 y P2, al resolverlos más tarde tienen peor
puntuación.
Unas notas finales:
● Durante el concurso es mucho más importante ser
corto a la hora de escribir que claro, y poder reusar
todo el código que sea posible.
○ Códigos de lectura/escritura, iteración,
transformación... contra más generales mejor,
para poder copiarlos de problema en problema.
● C y C++ disponen de un código más escueto y
tiempos de ejecución más rápidos
Java en el JDK tiene muchísimas utilidades.
¡Conoce bien las ventajas de tu lenguaje!
● Duerme bien la noche antes del concurso.
● Os podéis llevar hojas al concurso con código o notas
que os puedan servir de utilidad. También tenéis
disponible las APIs de C++ y Java.
● ¡Pasadlo bien!
¿Te has quedado con más ganas?
Otros concursos:
Para seguir poniéndote a prueba.
Las 12 Uvas (Diciembre)
http://www.las12uvas.es
Google Hash Code (Marzo)
https://hashcode.withgoogle.com
Tuenti Challenge (Abril)
https://contest.tuenti.net
Everis Codefest (Noviembre)
http://codefest.everis.com
Webs internacionales:
Profundiza en algoritmia. Recruiting internacional.
LeetCode - https://leetcode.com/
Ideal para practicar y aprender algoritmia. Sus
problemas y foros vienen con guías para su
resolución o con soluciones alternativas.
HackerRank- https://hackerrank.com
Sitio con competiciones y reclutamiento
internacional. Ideal para probar competiciones
avanzadas y destacar a nivel técnico (tiene su
propia clasificación).
Despedida y contacto
Muchas gracias por llegar hasta aquí, y espero que
os haya animado a participar y/u os haya ayudado.
Si tenéis alguna duda o queréis dejarme un saludo,
podéis encontrarme en:
-Twitter: @joshiraez
-E-mail: contacto@joseraez.com
-LinkedIn: http://joseraez.com
También he creado un repositorio para que
podamos compartir recursos para el concurso:
https://github.com/joshiraez/RecursosProgramame
Agradecimientos
Quería aprovechar para dar mis agradecimientos a:
Nuria Fuentes, nuestra entrenadora y profesora de programación.
Por introducirnos al concurso y apoyarnos durante todo el camino,
además de ser una magnífica profesora y persona.
A Manuel, Jesús, Raúl y Rubén, mis compañeros de equipo
Por todo el esfuerzo y los buenos momentos en el camino a la fase
nacional de las ediciones 2016 y 2017 de Programa-me.

More Related Content

Similar to Introducción a Programa-me - Concurso español de programacion (actualizado)

Metodología de la solución de problemas po equipo5
Metodología de la solución de problemas po equipo5Metodología de la solución de problemas po equipo5
Metodología de la solución de problemas po equipo5mendozaperla
 
El arte de programar prev
El arte de programar prevEl arte de programar prev
El arte de programar prevjtk1
 
Lo básico para programar
Lo básico para programarLo básico para programar
Lo básico para programarCelestino Duran
 
variables, constantes, intro flujograma
variables, constantes, intro flujogramavariables, constantes, intro flujograma
variables, constantes, intro flujogramaKarla Pabón Vallejo
 
Trabajo de tecnologia 3 er periodo
Trabajo de tecnologia 3 er periodoTrabajo de tecnologia 3 er periodo
Trabajo de tecnologia 3 er periodogabrielaalban8
 
Lo básico para programar
Lo básico para programarLo básico para programar
Lo básico para programarCelestino Duran
 
Trabajo de tecnologia 3 er periodo
Trabajo de tecnologia 3 er periodoTrabajo de tecnologia 3 er periodo
Trabajo de tecnologia 3 er periodogabrielaalban8
 
clase-Unidad1 y Unidad2-Pseudo-Print-Scanf-IF (1).pptx
clase-Unidad1 y Unidad2-Pseudo-Print-Scanf-IF (1).pptxclase-Unidad1 y Unidad2-Pseudo-Print-Scanf-IF (1).pptx
clase-Unidad1 y Unidad2-Pseudo-Print-Scanf-IF (1).pptxJulianSimonetta
 
Diana010
Diana010Diana010
Diana010dani t
 
Charla Tdd Uji 032010
Charla Tdd Uji 032010Charla Tdd Uji 032010
Charla Tdd Uji 032010Carlos Ble
 
Algoritmo Y Pseudocódigo
Algoritmo Y PseudocódigoAlgoritmo Y Pseudocódigo
Algoritmo Y PseudocódigoJohanCaro5
 
Pasos para crear juegos en Android
Pasos para crear juegos en AndroidPasos para crear juegos en Android
Pasos para crear juegos en AndroidGDG Lima
 
Informe de tecnologia
Informe  de tecnologia Informe  de tecnologia
Informe de tecnologia lizisaac
 

Similar to Introducción a Programa-me - Concurso español de programacion (actualizado) (20)

Metodología de la solución de problemas po equipo5
Metodología de la solución de problemas po equipo5Metodología de la solución de problemas po equipo5
Metodología de la solución de problemas po equipo5
 
Proyecto grupo 5
Proyecto grupo 5Proyecto grupo 5
Proyecto grupo 5
 
El arte de programar prev
El arte de programar prevEl arte de programar prev
El arte de programar prev
 
Lo básico para programar
Lo básico para programarLo básico para programar
Lo básico para programar
 
Trabajo de tecnologia grupal
Trabajo de tecnologia grupalTrabajo de tecnologia grupal
Trabajo de tecnologia grupal
 
Trabajo de tecnologia grupal
Trabajo de tecnologia grupalTrabajo de tecnologia grupal
Trabajo de tecnologia grupal
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
variables, constantes, intro flujograma
variables, constantes, intro flujogramavariables, constantes, intro flujograma
variables, constantes, intro flujograma
 
Trabajo de tecnologia 3 er periodo
Trabajo de tecnologia 3 er periodoTrabajo de tecnologia 3 er periodo
Trabajo de tecnologia 3 er periodo
 
Lo básico para programar
Lo básico para programarLo básico para programar
Lo básico para programar
 
Trabajo de tecnologia 3 er periodo
Trabajo de tecnologia 3 er periodoTrabajo de tecnologia 3 er periodo
Trabajo de tecnologia 3 er periodo
 
clase-Unidad1 y Unidad2-Pseudo-Print-Scanf-IF (1).pptx
clase-Unidad1 y Unidad2-Pseudo-Print-Scanf-IF (1).pptxclase-Unidad1 y Unidad2-Pseudo-Print-Scanf-IF (1).pptx
clase-Unidad1 y Unidad2-Pseudo-Print-Scanf-IF (1).pptx
 
Diana010
Diana010Diana010
Diana010
 
Charla Tdd Uji 032010
Charla Tdd Uji 032010Charla Tdd Uji 032010
Charla Tdd Uji 032010
 
Algoritmo Y Pseudocódigo
Algoritmo Y PseudocódigoAlgoritmo Y Pseudocódigo
Algoritmo Y Pseudocódigo
 
Pasos para crear juegos en Android
Pasos para crear juegos en AndroidPasos para crear juegos en Android
Pasos para crear juegos en Android
 
Algoritmos y programacion en C++
Algoritmos y programacion en C++Algoritmos y programacion en C++
Algoritmos y programacion en C++
 
pRogramacion.pptx
pRogramacion.pptxpRogramacion.pptx
pRogramacion.pptx
 
Informe de tecnologia
Informe  de tecnologia Informe  de tecnologia
Informe de tecnologia
 
Trabajo en equipo 1
Trabajo en equipo 1Trabajo en equipo 1
Trabajo en equipo 1
 

Recently uploaded

PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfalexquispenieto2
 
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.pptoscarvielma45
 
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesUNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesElianaCceresTorrico
 
Reporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacaReporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacajeremiasnifla
 
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERASDOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERASPersonalJesusGranPod
 
Base de Datos en Microsoft SQL Server 2024
Base de Datos en Microsoft SQL Server 2024Base de Datos en Microsoft SQL Server 2024
Base de Datos en Microsoft SQL Server 2024CESARHERNANPATRICIOP2
 
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptMarianoSanchez70
 
Tinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaTinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaAlexanderimanolLencr
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASfranzEmersonMAMANIOC
 
Ingeniería clínica 1 Ingeniería biomedica
Ingeniería clínica 1 Ingeniería biomedicaIngeniería clínica 1 Ingeniería biomedica
Ingeniería clínica 1 Ingeniería biomedicaANACENIMENDEZ1
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxClaudiaPerez86192
 
clases de porcinos generales de porcinos
clases de porcinos generales de porcinosclases de porcinos generales de porcinos
clases de porcinos generales de porcinosDayanaCarolinaAP
 
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptaCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptCRISTOFERSERGIOCANAL
 
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptxNTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptxBRAYANJOSEPTSANJINEZ
 
tema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdftema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdfvictoralejandroayala2
 
CARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptx
CARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptxCARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptx
CARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptxvalenciaespinozadavi1
 
TEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdf
TEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdfTEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdf
TEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdfXimenaFallaLecca1
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfedsonzav8
 
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAINTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAJOSLUISCALLATAENRIQU
 

Recently uploaded (20)

PPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdfPPT ELABORARACION DE ADOBES 2023 (1).pdf
PPT ELABORARACION DE ADOBES 2023 (1).pdf
 
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
01 MATERIALES AERONAUTICOS VARIOS clase 1.ppt
 
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotencialesUNIDAD 3 ELECTRODOS.pptx para biopotenciales
UNIDAD 3 ELECTRODOS.pptx para biopotenciales
 
Reporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpacaReporte de Exportaciones de Fibra de alpaca
Reporte de Exportaciones de Fibra de alpaca
 
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdfVALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
 
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERASDOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
DOCUMENTO PLAN DE RESPUESTA A EMERGENCIAS MINERAS
 
Base de Datos en Microsoft SQL Server 2024
Base de Datos en Microsoft SQL Server 2024Base de Datos en Microsoft SQL Server 2024
Base de Datos en Microsoft SQL Server 2024
 
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.pptARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
ARBOL DE CAUSAS ANA INVESTIGACION DE ACC.ppt
 
Tinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiologíaTinciones simples en el laboratorio de microbiología
Tinciones simples en el laboratorio de microbiología
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
 
Ingeniería clínica 1 Ingeniería biomedica
Ingeniería clínica 1 Ingeniería biomedicaIngeniería clínica 1 Ingeniería biomedica
Ingeniería clínica 1 Ingeniería biomedica
 
Comite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptxComite Operativo Ciberseguridad 012020.pptx
Comite Operativo Ciberseguridad 012020.pptx
 
clases de porcinos generales de porcinos
clases de porcinos generales de porcinosclases de porcinos generales de porcinos
clases de porcinos generales de porcinos
 
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.pptaCARGA y FUERZA UNI 19 marzo 2024-22.ppt
aCARGA y FUERZA UNI 19 marzo 2024-22.ppt
 
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptxNTP- Determinación de Cloruros  en suelos y agregados (1) (1).pptx
NTP- Determinación de Cloruros en suelos y agregados (1) (1).pptx
 
tema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdftema05 estabilidad en barras mecanicas.pdf
tema05 estabilidad en barras mecanicas.pdf
 
CARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptx
CARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptxCARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptx
CARGAS VIVAS Y CARGAS MUERTASEXPOCI.pptx
 
TEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdf
TEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdfTEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdf
TEXTO UNICO DE LA LEY-DE-CONTRATACIONES-ESTADO.pdf
 
Manual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdfManual_Identificación_Geoformas_140627.pdf
Manual_Identificación_Geoformas_140627.pdf
 
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICAINTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
INTEGRALES TRIPLES CLASE TEORICA Y PRÁCTICA
 

Introducción a Programa-me - Concurso español de programacion (actualizado)

  • 2. Mi nombre es José Ráez. He hecho esta presentación para ayudar y animar a otros estudiantes y centros a participar. Nuestro equipo, RuralHome The Nightmare, formado junto a Raúl Ortiz y Rubén Fernández, fue campeón de la fase regional y final nacional de 2017. Actualmente soy programador Back-End en C# y Java.
  • 3. Es un concurso de programación español para alumnos de Formación Profesional de 1º y 2º. Los alumnos participan en grupos de 3. Se divide en dos fases: una fase regional dividida en varias competiciones por regiones, y una fase nacional donde van los primeros puestos de las fases regionales. Participar es gratis o con una pequeña cuota de inscripción para material del concurso. Puedes visitar la página principal del concurso en http://www.programa-me.com o en twitter @programame ¿Qué es Programa-me?
  • 4. Además, participar tiene ventajas ● El formato del concurso es similar a las entrevistas técnicas que hacen las compañías. ○ Conocer cómo afrontarlas os dará una gran ventaja durante la entrevista. ○ Es incluso recomendable echar un ojo a los problemas como práctica para afrontar una próxima entrevista. ● Es una gran incorporación a vuestro currículum. ○ Solamente por participar ya os diferenciais de otros alumnos. ○ Lograr buenas posiciones os servirá para entrar en la mira de empresas. ● Viviréis una experiencia de trabajo en equipo real. ○ Tendréis que aprender a repartir, priorizar y resolver en entornos de tiempo limitado.
  • 6. Acepta el reto www.aceptaelreto.com En el encontrarás todo tipo de problemas divididos por materia y dificultad, así como los problemas de otras ediciones. Aquí podrás prepararte para el concurso. Concursos de calentamiento www.programa-me.com Así mismo, suelen hacerse ediciones de calentamiento alrededor de navidad. Contacta con los organizadores para conocer que se está organizando ese año. Calentamiento Navidad: http://programa-me.com/2018/reg/navidad/ También podéis probar en Las 12 Uvas: http://www.las12uvas.es/2017/#/quees
  • 8. ● Para buscar nuevos problemas, recomiendo buscar por Categorías > Programación ● No hace falta seguir el orden propuesto, los problemas no están por orden de dificultad. ● Al principio céntrate en pensar cómo resolverías los problemas con tus compañeros. ○ Según se acerque el concurso, intenta programarlos y subirlos a la web para coger soltura y acostumbrarte a posibles fallos.
  • 10. En esta sección hablaremos sobre el funcionamiento de los problemas de Acepta el reto y Programa-me, para evitar tener dudas con cómo entran los datos y poder centrarnos en buscar la solución.
  • 11. Entrada y salida de datos ● La entrada siempre va por el flujo estándar y la salida siempre va por la salida estándar. La entrada y la salida además tienen que ir ser una linea (C y C++: carácter 'n', Java: println o carácter 'n') ● ¡La salida no tiene que salir después de toda la entrada! De hecho, debéis escribir la solución después de cada línea/problema. ● Alumnos de 1º: Aunque no se pueden incluir librerías, se les puede proveer un fichero con métodos leerLinea y escribir para que no tengan que enfrentarse a I/O o flujos.
  • 13. Consejos: ● Java: Usad split para separar los datos. C y C++: Cread una función que simule split con strtok (necesitareis memoria dinámica). ○ Es SUPER ÚTIL para poder luego iterar sobre los datos rápidamente. ○ No convirtáis los datos a sus tipos reales hasta que los uséis para operar. ○ C y C++: También podéis usar scanf() ● Si tenéis una frase o dibujo formado por varias líneas, recordad que podéis iterar por un string como si de un array se tratase. (También en números para ir cifra por cifra) ● Así mismo, recordad que cuando busquéis un valor en concreto, basta con poner la cadena que lo generaría (por ejemplo, si la fecha 25/11 entra como "25 11" podéis mirar directamente si es igual, no hace falta que saquéis los dos números). ● Por último: ¡no hace falta que verifiqueis que los datos son válidos! Siempre obedecerán el formato presentado.
  • 14. Además, los problemas irán introduciendo los datos generalmente de una de estas 3 formas:
  • 15. Estructuras de datos ● Conocimientos de manejos de arrays y strings es más que suficiente para afrontar las pruebas con garantías. Conocimiento de listas y diccionarios puede dar ventaja pero no es necesario. ● Matrices: practicar el patrón de "pintado". Recursiva que recorre todas las celdas disponibles. ● ¡Cuidado al ordenar números como strings! ● Problemas de ordenamiento pueden ser bastante fáciles o difíciles. Ante la duda, dejadlos para el final.
  • 16. ¿Cómo funciona el concurso?
  • 17. Puntuación ● Tu puntuación es tus problemas resueltos. Para desempatar, el tiempo hasta la resolución con penalizaciones. ● Al tiempo se suma el minuto en que has resuelto el problema y minutos extra de penalización por intento para resolverlo (los fallos en problemas sin resolver no cuentan). Siempre aparece Intentos/Tiempo total. ● Esta es una razón por la que es super importante localizar y resolver los problemas fáciles rápido. ○ Equipo 1 y 2: 3 problemas resueltos en el minuto 30 sin fallos. ○ Equipo 1: 3 | 40 -- Primero P1: minuto 2, P2: minuto 8, P3: minuto 30. 2 + 8 + 30 = 40. ○ Equipo 2: 3 | 70 -- Resolvió primero el P3 en el minuto 22. Luego resolvió el P1 en el minuto 23 y luego el P2 en el minuto 25. Pese a tardar solo 1 y 3 minutos en P1 y P2, al resolverlos más tarde tienen peor puntuación.
  • 18. Unas notas finales: ● Durante el concurso es mucho más importante ser corto a la hora de escribir que claro, y poder reusar todo el código que sea posible. ○ Códigos de lectura/escritura, iteración, transformación... contra más generales mejor, para poder copiarlos de problema en problema. ● C y C++ disponen de un código más escueto y tiempos de ejecución más rápidos Java en el JDK tiene muchísimas utilidades. ¡Conoce bien las ventajas de tu lenguaje! ● Duerme bien la noche antes del concurso. ● Os podéis llevar hojas al concurso con código o notas que os puedan servir de utilidad. También tenéis disponible las APIs de C++ y Java. ● ¡Pasadlo bien!
  • 19. ¿Te has quedado con más ganas?
  • 20. Otros concursos: Para seguir poniéndote a prueba. Las 12 Uvas (Diciembre) http://www.las12uvas.es Google Hash Code (Marzo) https://hashcode.withgoogle.com Tuenti Challenge (Abril) https://contest.tuenti.net Everis Codefest (Noviembre) http://codefest.everis.com
  • 21. Webs internacionales: Profundiza en algoritmia. Recruiting internacional. LeetCode - https://leetcode.com/ Ideal para practicar y aprender algoritmia. Sus problemas y foros vienen con guías para su resolución o con soluciones alternativas. HackerRank- https://hackerrank.com Sitio con competiciones y reclutamiento internacional. Ideal para probar competiciones avanzadas y destacar a nivel técnico (tiene su propia clasificación).
  • 22. Despedida y contacto Muchas gracias por llegar hasta aquí, y espero que os haya animado a participar y/u os haya ayudado. Si tenéis alguna duda o queréis dejarme un saludo, podéis encontrarme en: -Twitter: @joshiraez -E-mail: contacto@joseraez.com -LinkedIn: http://joseraez.com También he creado un repositorio para que podamos compartir recursos para el concurso: https://github.com/joshiraez/RecursosProgramame
  • 23. Agradecimientos Quería aprovechar para dar mis agradecimientos a: Nuria Fuentes, nuestra entrenadora y profesora de programación. Por introducirnos al concurso y apoyarnos durante todo el camino, además de ser una magnífica profesora y persona. A Manuel, Jesús, Raúl y Rubén, mis compañeros de equipo Por todo el esfuerzo y los buenos momentos en el camino a la fase nacional de las ediciones 2016 y 2017 de Programa-me.