Cómo adquirir fluidez en varios lenguajes de programación
Consejos únicos que le ayudarán a convertirse en multilingüe-lenguaje de programación.
Lenguajes de programación
Aprender un nuevo lenguaje de programación es muy parecido a aprender a hablar un nuevo lenguaje natural.
Sin embargo, como estoy seguro de que muchos de mis amigos bilingües y políglotas estarían de acuerdo, a veces puede resultar confuso cambiar entre dos o más idiomas.
Por ejemplo, mi lengua materna es el inglés, pero estaba inscrito en la inmersión en francés en la escuela. Si bien esto ciertamente valió la pena y me hizo perfectamente fluido en ambos idiomas, tuvo algunas consecuencias no deseadas cuando estaba trabajando en inglés. Durante mucho tiempo, agregaría E en muchas palabras o colocaría el signo de dólar al final de un conjunto de números (32 $ en lugar de $ 32), ambas cosas que son requisitos del idioma francés, pero no existen en el idioma inglés. Con el tiempo y la práctica, estas confusiones finalmente desaparecieron y ahora puedo cambiar entre los dos idiomas sin problemas (más o menos).
He notado que esto me está sucediendo nuevamente, aunque esta vez, estoy tratando de pasar del mundo estructurado de C # y Java a Python. Mientras estaba en la universidad, todos mis cursos giraban en torno a lenguajes de programación estrictos como C #. Ahora, estoy tratando de hacer una transición a la ciencia de datos y actualmente estoy en el proceso de aprender Python. Para alguien a quien le gustan las cosas muy organizadas, Python es un lenguaje de pesadilla. Para mí, hay una gran falta de punto y coma, llaves y variables escritas. Es como si estuviera aprendiendo un nuevo idioma (Python), que es completamente diferente de mi idioma nativo (C #).
Aprender lenguajes de programación similares (como C #, Java y JavaScript) es similar a aprender lenguajes naturales similares. Por ejemplo, al saber francés, me resultaría fácil aprender idiomas similares como italiano, portugués y español. Sin embargo, aprender un lenguaje de programación (Python) que es semánticamente diferente de los que ya conozco, es similar a cómo mi experiencia en francés no sería de mucha ayuda para aprender islandés o mandarín.
Sin embargo, como descubrí en el pasado, aprender un nuevo lenguaje de programación es lo mismo que aprender un nuevo lenguaje natural. Además, adquirir fluidez en varios lenguajes de programación implica algunos de los mismos fundamentos y consejos que utilicé cuando adquirí fluidez en varios lenguajes naturales.
Aprenda primero los lenguajes de escritura estática y sintácticamente específicos.
Casi todos los artículos titulados “¿Qué lenguaje de programación debo aprender primero?” sugiere que Python es el primer idioma perfecto para que alguien lo aprenda. Si bien estoy de acuerdo en que Python es un buen primer lenguaje debido a su sintaxis simple y flexibilidad, creo que no se aprenderán varios fundamentos de programación que serán necesarios más adelante.
Por lo tanto, ofrecería algunos consejos contrarios a la intuición: primero aprenda los lenguajes de tipo estático y sintácticamente específicos.
En lugar de aprender el lenguaje que te tomará de la mano y te ofrecerá un camino cómodo para adentrarte en el mundo de la programación, aprende el lenguaje que te gritará si olvidas el punto y coma o si te niegas a trabajar porque tus tipos de datos son incorrecto.
Idiomas de tipado estático.
Los lenguajes de tipado estático (como C # y Java) requieren que se asigne un tipo de datos a sus variables. Los tipos de datos incluyen cadenas, enteros y booleanos, por nombrar algunos. Las variables están vinculadas a los tipos de datos que se les asignan cuando se inicializan y no se pueden cambiar; de lo contrario, se generarán errores en el código antes de que se ejecuten.
Por otro lado, los lenguajes de tipado dinámico (como Python) no requieren que se asignen tipos de datos en la inicialización de la variable. Se comprobará el tipo de variable para ver si los tipos son correctos en tiempo de ejecución (después de que el programa se haya compilado y ejecutado).
Al aprender a trabajar con variables de tipo estático, obtiene una comprensión fundamental de los tipos de datos que puede aprovechar en el futuro. Por ejemplo, JavaScript es un pequeño lenguaje de programación feliz que no tiene problemas para sumar enteros y cadenas. Sin embargo, no conocer los tipos de datos puede causar problemas más adelante cuando surjan errores. Al ser estricto con su aprendizaje y obtener una comprensión firme de los tipos de datos, puede ahorrarse muchos dolores de cabeza en el futuro cuando aprenda un lenguaje de tipado dinámico con variables que pueden cambiar los tipos de datos sobre la marcha. Además, aprender primero un lenguaje de tipo estático agregará una capa a la lógica de su proceso de codificación.
Lenguajes sintácticamente específicos.
Cuando aprende un nuevo idioma natural, primero aprende su alfabeto y luego pasa a aprender las palabras, la estructura de la oración, la puntuación y la gramática de ese idioma.
Aprender un lenguaje de programación es similar, ya que cada lenguaje tiene una sintaxis específica que debes usar para que el código funcione. En otras palabras, cada lenguaje de programación tiene una forma en la que le gusta que se estructuren sus oraciones y se formen sus párrafos.
Algunos lenguajes (como Java y C #) son muy específicos en cuanto a su sintaxis y se negarán a funcionar si olvida un solo punto y coma (los puntos y comas a menudo se colocan al final de una línea de código, similar a cómo un punto se coloca al final de una oración para indicar su final). Otros lenguajes, como Python, no tienen relativamente ninguna estructura de sintaxis que deba seguirse. Por ejemplo, Python relativamente no tiene punto y coma y muy pocas llaves para organizar su código en comparación con C #.
Aprender primero un lenguaje de programación sintácticamente específico le dará una comprensión firme de la estructura adecuada que debe seguir al escribir código. Al darse cuenta de la estructura de sangría adecuada, la necesidad de terminar su línea de código con un punto y coma y el requisito de que sus funciones se escriban dentro de los límites de las llaves, podrá escribir código que sea fácil- comprensible, más organizado y más fácil de mantener y depurar. Además, esto le ayudará a tener una plantilla con la que escribir su código cuando comience a aventurarse en nuevos lenguajes que no son tan estrictos con la sintaxis.
En esencia, aprenda la disciplina ahora y obtenga las recompensas más tarde.
Domine su lengua materna con fluidez
Sería bastante difícil vivir una vida hablando un poco de cada idioma que se habla en todo el mundo en lugar de hablar muy bien un idioma, ¿no es así? Además, si solo entendieras un poco de cada idioma, no serías de mucha utilidad para nadie, ¿verdad? Debido a que no tendrías un vocabulario muy extenso ni una comprensión muy sólida de ningún idioma específico, ni siquiera podrías escribir algo en el Traductor de Google para intentar comunicarte con alguien de la otra parte del mundo. ¡Lo más probable es que ambos terminen muy confundidos!
En mi opinión, lo mismo se aplica a los lenguajes de programación. En lugar de intentar aprender varios idiomas diferentes sin comprender ninguno de ellos a un nivel competente, conviértase en fluido en su primer idioma o en el idioma que elija.
No estoy sugiriendo que deba dominar al 100% un lenguaje de programación antes de aprender a usar otro. Sin embargo, debe tener un conocimiento firme de los conceptos de programación en un solo lenguaje antes de intentar aprender uno nuevo.
¿Por qué? Bueno, cuando aprenda los fundamentos del código en un idioma, puede asumir que los fundamentos serán aproximadamente los mismos en un idioma diferente. Por ejemplo, las sentencias if / else realizan la misma función en todos los lenguajes de programación con los que te encuentras, pero la única diferencia está en la sintaxis que usas para comunicarlas. Por ejemplo, una declaración if / else en C # requiere que las declaraciones se organicen usando llaves, mientras que una instrucción if / else en Python no tiene llaves y en su lugar separa cada declaración usando dos puntos y sangría de código. Sin embargo, fundamentalmente, la declaración funciona de la misma manera en ambos idiomas.
Es como aprender a decir “Hola” y “Adiós” en su idioma nativo. Una vez que comprenda lo que significan esas palabras y cómo usarlas, podrá aprender a decir “Hola” y “Adiós” en una multitud de idiomas diferentes. Las palabras significarán lo mismo en un idioma diferente, la única diferencia es que las escribes usando una sintaxis diferente y las usas siguiendo diferentes convenciones.
Al comprender si su primer lenguaje de programación prefiere una sola clase o varias clases, si tiene convenciones de nomenclatura de variables específicas, o si requiere una estructura orientada a objetos, adquirirá mayor fluidez en su primer idioma y en los siguientes a medida que avance. . Una vez que domines un idioma, podrás captar los matices de otros lenguajes más rápido a medida que te vuelvas más consciente de las diferencias entre los lenguajes de programación.
No codifique con acento.
Al hablar un idioma natural, puede entender a alguien si habla con acento. Por ejemplo, le entenderían personas cuya lengua materna es el francés, aunque hable francés con acento. Debido a que estaría usando las convenciones francesas, ellos entenderían lo que trata de transmitir incluso si usa una estructura de oración redonda o pronuncia mal una palabra.
Para dominar un nuevo lenguaje de programación, no puede codificar con él como si fuera un lenguaje que ya conociera. Si lo hace, lo más probable es que el lenguaje no necesariamente entienda lo que le está pidiendo que haga, o hará lo que le está pidiendo de una manera muy ineficiente.
Caí en esta trampa durante mi proyecto final de la universidad cuando usábamos Angular para la interfaz del sistema. Entendí bien JavaScript en ese momento y sabiendo que Angular es similar a JavaScript, traté de codificar en Angular usando convenciones similares que usaría en JavaScript. Desafortunadamente para mí, intentar codificar con acento no arrojó un buen código y probablemente se debió a no comprender las convenciones de Angular. Mi código estaba todo en Angular, pero hablaba con un fuerte acento de JavaScript.
En otras palabras, no repita mi error: use el nuevo idioma en la forma en que fue diseñado y no codifique con acento.
Al sumergirse en el nuevo lenguaje y obligarse a comprender todas sus convenciones únicas, aprenderá a codificar con el lenguaje de la forma en que fue diseñado sin usarlo como un lenguaje que ya conoce. Esto le permitirá dominar con total fluidez varios idiomas, sin hablarlos todos con un acento marcado.
Por ejemplo, si el inglés es su idioma nativo, pero decide aprender rápidamente otros cinco idiomas nuevos, es probable que termine hablando ruso, italiano, swahili, yiddish y árabe, todos con un marcado acento inglés y utilizando las convenciones del inglés. . Si en cambio hubiera optado por aprender las convenciones del idioma ruso, los hablantes nativos de ruso lo entenderían. Lo mismo ocurre con los otros idiomas. Si estuviera tratando de hablar swahili usando la estructura típica de oraciones en inglés, es probable que alguien de Kenia no lo entienda.
Tómese el tiempo para leer la documentación proporcionada por un lenguaje de programación y familiarizarse con las convenciones específicas de ese lenguaje. Esto no solo lo hará más fluido en el idioma, sino que también lo hará más valioso cuando trabaje en proyectos en equipo con otras personas que entienden el idioma y esperan que pueda seguir sus convenciones.
Es posible que tenga que forzarse inicialmente a codificar sin acento, pero el trabajo duro dará sus frutos cuando pueda cambiar de un idioma a otro con fluidez y con pocos contratiempos.
Pensamientos finales.
Este artículo describe algunas de las ideas más singulares para convertirse en políglota de lenguajes de programación. Todos estos consejos le ayudarán, pero no sería un artículo completamente útil si no mencionara algunos de los consejos más convencionales que existen:
- Sumérjase por completo en el idioma leyendo la documentación del idioma, leyendo el código fuente, replicando ejemplos de código usando sus propias “palabras” en el nuevo idioma, escriba usted mismo una hoja de trucos para el nuevo idioma, etc.
- Siga los tutoriales de codificación en el nuevo idioma utilizando una variedad de fuentes como Youtube, Medium y StackOverflow. Debe estar dispuesto a ensuciarse las manos cuando aprenda un nuevo lenguaje de programación. En otras palabras, el aprendizaje activo será tu amigo aquí.
- Vuelva a crear proyectos que ya haya completado (incluso los más sencillos) con el nuevo idioma que está aprendiendo e intente utilizar el nuevo idioma lo mejor que pueda.
- Participa en hackatones, competencias de Kaggle y desafíos de codificación que requieren que uses tu nuevo idioma.
- Trabaje con alguien que conozca bien el idioma. Siempre aprendí mucho de la programación en pareja con personas que estaban bien versados en el idioma que estaba tratando de aprender. Escuchar su proceso de pensamiento mientras escribían un código específico les dio mucha información sobre cómo funciona el lenguaje y por qué estaban codificando la solución de una manera específica.
El mejor consejo que puedo dar es que sea persistente. Aprender un nuevo idioma es difícil y los lenguajes de programación no son una excepción. No descarte el idioma si se necesita un poco de esfuerzo para aprenderlo. Afortunadamente, múltiples recursos en Internet pueden ayudar a que el proceso de aprendizaje sea más fácil e intuitivo.
Sobre todo, no olvide aplicar los consejos y las herramientas disponibles cuando aprenda un nuevo idioma. No solo comprenderá mejor el lenguaje, sino que también se convertirá en un mejor desarrollador o en ciencia de datos a largo plazo.