#Como hacer

Aprende hasta 67 lenguajes de programación en este sitio

En 15/12/2023

¿Quieres aprender lenguajes de programación? Exercism es una innovadora plataforma en línea colaborativa que te permite practicar la programación en 67 lenguajes diferentes. Cuenta con una gran comunidad de mentores voluntarios que dan retroalimentación útil sobre tus envíos de código. 

Es 100% gratuita, open source y sin fines de lucro. Su objetivo es democratizar la educación en programación para incrementar la diversidad en la industria tecnológica. ¡Sigue leyendo! Te explicaremos detalladamente cómo sacarle el máximo provecho a Exercism para dominar tus lenguajes de programación preferidos.

Todos tus lenguajes de programación preferidos en un mismo sitio

Los diferentes lenguajes de programación son la base de la informática. Saber programar te abre un mundo de posibilidades laborales y creativas. Exercism está construida con un moderno stack de JavaScript, desde su interfaz web hecha en React y Next.js hasta su backend en Node.js.

Al ser open source, el código de Exercism está disponible en GitHub para que puedas entender cómo funciona o incluso contribuir mejoras. Este enfoque transparente y colaborativo fomenta la innovación dinámica al recibir aportes de toda la comunidad. Siempre se están añadiendo nuevas funcionalidades y optimizaciones.

Regístrate en la plataforma

Lo primero es registrarte gratis en Exercism. Ve a su página principal y haz clic en «Sign up» en la esquina superior derecha. Debes ingresar tu correo electrónico y elegir una contraseña segura. Opcionalmente puedes autenticarte rápido con GitHub, Google o Facebook.

Una vez registrado, se te pedirá que elijas tu «handle«, que es como una especie de nombre de usuario único en Exercism. Este identificador es el que verán los mentores al revisar tu código, así que elígelo con cuidado.

Selecciona tu lenguaje de programación

Luego de registrarte y configurar tu perfil, es momento de elegir en qué lenguaje de programación te gustaría formarte. Exercism actualmente soporta 67 opciones que incluyen:

  • Lenguajes populares como Python, Javascript, Java, C#, Ruby, PHP, TypeScript.
  • Lenguajes funcionales como Clojure, Haskell, Elixir, Erlang, Racket, F#.
  • Lenguajes para data science y ML como MATLAB, R, Julia.
  • Lenguajes para mobile como Swift, Kotlin.
  • Lenguajes para sistemas como C, C++, Rust, Go.
  • ¡Y muchos más!

Puedes seleccionar uno o múltiples tracks a la vez según tus intereses. Te recomendamos que si eres principiante te enfoques en un solo lenguaje primero para no abrumarte. Python y JavaScript son muy recomendados para empezar. ¿Y por qué?, te preguntarás.

Lenguajes populares como Python y JavaScript tienen ecosistemas enormes con miles de librerías para tareas especializadas. Python es el líder para AI y ciencia de datos mientras que JavaScript domina la web.

Otros como Java y C# se usan mucho en backends empresariales y apps móviles multiplataforma aprovechando máquinas virtuales. Los lenguajes funcionales como Haskell y Elixir son muy efectivos en sistemas altamente concurrentes y escalables. Una vez escojas, le das clic en “Start” junto al lenguaje y ya estarás dentro del track o ruta de aprendizaje.

Analiza el primer ejercicio

Al entrar a la ruta del lenguaje verás la lista de ejercicios disponibles. Empezarás desde los más básicos y cada uno irá incrementando en dificultad. Los primeros ejercicios son muy simples, enfocados en que conozcas la sintaxis básica del lenguaje y cómo configurar tu entorno de desarrollo.

  • Por ejemplo, en Python uno de los primeros ejercicios es sobre variables y strings. Se te darán las especificaciones técnicas de lo que debe hacer el código y casos de pruebas para validarlo.
  • En otros lenguajes los primeros ejercicios pueden ser sobre cómo imprimir texto en pantalla, leer input del usuario, crear funciones básicas, etc. Lee las instrucciones cuidadosamente.

Si no entiendes algún concepto que se menciona no te preocupes. Más abajo está la sección de recursos educativos para reforzar tus bases. Desde imprimir texto y variables hasta interacción con bases de datos, consumo de APIs web, multihilos, interfaces gráficos, recursiones, pruebas unitarias y más. Todo el flujo de desarrollo moderno se cubre.

Desarrolla tu solución

Luego de analizar las especificaciones del ejercicio debes crear un archivo con la extensión del lenguaje (.py para Python, .js para JavaScript, etc.). Por último, ya puedes escribir tu solución.

Usa todo lo aprendido sobre la sintaxis básica del lenguaje para cumplir el objetivo pedido. No importa si al inicio no te sale o si tu código no es eficiente. Parte del aprendizaje es cometer errores. Lo importante es ir solucionando los ejercicios de forma incremental.

Envía tu solución

