¿Cuánto se tarda en aprender Rust?

Aprender Rust no es tanto una cuestión de tiempo como de dedicación y paciencia. La mayoría de la gente lo abandona por frustración pura y dura. En este artículo te daré una hoja de ruta realista y trucos para acelerar el proceso… sin quemarte.

Libro de programación en Rust

 

Si has buscado información sobre Rust y su proceso de aprendizaje, te habrás encontrado de todo. Desde los reclamos del tipo “Aprende Rust en un fin de semana” hasta recomendaciones del tipo: “Rust es un lenguaje difícil que no vale la pena aprender”…

Te puedo asegurar que no vas a aprender Rust viendo cuatro vídeos, pero tampoco hay que ser alienígena, ni siquiera un humano especial.

La cuestión es que aprender Rust no es un proceso lineal. Aprender Rust se parece más a esos pasatiempos que consisten en conectar puntos con un lápiz: del 1 al 2, del 2 al 3… Hasta que finalmente esos trazos sobre el papel dan lugar a un dibujo reconocible, se convierten en formas que tienen entidad propia.

Muchos conceptos en Rust necesitan cocinarse a fuego lento en el cerebro. A medida que se avanza, los nuevos conceptos conectan con los que se vieron previamente, cambiando la forma de entenderlos y ofreciendo una perspectiva diferente.

Es imposible intentar asimilar de forma obsesiva un determinado concepto en una tarde de estudio. Hay cientos de matices que sólo encajan cuando se tiene una visión global. Muchas ideas se vuelven intuitivas con el tiempo y con la práctica.

No se trata de acumular conocimiento. El entendimiento real llega a través de clics mentales.

Llega un momento en que se alcanza una cierta meseta de conocimiento sobre Rust y su filosofía de funcionamiento. Es cuando uno comienza a sentirse cómodo con el lenguaje y puede empezar a entender realmente conceptos más complejos y técnicas y patrones más avanzados.

Sí, ¿pero cuánto tiempo?

Aunque partimos de la base de que es alguien con experiencia previa en algún otro lenguaje de programación, es imposible estimar una cifra. Cada persona es un mundo, con su propio estilo de aprendizaje, conocimientos y motivación.

Yo diría que se puede alcanzar esa meseta de conocimiento en un par de meses. Digamos a una media de unas 8-10 horas semanales, por establecer un buen ritmo. Aquí creo que es mucho más importante alcanzar un cierto estado de “maduración” que batir un récord de velocidad.

La clave está en aceptar que la primera parte de esa etapa se puede hacer bastante dura y frustrante.

A partir de ahí, digamos que en 5-6 meses adicionales se puede alcanzar un nivel intermedio que permite trabajar en proyectos con cierta soltura.

Pero teniendo en cuenta que hay infinitas capas de conocimiento. Está el lenguaje sí, pero también están las librerías / crates habituales, con su propia curva de aprendizaje. Y están los patrones de diseño, los patrones de arquitectura, los flujos de trabajo (testing, desarrollo en contenedores, CI/CD, etc.)

Además, muchos proyectos de Rust están relacionados con programación de sistemas o con procesos complejos. La dificultad en esos casos y los conocimientos necesarios tienen que ver con la temática en sí, no con el lenguaje de programación.

¿Por qué aprender Rust puede ser frustrante?

Aunque en Rust aparecen conceptos y filosofías de trabajo que no están presentes en otros lenguajes de programación típicos, no creo que esto sea problemático.

Si tomamos como referencia el libro oficial de Rust, recuerdo perfectamente la sensación en los primeros capítulos: no sé por qué ocurren las cosas, siento que me están ocultando información importante, camino por arenas movedizas…

A medida que se avanza en el aprendizaje se van descubriendo los patrones, se asimilan las reglas básicas, se entiende el porqué de las cosas y las decisiones de diseño de Rust… Pero algunas personas abandonan antes de llegar a ese punto.

Otro punto de fricción importante es el compilador. Al principio es muy difícil darse cuenta de que el compilador de Rust es el mejor aliado posible. Muchas personas se quedan con la idea de que programar en Rust consiste en hacer todo lo posible por satisfacer al compilador, que se dedica más tiempo y esfuerzo a la sintaxis y al lenguaje en sí, que al problema que se quiere resolver.

Finalmente, la sensación de “sobreingeniería”. Sobre todo si se tiene experiencia previa con lenguajes de alto nivel como Python, JavaScript o similares. Programar en esos lenguajes es muy rápido, uno se centra en el problema que quiere resolver y no tiene que pensar en los detalles internos del lenguaje. Programar en Rust implica cierto tipo de planificación, elegir los tipos de datos, tener ciertos conocimientos de la gestión interna de memoria… y luchar contra el compilador.

Recursos adicionales

¿Dónde comprar Rust para terrícolas?

Da el primer paso del camino que te llevará a aprender Rust y convertirte en experto.

_Comprar en Amazon.es Comprar en Amazon.com