Da igual que seas programador desde hace varios años o que acabes de empezar con la programación porque siempre se puede mejorar eso es así. Si consideras que sabes todo de algo estás muy equivocado, siempre queda lugar para el aprendizaje.
Lo primero que tienes que tener claro es que la mejor forma de mejorar como programador es programando. Si, suena obvio, pero es que hay veces en las que nos centramos en intentar aprender todo a nivel teórico pero sin aplicarlo luego en cosas prácticas.
Con esto no quiero decir que no tengas que estudiar teoría o leer libros de programación, simplemente digo que para afianzar conocimientos lo mejor es ponerlos en práctica.
En ese artículo voy a contar técnicas que uso y recomiendo para prácticar programación y mejorar tu nivel como programador a nivel práctico.
Hackathons
Los hackathons son pruebas de programación a resolver en un tiempo determinado, por equipos normalmente, (de 2 a 6 personas aunque también los hay individuales) en los que se plantea un reto o problema a resolver mediante algoritmos de programación.
Usualmente duran unas horas pero también los hay que duran 24 horas o 48 horas incluso.
Los hackathons pueden ser presenciales u online. Encuentra un hackathon cerca de tu ciudad o participa en un evento online desde cualquier lugar mediante esta página: Hackathon
Lo bueno de los hackathons es que te enfrentas a un desafío de programación limitado por tiempo por lo que te sirve para aprender a trabajar bajo presión, a pensar rápido y a trabajar mejor con compañeros de equipo.
Además, te van a venir bien para ampliar el currículum ya que hoy en día en las empresas se valora mucho una actitud proactiva y con curiosidad en el mundo de la programación.
Lo bueno es que si el hackathon es presencial te va a servir para intercambiar conocimientos con los programadores de otros equipos y a conocer nuevas amistades.
Existen también hackathons organizados por empresas en los que suelen dar premios en metálico o becas a los equipos ganadores.
En mi caso me presente al hackathon de Google en mi universidad en el que me tuve que enfrentar a un problema sin solución (no existe solución pero hay que buscar un algoritmo que se acerque lo máximo posible). En cuento a resultados no se me dió muy bien pero me gustó la experiencia y volvería a repetir.
Ejercicios de programación online tipo codewars
Existen páginas en Internet que proponen pequeños retos o problemas de programación. Lo bueno de este método es que lo puedes hacer desde donde quieras y a tu ritmo.
En muchas de ellos te dejan incluso escoger el lenguaje de programación que prefieras así que no importa el lenguaje que uses. Además te permiten seleccionar la dificultad de los ejercicios para que sea progresivo y no te cueste mucho al principio.
Voy a enseñarte las páginas que recomiendo yo de ejercicios:
Codewars
- Puedes elegir lenguaje de programación
- Se acumula tu progreso y recibes puntos por los ejercicios
- Puedes realizar problemas de otros usuarios
- Tiene editor de código online y puedes ver el resultado en tiempo real
Coding game
https://www.codingame.com/start
- Muy ameno porque practicas jugando. Los ejercicios están basados en pequeños videojuegos por lo que es mucho más visual y entretenido
- Competiciones entre usuarios. Son una especie de hackathons en las que se pone un problema y la gente compite para sacar más puntuación
- Posibilidad de elegir entre varios lenguajes de programación y editor online.
Top Coder
https://www.topcoder.com/challenges/
- Más enfocada a la competición entre usuarios
- Desafíos con premios en dinero
- Problemas más complejos con enunciados más largos y algoritmos más sofisticados para los usuarios más exigentes
Side projects
Para mí esta es una de las mejores técnicas. Se trata de hacer pequeños proyectos en tu tiempo libre con el fin de seguir aprendiendo. Te puede servir como excusa para probar lenguajes o frameworks que no has usado nunca.
Los proyectos te los pones tu mismo por lo que siempre intenta elegir proyectos sobre temas que te gusten o proyectos que necesites realizar para tu día a día. También puedes hacer proyectos chorra que no sirvan para nada, pero ya que te pones a hacerlo por lo menos búscale un uso.
Ponte que necesitas una app o web para tomar notas. Qué mejor forma de aprender que hacerlo tu mismo. Vas a poder crear la app o web justo con las cosas que necesitas, completamente a tu gusto y encima por el camino vas a aprender mucho de programación.
Lo que sería ideal sería que esos proyectos fueran open source para que la comunidad lo pueda usar o proponerte cambios que te van a venir bien para seguir mejorando tu nivel de programación.
Además de aprender y mejorar como programador, vas a poder aprender cómo gestionar proyectos, planificación de los mismos, publicación. etc.
Yo lo que recomiendo es que empieces con proyectos que te gusten pero que sean asequibles para que no te agobies y lo dejes todo a medias. Es mejor dedicar poco tiempo y varios días a los proyectos que intentar hacerlo todo de una.
Si todavía no sabes qué hacer te recomiendo empezar por crear tu propia página web a modo de currículum. Puedes diseñarla tu mismo o puedes coger un diseño de internet que te guste. Con tu página vas a poder empezar a mostrar tu talento a los demás y te va a venir bien para enseñar a las empresas.
Entrevistas de trabajo
La prueba definitiva. Normalmente en las entrevistas de trabajo te plantearán una serie de problemas o ejercicios relacionados con la programación para ver tu nivel y decidir si estás capacitado para el puesto.
Si has ido a hackathons y has estado haciendo ejercicios de las páginas anteriores, estarás más preparado que los otros candidatos y por lo tanto tendrás más probabilidades de entrar que los demás.
El nivel de la prueba dependerá del puesto al que presentes candidatura y de la empresa, incluso hay empresas que no hacen pruebas técnicas demasiado exigentes o incluso ni las hacen directamente.
Intenta no ponerte nervioso porque además de valorar tu nivel técnico de programación, van a estar pendientes de tu actitud, valores e incluso de tu curiosidad de aprendizaje. Se valora muy bien que tengas ganas de aprender.
Conclusiones
Como he dicho al principio la mejor forma de afianzar conocimientos es llevarlos a la práctica, pero tampoco te agobies, no es obligatorio que hagas todo y practiques todo y todos los días.
Aunque en este sector tenemos que estar en constante aprendizaje y evolución, no significa que tengas que destinar todo tu tiempo libre a aprender. Con que destines una pequeña parte de tus ratos libres cada cierto tiempo es suficiente, simplemente para no perder la práctica y no quedarnos oxidados.