Exercism utiliza GitHub para el versionamiento y envío de tu código. Puedes conectar tu cuenta personal o crear un repositorio específico para Exercism. Instala Git CLI en tu computadora para manejar commits, pushes y pulls. Herramientas como GitHub Desktop o GitKraken también facilitan estas tareas si lo prefieres de forma gráfica.

Una vez que hayas codeado una solución, debes enviarla a Exercism para revisión a través de Git. Se te darán instrucciones para configurar Git CLI o integrarte con GitHub.

Haz clic en “Submit your solution” cuando hayas subido tu archivo .py o .js, por ejemplo. Si Exercism detecta que falta algo en tu envío como describir la solución, te lo indicará para que completes la información.

Revisa los comentarios de los mentores y refactoriza tu solución

Lo que más diferencia a Exercism de otros sitios es que tus soluciones son revisadas por mentores profesionales voluntarios. Ellos dejarán valiosos comentarios de retroalimentación en tu código.

  • Lee exhaustivamente cada comentario para entender dónde y por qué tu solución puede mejorar.
  • Implementa todos los cambios sugeridos por los mentores hasta dominar los conceptos.
  • Si tienes dudas o diferencias con algún cambio propuesto, pregunta educadamente al mentor para entender su razonamiento. Un diálogo constructivo clarifica y suma.

Una vez leas los comentarios del mentor, debes refactorizar o mejorar tu solución aplicando lo aprendido. Enfócate en seguir buenas prácticas y convenciones del lenguaje. Vuelve a enviar tu solución actualizada.

Si en la segunda vez que envías tu solución sigues viendo que aún cometes muchos errores, ¡eso está genial!; solo sigue mejorando, vuelve a enviar tu solución y continúa el proceso. ¡Persevera!

Usa bots como hints

Algunos tracks tienen bots que analizan tu código cuando lo envías y te dan pistas de posibles problemas o mejoras antes de la revisión humana. ¡Pon atención a estos hints!

Aprende hasta 67 lenguajes de programación en este sitio | Aprende hasta 67 lenguajes de programación en este sitio1

Completa el track básico en lenguajes de programación

Sigue el proceso de analizar el nuevo ejercicio, programar una solución, recibir retroalimentación y refactorizar tu código hasta completar toda la ruta básica del lenguaje. Habrás aprendido conceptos esenciales como:

  • Variables y tipos de datos.
  • Sentencias condicionales.
  • Bucles e iteradores.
  • Funciones.
  • Clases y objetos.
  • Manejo de errores.
  • Pruebas unitarias.
  • Algoritmos comunes.
  • Sintaxis y convenciones.

Al completar el track básico siéntete orgulloso de ti mismo. ¡Has logrado un gran avance! Ya estarías preparado para aventurarte en terrenos más complejos y fuertes.

Domina los temas avanzados

Luego, de tener bases sólidas en un lenguaje, puedes explorar los tracks que te llevarán a temas avanzados según tus intereses profesionales. Algunos de estos temas avanzados son:

  • Machine learning: entrena modelos de redes neuronales, regresión logística, Random Forests, Support Vector Machines y mucho más con NumPy, Pandas, Tensorflow, PyTorch y SciKit-Learn.
  • Seguridad informática: aprende ética hacking, explotación de vulnerabilidades, análisis forense, criptografía, firewalls y técnicas de anonimato.
  • Desarrollo web full stack: construye aplicaciones web completas con React, Angular, Django, Rails, Node.js, MongoDB y más.
  • Ciencia de datos: limpia, pre-procesa y visualiza grandes volúmenes de datos con técnicas estadísticas y de minería avanzadas.
  • Procesamiento en paralelo: optimiza el rendimiento de cómputo distribuyendo tareas en múltiples CPUs/GPUs con frameworks como OpenMP, MPI, MapReduce, Apache Spark, Kubernetes, CUDA, OpenCL y Docker.
  • Hardware: programa microcontroladores ARM/AVR con Arduino y sistemas embebidos Raspberry Pi para desarrollo de Internet of Things.
  • Bioinformática: procesa secuencias de ADN/ARN, estudia estructuras de proteínas y predice interacciones molecular-objetivo aplicando machine learning.
  • Lingüística computacional: implementa motores de lenguaje natural para reconocimiento/síntesis de voz, traductores y chatbots inteligentes.
  • Finanzas cuantitativas: desarrolla estrategias de trading algorítmico de alta frecuencia basadas en series temporales y predicción del precio de acciones.

Blockchain, matemáticas, web 3.0, computación cuántica, compiladores, videojuegos y cualquier tema puntero que quieras explorar. Estos ejercicios llevan tus habilidades de programación a un alto nivel, preparándote para trabajar en la industria tech.

Refuerza conceptos en las soluciones de la comunidad

Un gran recurso de aprendizaje es leer soluciones de ejercicios hechas por otros miembros de la comunidad. Ver diferentes enfoques y formas de solucionar los retos te amplía la mente. Además, aprendes mejores prácticas viendo el código de otros más experimentados.

