Aprender un nuevo lenguaje de programación: el reto.
Qué razones tengo para hacerlo?
Ya te aburriste del lenguaje de programación con el que empezaste en el mundo de la tecnología? Estás deseoso de aprender ese lenguaje que tus amigos/compañeros/miembros de tu comunidad hablan? O tal vez necesitas simplemente un programa en un lenguaje diferente en tu lugar de trabajo?
Si te identificas con alguna de esas preguntas, espero que este artículo te ayude a ordenar tus ideas para crear tu programa!
Ya sé que quiero que haga mi programa. ¿Cómo consigo ayuda?
Es tan gratificante cuando tu aplicación es usada por varias personas. Incluso cuando eres la única persona que la va a usar, es posible que quieras que tu aplicación sea la mejor aplicación: limpia, flexible, rendidora y lo que sea que definas como "lo mejor".
Es completamente normal que puedas estar preguntándote cosas como: Qué framework debo usar? Qué librerías debo incluir en mi app? Cómo aprendo más rápido? Dónde consigo los mejores tutoriales? Etc., etc., etc., Todas las posibilidades pueden ser confusas, y cada solución tiene sus pros y cons.
Afortunadamente, existen muchos frameworks en la red, y hay personas contribuyendo prácticamente a cualquier lenguaje de programación. Así que, intentemos ordenar por prioridad las fuentes de información recomendables:
- Encuentra un mentor(es). Esto es súper importante. Escoge a esa persona que admiras por sus habilidades, ideas, soluciones y que ya haya pasado por el camino que vas a emprender. Tienes que encontrar un mentor. Un buen mentor te va a ayudar a hacer que tu curva de aprendizaje sea más empinada (aprenderás más rápido). También te podrá dar consejos de cómo programar en un lenguaje, te podrá sugerir frameworks útiles/populares, conceptos que tendrás que entender y mucho más. Además, un toque humano en tu proceso aprendizaje no estará nunca de más.
- Encuentra documentación oficial de un lenguaje de programación/framework. Esta te ayudará a empezar y entender los conceptos básicos de programación en ese lenguaje. Cada lenguaje de programación tiene su documentación oficial alojada en algún rincón de la red.
- Lee código open source. Si quieres saber cómo tu lenguaje de programación se ve en la vida real, puedes encontrar sus implementaciones en los programas open source en sitios de código abierto como GitHub, BitBucket, entre otros.
- Ingresa a una comunidad. Esta es otra manera de obtener feedback prácticamente acerca de cualquier cosa que quieres saber de un lenguaje de programación. Es importante que escojas las ideas que más te atraen usando tu propio jucio que simplemente implementar lo primero que te aconsejan en una comunidad.
- "Googlea". Sin ir en mucho detalle, es muy probable que tu pregunta ya haya aparecido en algún lado de la internet. Tal vez en StackOverflow, Quora, Reddit. A veces puedes encontrar artículos propietarios. En fin, solo "googlea" lo que quieres saber.
Y si simplemente quiero aprender un nuevo lenguaje de programación?
Partiendo de la idea que para aprender a programar, tienes que programar, aconsejaría cualquiera de las dos:
- Desarrolla un programa que va a facilitar la vida. Tómate el tiempo de entender qué haces tú o cualquier persona en el día a día, busca qué tareas repetitivas hacen manualmente una y otra vez y analiza si puedes automatizarla. Construye tu programa para cubrir esa necesidad.
- Desarrolla un programa que ya existe. Puedes copiar un programa que te gusta (y que ya existe). Obviamente, como tú eres el que lo hace, puedes mejorar algunas funcionalidades o hacerlas de manera diferente que en el programa original. Esta opción es la más sencilla porque no tienes que romperte la cabeza pensando en la idea y es muy probable que ya tengas un público objetivo que quiera usar tu programa.
Una vez que te decidiste sobre qué vas a desarrollar, regresa a la sección anterior y busca fuentes de información.
Sólo hazlo
Bien. Ya encontraste a tu mentor, ingresaste a una comunidad, leíste toneladas de documentación del lenguaje y frameworks que quieres usar. Lo único que tienes que hacer es hacerlo.
Lo menos que quieres hacer es quedarte a la mitad del camino, ¿no?
- Encuentra el tiempo. El tiempo es un recurso, y cómo lo usas importa. Por dar un ejemplo, tal vez puedas sacrificar la hora de Netflix al día para hacer lo que quieres hacer.
- Tienes que estar listo para fallar. Fallar es algo normal en cualquier cosa nueva que hacemos. Las buenas noticias son que nadie ha aprendido a caminar sin haberse caído una o más veces en el intento. Esto es normal. El estar psicológicamente listo para fallar es una parte importante para tu app como para tu salud emocional. Todos queremos ser exitosos. Por eso, siempre ten en cuenta los objetivos que te trazaste para desarrollar el programa y qué chévere va a ser cuando lo hayas terminado. Cada vez que algo no te salga bien: visualiza ese estado final al que quieres llegar, pon las manos sobre el teclado e intenta de nuevo. La primera vez no funcionó, pero la próxima lo harás mejor.
- Usa git (o cualquier herramienta de versionamiento de código) y pídele a tu mentor que revise tu código y que te de su opinión al respecto.
- Tienes que estar mentalmente abierto para aprender de cualquier experiencia durante el desarrollo de tu programa. Hay muchas convenciones que son diferentes en diferentes lenguajes de programación: trata de adoptarlas. Al comienzo te podrás sentir incómodo, pero al final si el lenguaje es para ti, vas a terminar disfrutándolo.
- Una vez que hayas terminado refactoriza tu código. Felicitaciones, ya terminaste el programa y FUNCIONA! Ahora lo que te falta hacer es ponerle la cereza al pastel. Refactoriza, si esperas seguir dándole mantenimiento a tu programa para que se vea más limpio y el desarrollo sea más cómodo.
Conclusiones
Más que técnico, este artículo habla más de cómo resolver posibles bloqueos emocionales cuando comenzamos con un nuevo lenguaje de programación. El proceso no siempre es fácil, pero definitivamente vas a estar feliz contigo mismo cuando hayas conseguido el conocimiento que querías tener. Así que nunca te rindas!
Define tus objetivos y siempre tenlos en cuenta.
Suerte y que disfrutes tu aventura de conocimiento!