{"id":336047,"date":"2023-03-29T20:57:29","date_gmt":"2023-03-29T19:57:29","guid":{"rendered":"https:\/\/blog.jetbrains.com\/?post_type=rust&#038;p=336047"},"modified":"2023-09-04T17:32:10","modified_gmt":"2023-09-04T16:32:10","slug":"aprenda-rust-con-los-ide-de-jetbrains","status":"publish","type":"rust","link":"https:\/\/blog.jetbrains.com\/es\/rust\/2023\/03\/29\/aprenda-rust-con-los-ide-de-jetbrains\/","title":{"rendered":"Aprenda Rust con los IDE de JetBrains"},"content":{"rendered":"<p>No hay una \u00fanica forma de aprender un lenguaje de programaci\u00f3n: cada uno lo hace a su manera. Hay quienes leen mucho (libros, blogs, tutoriales, documentaci\u00f3n, debates de Reddit, respuestas de StackOverflow, etc.); otros hacen preguntas y se fijan en los ejemplos; otros escriben su propio c\u00f3digo y trabajan en los proyectos que m\u00e1s les gustan; otros resuelven problemas; y otros exploran ecosistemas. A cada uno le funciona mejor una cosa, y los hay incluso que hacen todo lo anterior. Es habitual empezar aprendiendo las funcionalidades del lenguaje y c\u00f3mo combinarlas en los programas, y, en alg\u00fan punto, se estudian los distintos enfoques para resolver problemas. Tarde o temprano, se pasa de usar componentes de bibliotecas est\u00e1ndar a bibliotecas externas y se explora c\u00f3mo probar, depurar, escribir registros, perfilar las aplicaciones, etc.<\/p>\n<p>Rust no es una excepci\u00f3n: no hay recurso educativo suficiente para llegar a dominarlo. Aun as\u00ed, en JetBrains tenemos una sugerencia: nuestro curso gratuito <a href=\"https:\/\/plugins.jetbrains.com\/plugin\/16631-learn-rust\/about\" target=\"_blank\" rel=\"noreferrer noopener\">Learn Rust<\/a>, que cubre muchas de las necesidades de aprendizaje que acabamos de mencionar.<\/p>\n<p>El curso se basa en los contenidos de <a href=\"https:\/\/doc.rust-lang.org\/book\/\" target=\"_blank\" rel=\"noreferrer noopener\">The Rust Programming Language<\/a><em>,<\/em> un libro de Steve Klabnik y Carol Nichols con contribuciones de la comunidad de Rust. Aunque incluye la mayor\u00eda de los ejercicios del famoso conjunto <a href=\"https:\/\/github.com\/rust-lang\/rustlings\" target=\"_blank\" rel=\"noreferrer noopener\">Rustlings<\/a>, aproximadamente una cuarta parte de los ejercicios los hemos dise\u00f1ado espec\u00edficamente para el curso. En lugar de limitarnos a recopilar materiales existentes, hemos combinado los textos y los ejercicios, y les hemos dado forma de IDE para crear una nueva forma de aprender Rust.<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone wp-image-338108 size-medium\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/03\/DSGN-15717_Blog_Featured_image_1280x600_ESP-2-1200x563.png\" alt=\"\" width=\"1200\" height=\"563\" \/><\/figure>\n<div class=\"buttons\">\n<div class=\"buttons__row\"><a class=\"btn\" href=\"https:\/\/plugins.jetbrains.com\/plugin\/16631-learn-rust\/about\" target=\"_blank\" rel=\"noopener\">Learn Rust<\/a><\/div>\n<p>\u00a0<\/p>\n<\/div>\n<h2>Por qu\u00e9 Rust<\/h2>\n<p>Seg\u00fan la <a href=\"https:\/\/survey.stackoverflow.co\/2022\/#section-most-loved-dreaded-and-wanted-programming-scripting-and-markup-languages\" target=\"_blank\" rel=\"noreferrer noopener\">encuesta de desarrolladores StackOverflow<\/a>, Rust lleva 7 a\u00f1os consecutivos siendo el lenguaje de programaci\u00f3n preferido, as\u00ed como el m\u00e1s demandado (empatado con Python).<\/p>\n<p>Hace poco, Rust <a href=\"https:\/\/www.zdnet.com\/article\/linus-torvalds-rust-will-go-into-linux-6-1\/\" target=\"_blank\" rel=\"noreferrer noopener\">se hizo un hueco<\/a> en la lista de lenguajes compatibles para escribir componentes del n\u00facleo de Linux (y es el segundo lenguaje de dicha lista, justo despu\u00e9s de C). Libcurl, una de las bibliotecas m\u00e1s utilizadas para obtener datos a trav\u00e9s de redes, <a href=\"https:\/\/daniel.haxx.se\/blog\/2022\/02\/01\/curl-with-rust\/\" target=\"_blank\" rel=\"noreferrer noopener\">est\u00e1 pasando de forma gradual<\/a> a Rust. Google <a href=\"https:\/\/security.googleblog.com\/2022\/12\/memory-safe-languages-in-android-13.html\" target=\"_blank\" rel=\"noreferrer noopener\">ha informado<\/a> de que la proporci\u00f3n de c\u00f3digo Rust en su implementaci\u00f3n de Android aumenta de una versi\u00f3n a otra, lo que les ayuda a reducir el riesgo de vulnerabilidades y mejorar la seguridad. Microsoft <a href=\"https:\/\/www.theregister.com\/2022\/09\/20\/rust_microsoft_c\/\" target=\"_blank\" rel=\"noreferrer noopener\">conf\u00eda<\/a> en gran medida en Rust para proporcionar seguridad de memoria en sus productos, mientras que Amazon utiliza Rust para <a href=\"https:\/\/aws.amazon.com\/blogs\/opensource\/sustainability-with-rust\/\" target=\"_blank\" rel=\"noreferrer noopener\">garantizar<\/a> la sostenibilidad de su infraestructura.<\/p>\n<p>Los desarrolladores que utilizan otros lenguajes de programaci\u00f3n, como JavaScript o Python, suelen recurrir a Rust cuando necesitan mejorar el rendimiento de las <a href=\"https:\/\/leerob.io\/blog\/rust\" target=\"_blank\" rel=\"noreferrer noopener\">herramientas<\/a> y las <a href=\"https:\/\/developers.redhat.com\/blog\/2017\/11\/16\/speed-python-using-rust\" target=\"_blank\" rel=\"noreferrer noopener\">bibliotecas<\/a>.<\/p>\n<p>Por \u00faltimo, pero no por ello menos importante, Rust cuenta con una <a href=\"https:\/\/www.rust-lang.org\/community\" target=\"_blank\" rel=\"noreferrer noopener\">comunidad muy acogedora<\/a>, siempre dispuesta a ayudar y animar a los principiantes.<\/p>\n<p>En definitiva, los alumnos potenciales deben ser conscientes de que Rust tiene una curva de aprendizaje dif\u00edcil y este debe ser sistem\u00e1tico, lo cual es exactamente lo que tratamos de ofrecer con nuestro curso Learn Rust.<\/p>\n<h2>Aprenda Rust en un IDE<\/h2>\n<p>El curso Learn Rust est\u00e1 basado en la plataforma educativa proporcionada por el complemento <a href=\"https:\/\/plugins.jetbrains.com\/plugin\/10081-edutools\" target=\"_blank\" rel=\"noopener\">JetBrains Academy<\/a>. Este complemento est\u00e1 disponible en muchos IDE de JetBrains, entre los que se incluyen CLion, GoLand o IntelliJ IDEA Community Edition, y no solo le permite aprender Rust, sino otros lenguajes de programaci\u00f3n de forma gratuita.<\/p>\n<p>Los cursos basados en IDE requieren la lectura de materiales educativos, la exploraci\u00f3n de ejemplos de c\u00f3digo y la resoluci\u00f3n de problemas, que en nuestro curso est\u00e1n estructurados en lecciones y secciones. Cada lecci\u00f3n incluye una secuencia de pasos sencillos, entre los que podemos encontrar <em>pasos te\u00f3ricos<\/em> con un ejemplo con el que hacer pruebas o <em>pasos de problemas<\/em> en el que tendremos que resolver uno. Estos \u00faltimos pasos permiten comprobar f\u00e1cilmente las soluciones.<\/p>\n<p>Si trabaja con un curso basado en IDE, dispondr\u00e1 de una ventana de IDE totalmente funcional con tres paneles: una vista general del curso, un editor de c\u00f3digo y una descripci\u00f3n, tal como se aprecia en la siguiente captura de pantalla.<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-326140\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/02\/image-69.png\" alt=\"\" width=\"1600\" height=\"998\" \/><\/figure>\n<p>La ventaja de hacer un curso en un IDE es que, a la vez que aprende un lenguaje, adquiere experiencia en el desarrollo de software. Mientras realiza los ejercicios pr\u00e1cticos, tambi\u00e9n escribe, comprueba, corrige, ejecuta, depura y prueba el c\u00f3digo, tal como har\u00eda un programador real como parte de su rutina diaria de desarrollo de software. Al final del curso, no solo habr\u00e1 adquirido un conocimiento s\u00f3lido sobre el lenguaje de programaci\u00f3n, sino que tambi\u00e9n se habr\u00e1 familiarizado con una herramienta de desarrollo profesional y estar\u00e1 preparado para convertirse en desarrollador de software.<\/p>\n<p>Eche un vistazo a la p\u00e1gina <a href=\"https:\/\/jetbrains.com\/idea-edu\" target=\"_blank\" rel=\"noopener\">IntelliJ IDEA for Education<\/a> para obtener m\u00e1s informaci\u00f3n acerca de los beneficios de aprender a programar en un IDE.<\/p>\n<h2>Caracter\u00edsticas del curso<\/h2>\n<p>En el curso Learn Rust, al igual que en el libro en el que est\u00e1 basado, se da por sentado que tiene conocimientos pr\u00e1cticos de alg\u00fan lenguaje de programaci\u00f3n. En lugar de ofrecer una introducci\u00f3n a la programaci\u00f3n, se le ense\u00f1a a programar <em>en Rust<\/em> en concreto, de modo que se salta la mayor\u00eda de temas b\u00e1sicos que suelen incluir los cursos de programaci\u00f3n.<\/p>\n<p>Siguiendo la estructura de <a href=\"https:\/\/doc.rust-lang.org\/book\/\" target=\"_blank\" rel=\"noopener\">The Rust Programming Language<\/a><em>,<\/em> el curso est\u00e1 estructurado en las siguientes secciones:<\/p>\n<ul>\n<li>Introducci\u00f3n<\/li>\n<li>Conceptos b\u00e1sicos sobre programaci\u00f3n<\/li>\n<li>Entender la propiedad<\/li>\n<li>Estructuras, m\u00e9todos, enumeraciones y concordancia de patrones<\/li>\n<li>M\u00f3dulos<\/li>\n<li>Colecciones habituales<\/li>\n<li>Gesti\u00f3n de errores<\/li>\n<li>Tipos gen\u00e9ricos, caracter\u00edsticas y vida \u00fatil<\/li>\n<li>Escritura de pruebas automatizadas<\/li>\n<li>Tipos de biblioteca est\u00e1ndar<\/li>\n<li>Simultaneidad intr\u00e9pida<\/li>\n<li>Macros<\/li>\n<\/ul>\n<p>Learn Rust contiene 331 pasos en total, entre los cuales hay 210 pasos de teor\u00eda y 121 pasos de resoluci\u00f3n de problemas. Cada paso del curso se presenta en forma de paquete Cargo, lo que permite mostrar y aprender no solo las caracter\u00edsticas b\u00e1sicas del lenguaje Rust, sino tambi\u00e9n m\u00f3dulos, contenedores, macros, pruebas de los paquetes, dependencias externas, etc.<\/p>\n<p>Trabajar en cada paso implica tanto leer como trabajar con c\u00f3digo. Si el c\u00f3digo que contiene el paso tiene la funci\u00f3n principal, puede ejecutarse:<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-326151\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/02\/image-70.png\" alt=\"\" width=\"1600\" height=\"998\" \/><\/figure>\n<p>En la mayor\u00eda de los pasos de resoluci\u00f3n de problemas, se le expone a un \u00fanico archivo de c\u00f3digo (como se aprecia en la captura de pantalla anterior), pero, a veces, tiene acceso a toda la estructura del paquete para que pueda explorar los componentes importantes, como los archivos de descripci\u00f3n del proyecto:<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-326162\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/02\/image-71.png\" alt=\"\" width=\"1600\" height=\"998\" \/><\/figure>\n<p>Desde este punto, puede acceder a la documentaci\u00f3n de un contenedor o conocer las versiones disponibles.<\/p>\n<p>Por supuesto, al hablar de probar paquetes de Rust, exponemos los archivos de prueba:<\/p>\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-326173\" src=\"https:\/\/blog.jetbrains.com\/wp-content\/uploads\/2023\/02\/image-72.png\" alt=\"\" width=\"1600\" height=\"998\" \/><\/figure>\n<p>Puede ejecutar las pruebas una por una o todas a la vez antes de comprobar la soluci\u00f3n haciendo clic en el bot\u00f3n <em>Check<\/em>.<\/p>\n<p>Estas funcionalidades tienen como objetivo introducirle en las mejores pr\u00e1cticas de desarrollo de software en los IDE lo antes posible. Creemos que el uso de herramientas profesionales desde el principio del proceso de aprendizaje es muy beneficioso. As\u00ed pues, gracias a que Rust es totalmente compatible con los IDE de JetBrains, ahora tambi\u00e9n puede hacerlo mientras aprende Rust.<\/p>\n<h2>\u00a1Aprenda Rust y d\u00edganos qu\u00e9 le parece!<\/h2>\n<p>Si bien es cierto que para aprender Rust en profundidad no basta con seguir este curso, creemos que puede ser un buen punto de partida para que los futuros desarrolladores se adentren en el apasionante mundo de la programaci\u00f3n en Rust. \u00a1Esperamos que disfrute estudiando Rust con nosotros! No dude en compartir su opini\u00f3n en la secci\u00f3n de comentarios o poni\u00e9ndose en contacto con nosotros en <a href=\"mailto:education@jetbrains.com\">academy@jetbrains.com<\/a>.<\/p>\n<p><em>Art\u00edculo original en ingl\u00e9s de:<\/em><\/p>\n<p>\u00a0<\/p>\n\n    <div class=\"about-author \">\n        <div class=\"about-author__box\">\n            <div class=\"row\">\n                <div class=\"about-author__box-img\">\n                    <img decoding=\"async\" src=\"https:\/\/secure.gravatar.com\/avatar\/?s=200&#038;r=g\" width=\"200\" height=\"200\" alt=\"\" loading=\"lazy\"  class=\"avatar avatar-200 wp-user-avatar wp-user-avatar-200 photo avatar-default\">\n                <\/div>\n                <div class=\"about-author__box-text\">\n                                                        <\/div>\n            <\/div>\n        <\/div>\n    <\/div>\n","protected":false},"author":1086,"featured_media":338122,"comment_status":"closed","ping_status":"closed","template":"","categories":[5040,283,89,4440],"tags":[530],"cross-post-tag":[6631],"acf":[],"_links":{"self":[{"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/rust\/336047"}],"collection":[{"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/rust"}],"about":[{"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/types\/rust"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/users\/1086"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/comments?post=336047"}],"version-history":[{"count":6,"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/rust\/336047\/revisions"}],"predecessor-version":[{"id":338134,"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/rust\/336047\/revisions\/338134"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/media\/338122"}],"wp:attachment":[{"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/media?parent=336047"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/categories?post=336047"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/tags?post=336047"},{"taxonomy":"cross-post-tag","embeddable":true,"href":"https:\/\/blog.jetbrains.com\/es\/wp-json\/wp\/v2\/cross-post-tag?post=336047"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}