Únete a los espacios de chat

Dentro de Exercism existe una sección de “Community” con chats en vivo. Únete a los canales de los lenguajes que estás aprendiendo. Aquí puedes resolver dudas, pedir recomendaciones y conectar con otros estudiantes y mentores. Hay espacios tanto para principiantes como avanzados. Tienes muchas oportunidades dentro del sitio para mejorar cada día en lenguajes de programación.

Contribuye escribiendo mentories

Cuando ganes mucha experiencia en un lenguaje puedes retribuir a la comunidad escribiendo “mentories”, que son artículos técnicos que explican conceptos complejos para ayudar a otros. Esto afianza tus conocimientos y te da presencia en Exercism.

Comparte en redes tu progreso

Conecta tu perfil de Exercism con LinkedIn para que aparezca el track que estás completando. ¡Esto luce muy bien profesionalmente! También, puedes unir tu cuenta de Twitter para tuitear sobre tus aprendizajes y mencionar a @exercism_io.

Explora proyectos open source

Una vez ganes confianza en tus habilidades de programación, te sugerimos explorar proyectos open source en GitHub para contribuir resolviendo issues, bugs o requerimientos de funcionalidades.

Esto complementa muy bien tu formación en Exercism, pues te expone al workflow de desarrollo colaborativo en un ambiente real. Todo, usando herramientas profesionales como control de versiones, canales de comunicación, tableros ágiles, integración/despliegue continuo, etc. ¡Y contribuir a proyectos populares suma mucho a tu portfolio!

Implementa pruebas automatizadas

Otro consejo avanzado es que implementes pruebas unitarias dentro de tus soluciones de código. ¿Cómo? Usando librerías como Unittest de Python, JUnit de Java, Mocha de JavaScript, etc.

Las pruebas verifican automáticamente que tu programa funcione correctamente, facilitando refactorizaciones futuras. Implementarlas desde el inicio es una muy buena práctica.

Usa una extensión de Exercism

Instala la extensión de tu IDE favorito (VSCode, Atom, etc.) para integrar Exercism directo en el editor. Así enviarás ejercicios y leerás comentarios sin salir del IDE. Hay extensiones para los lenguajes más populares.

Explora ejercicios en otros tracks

Una vez domines un lenguaje puedes explorar ejercicios en otras pistas que complementen tus skills. Por ejemplo, si sabes Python, podrías intentar retos de Go, Rust o Haskell para expandir tu mente y toolbox. Esta flexibilidad es una gran ventaja.

¿Cómo crear un portafolio para mostrar tus habilidades en lenguajes de programación?

Conforme vayas completando más ejercicios y tracks en Exercism, tendrás decenas de soluciones de código en diversos lenguajes. Es muy importante que documentes ese progreso creando un portafolio personal de proyectos. Esto demuestra de forma tangible tus habilidades de programación. Hay diferentes formas de estructurar un portafolio potente:

GitHub Pages

Crea un repositorio público llamado «[tu_usuario].github.io». Guarda tus mejores proyectos en directorios separados con un README.md explicando en español/inglés qué resuelve cada código y conceptos aplicados.

Crea una página índice index.html que liste miniaturas linking a cada proyecto. Por último, personaliza el diseño para que luzca profesional con HTML/CSS o un theme.

LinkedIn

Selecciona los 5-10 mejores proyectos de Exercism. Crea un post por cada uno explicando el desafío, solución elegida y lecciones aprendidas. Referencia el URL del código en GitHub para ser inspeccionado. Resalta las habilidades blandas evidenciadas: creatividad, persistencia, metodología, etc.

Platzi Profile

Otra alternativa es documentar tus soluciones directo en tu perfil personal de Platzi usando su formato de «proyecto»: Asigna una imagen llamativa que simbolice el reto.

Explica la problemática y casos de uso del software creado. Incluye fotos/gifs del programa ejecutándose. Comparte el link al código fuente en GitHub. Destaca en los hashtags habilidades blandas fortalecidas.

Un portafolio sólido con varios proyectos comentados ayuda mucho a que futuros reclutadores/clientes evalúen positivamente tus capacidades como developer. ¡Así que mantenlo actualizado!

Consideraciones finales

Como has visto, Exercism es la plataforma ideal para aprender decenas de lenguajes de programación de forma entretenida y a tu ritmo. Su método de ejercicios prácticos revisados por expertos acelera exponencialmente tu progreso. Y, al ser gratuito no tienes nada que perder comenzando tu travesía en el coding. ¿A qué esperas? ¡Tu futuro en la programación te espera!

lenguajes-de-programacion

¿Qué lenguajes de programación te interesan?

Esperamos que toda esta información te ayude en tus próximos proyectos como developer o a comenzar tu camino en este grandioso mundo de la informática. ¿Te gustaría asistir a un curso online con certificado internacional? No dejes de leer Curso técnico gratuito en informática, seguro te interesa.