We may earn an affiliate commission when you visit our partners.
Francisco Calderón

Rust es un lenguaje de programación compilado, de propósito general y multiparadigma que está siendo desarrollado por Mozilla. Ha sido diseñado para ser "un lenguaje seguro, concurrente y práctico". Es un lenguaje de programación multiparadigma que soporta programación funcional pura, por procedimientos, imperativa y orientada a objetos.

Read more

Rust es un lenguaje de programación compilado, de propósito general y multiparadigma que está siendo desarrollado por Mozilla. Ha sido diseñado para ser "un lenguaje seguro, concurrente y práctico". Es un lenguaje de programación multiparadigma que soporta programación funcional pura, por procedimientos, imperativa y orientada a objetos.

Rust es desarrollado de forma totalmente abierta y busca la opinión y contribución de la comunidad. El diseño del lenguaje se ha ido perfeccionando a través de las experiencias en el desarrollo del motor de navegador Servo, y el propio compilador de Rust. Aunque es desarrollado y patrocinado por Mozilla y Samsung, es un proyecto comunitario. Una gran parte de las contribuciones proceden de los miembros de la comunidad.

La sintaxis de Rust es similar a la de C y C++, con bloques de código delimitados por llaves y estructuras de control de flujo tales como if, else, do, while y for. No todas las estructuras de C y C++ están presentes, además, otras (como la palabra clave match para ramificación multidireccional) serán menos familiares para programadores que vienen de estos lenguajes.

En mi opinión, Rust es el mejor lenguaje de programación que puedes aprender hoy.

Ven y aprende sobre el mejor lenguaje de programación jamás creado. Además de las clases habrá muestra de código para comenzar a hacer que todo su software y aplicaciones realmente funcionen.

Enroll now

What's inside

Learning objectives

  • Curso completo para aprender a programar.
  • Enfocado a desarrolladores principiantes y experimentados.
  • Desde conceptos básicos hasta temas avanzados.
  • Traits, concurrencia, threads
  • Testing, manejo de errrores, documentación.
  • Ejercicios prácticos con soluciones.
  • Acceso al curso de por vida.
  • 100% satisfacción garantizada.

Syllabus

Introducción

Una breve introducción a nuestro curso rust, donde te cuento un poco sobre mi background profesional y los temas a tratar en el curso.

Read more
¿Por qué Rust?
Instalando y configurando Rust en windows
Instalando y configurando Rust en Linux
Administrador de paquetes Cargo
Rust Playground
Incluyendo dependencias con crates.io
Variables, Tipos y funciones
¿Cómo funciona la computadora?

En esta clase veremos los tipos primitivos:

  • Enteros u8, u16, u32, u64, i8, i16, i32, i64

  • Punto flotante: f32, f64

  • Char

  • Booleano

    Convertirlos en binario, octal, hexadecimal

Variables, constantes y shadowing
Alcance

Operadores aritmeticos y logicos

Explicacion de bit shifting con el codigo de halving de bitcoin core

Funciones
Prelude
Control de flujo
If, else, else if, let if
while y loop
for
match
Patrones
if let / while let
La manera de Rust
Ownership
Borrowing y referencias
Lifetimes
Estructuras de datos
Structs
Enums y option
Arrays
Slices
Tuplas
Punteros
Smart Pointers
Box pointer
Reference counted pointer
Colecciones
Vectores
Hashmap
HashSet
Strings y texto
Ascii y UTF-8
String y str
chars
Formateando una string
Iterators y closures
Closures
Iterators
Traits
Traits e impl
Programación orientada a objetos en Rust
Enums genéricos
Structs genéricos
Funciones genéricas
Static Dispatch
Dynamic Dispatch
Manejo de errores
Errores recuperables
Errores no recuperables
Concurrencia
Paralelismo Fork-Join
Canales
Módulos
Usando módulos en Rust
Módulos en diferentes archivos
Tests, Depuración, Documentación
Tests unitarios
Ejercitándose con rustlings
Depuración de programas
Documentación
Formateo con rustfmt

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Cubre temas desde los conceptos básicos hasta temas avanzados, lo que lo hace adecuado tanto para principiantes como para programadores experimentados que buscan aprender Rust
Incluye ejercicios prácticos con soluciones, lo que permite a los estudiantes aplicar lo que aprenden y desarrollar sus habilidades de resolución de problemas
Explora temas como traits, concurrencia y threads, que son esenciales para escribir programas Rust eficientes y confiables
Cubre pruebas, manejo de errores y documentación, que son habilidades importantes para escribir código mantenible y de alta calidad
Requiere la instalación y configuración de Rust en Windows o Linux, lo que puede ser un obstáculo para algunos estudiantes sin experiencia en la configuración de entornos de desarrollo
Utiliza crates.io para incluir dependencias, lo que requiere que los estudiantes tengan una conexión a Internet y estén familiarizados con el uso de administradores de paquetes

Save this course

Save Aprende a programar con Rust to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Aprende a programar con Rust with these activities:
Leer 'El Lenguaje de Programación Rust'
Leer la guía oficial de Rust proporcionará una base sólida para comprender los conceptos y la sintaxis del lenguaje.
Show steps
  • Practicar los ejemplos de código del libro.
  • Leer los capítulos introductorios del libro.
  • Consultar el libro como referencia durante el curso.
Practicar con Rustlings
Rustlings es una colección de pequeños ejercicios que ayudan a familiarizarse con la sintaxis y los conceptos básicos de Rust.
Show steps
  • Instalar Rustlings siguiendo las instrucciones en el repositorio de GitHub.
  • Trabajar a través de los ejercicios en orden, leyendo las explicaciones y corrigiendo los errores.
  • Consultar la documentación de Rust o buscar ayuda en línea si te quedas atascado.
Leer 'Rust en Acción'
Leer 'Rust en Acción' proporciona ejemplos prácticos y casos de uso reales para aplicar los conocimientos adquiridos en el curso.
Show steps
  • Seleccionar los capítulos relevantes para tus intereses.
  • Estudiar los ejemplos de código y adaptarlos a tus propios proyectos.
  • Utilizar el libro como guía para resolver problemas específicos.
Three other activities
Expand to see all activities and additional details
Show all six activities
Escribir un blog sobre un tema de Rust
Escribir un blog sobre un tema específico de Rust ayuda a consolidar el conocimiento y a compartirlo con otros.
Show steps
  • Elegir un tema específico de Rust que te interese.
  • Investigar el tema a fondo y escribir un borrador del blog.
  • Revisar y editar el blog para asegurar la claridad y la precisión.
  • Publicar el blog en una plataforma como Medium o tu propio sitio web.
Crear una aplicación de línea de comandos sencilla
Desarrollar una aplicación de línea de comandos sencilla permite aplicar los conocimientos adquiridos en el curso y a experimentar con diferentes características de Rust.
Show steps
  • Definir la funcionalidad de la aplicación.
  • Diseñar la interfaz de línea de comandos.
  • Implementar la aplicación en Rust.
  • Probar y depurar la aplicación.
Contribuir a un proyecto de código abierto en Rust
Contribuir a un proyecto de código abierto en Rust permite ganar experiencia práctica, aprender de otros desarrolladores y contribuir a la comunidad.
Show steps
  • Encontrar un proyecto de código abierto en Rust que te interese.
  • Familiarizarse con el código base y las directrices de contribución.
  • Identificar un problema o característica en la que te gustaría trabajar.
  • Implementar la solución y enviar una solicitud de extracción.

Career center

Learners who complete Aprende a programar con Rust will develop knowledge and skills that may be useful to these careers:
Desarrollador de software
Un desarrollador de software crea aplicaciones y sistemas informáticos, y este curso ayuda a construir una base sólida en programación. Este rol implica escribir, probar y depurar código, y el curso proporciona una introducción a la sintaxis, estructuras de datos y control de flujo, todos esenciales para un desarrollador de software. Este curso, que cubre desde conceptos básicos hasta temas avanzados como concurrencia y manejo de errores, permite al aspirante a desarrollador de software adquirir habilidades prácticas. El estudio de Rust, un lenguaje moderno y eficiente, prepara al estudiante para desafíos de programación complejos que encontrará en la vida real.
Ingeniero de Sistemas
Un ingeniero de sistemas diseña, desarrolla e implementa sistemas de software y hardware. El curso ayuda al ingeniero de sistemas a entender la programación a bajo nivel y cómo interactúan los componentes de un sistema. Los conceptos de programación, tipos de datos, estructuras de control, concurrencia y manejo de errores, todos ellos cubiertos en este curso, son relevantes para un ingeniero de sistemas. Este curso es particularmente relevante porque ofrece la oportunidad de trabajar con Rust, un lenguaje que es adecuado para el desarrollo de sistemas de alto rendimiento. Esto permite al ingeniero de sistemas crear sistemas de software robustos y eficientes.
Desarrollador de Juegos
Un desarrollador de juegos crea videojuegos, y esta formación en programación ayuda al desarrollador de juegos a entender cómo construir la lógica de un juego. Este rol requiere una comprensión de la lógica de programación, estructuras de datos y gestión de recursos, todo lo cual se estudia en este curso. La parte del programa que trata sobre concurrencia, manejo de errores y gestión de memoria es particularmente valiosa para el desarrollo de juegos. Este curso proporciona la base que todo desarrollador de juegos necesita, ofreciendo experiencia con un lenguaje moderno y eficiente como Rust.
Ingeniero de Seguridad
Un ingeniero de seguridad protege los sistemas de software contra vulnerabilidades y ataques. Este curso, que cubre programación a un nivel profundo, ayuda al ingeniero de seguridad a entender cómo se construyen los sistemas y cómo pueden ser explotados. El curso es especialmente útil por su enfoque en temas como el manejo de errores y concurrencia, que son aspectos importantes de la seguridad. Un ingeniero de seguridad puede utilizar estas habilidades para desarrollar software más robusto y seguro. Este curso, por su énfasis en Rust, prepara al ingeniero de seguridad a las nuevas tendencias del desarrollo seguro.
Desarrollador de Aplicaciones Móviles
Un desarrollador de aplicaciones móviles crea aplicaciones para dispositivos móviles, y este curso de programación permite que el desarrollador de aplicaciones móviles adquiera las habilidades necesarias para crear software. Este papel requiere un conocimiento profundo de la programación y la arquitectura de software, ambos cubiertos en este curso. El aprendizaje de un lenguaje multiparadigma como Rust expone al desarrollador de aplicaciones móviles a una variedad de metodologías de programación. Este curso proporciona una base sólida en programación, lo que permite al desarrollador de aplicaciones móviles crear aplicaciones eficientes y de alto rendimiento.
Desarrollador de Sistemas Embebidos
Un desarrollador de sistemas embebidos crea software para dispositivos que no son computadoras, y este curso de programación puede ser útil para entender el desarrollo de bajo nivel. El trabajo de un desarrollador de sistemas embebidos requiere conocimientos sólidos de lenguajes de programación de bajo nivel, y este curso puede ayudar al estudiante a obtener esos conocimientos, especialmente con el estudio de Rust, que es popular en el desarrollo de software para sistemas embebidos. Este curso puede ser útil para desarrollar una base sólida en conceptos de programación, gestión de memoria y concurrencia, todo lo cual es relevante para el desarrollo de sistemas embebidos.
Desarrollador de Backend
Un desarrollador de backend crea la lógica y la base de datos para aplicaciones web y móviles, y este curso puede ayudar al desarrollador de backend a entender la programación. El desarrollo de backend requiere una comprensión de la programación, estructuras de datos y gestión de concurrencia, todos los cuales son tratados en este curso. Rust es un lenguaje que se puede utilizar en los sistemas backend, lo que convierte este curso en una opción particularmente relevante. Los conceptos aprendidos en este curso pueden ser útiles para el desarrollador de backend para crear el código de servidor rápido y robusto.
Arquitecto de software
Un arquitecto de software diseña y define la estructura de un sistema de software. Este curso puede ser útil para que el arquitecto de software comprenda los principios de la programación y las decisiones de diseño. El curso permite al arquitecto de software comprender mejor los conceptos que deben conocer al tomar decisiones sobre la estructura de un software. La sección sobre módulos, concurrencia y manejo de errores puede ser de mucha utilidad para un arquitecto de software. Este curso puede ser útil para que el arquitecto de software desarrolle una comprensión más profunda del diseño y desarrollo de software.
Ingeniero de DevOps
Un ingeniero de DevOps se encarga de automatizar la implementación y el mantenimiento de software, y un curso de programación como este puede ayudar al ingeniero de DevOps en su trabajo diario. El ingeniero de DevOps necesita comprender la lógica de los programas que se están implementando. El curso puede ser útil para entender los principios de programación y manejo de errores a un nivel más profundo, así como gestión de dependencias. Además, Rust, el lenguaje de programación de este curso, es una buena opción para automatizar procesos y construir herramientas de DevOps. Como resultado, este curso puede ser útil para el ingeniero de DevOps.
Investigador en Ciencias de la Computación
Un investigador en ciencias de la computación estudia problemas teóricos y prácticos en computación, y este curso de programación puede ser útil para realizar trabajo de investigación. Este curso proporciona una base firme en conceptos de programación, tipos de datos, y concurrencia. Un investigador debe entender el funcionamiento de los lenguajes de programación y este curso puede ser útil. El estudio de Rust, un lenguaje moderno, permite al investigador mantenerse a la vanguardia de las técnicas de programación. Este curso puede ser útil para el investigador en ciencias de la computación que busque ampliar su comprensión de la programación a bajo nivel y su aplicación.
Consultor de Tecnología
Un consultor de tecnología asesora a las empresas sobre cómo utilizar la tecnología para mejorar sus operaciones, y este curso de programación puede ser útil para entender el lado técnico de las implementaciones. El estudio de un lenguaje de programación como Rust puede ser útil para el consultor de tecnología. Este curso ayuda a comprender los conceptos del desarrollo de software y a valorar diferentes herramientas y metodologías, desde el control de flujo hasta el manejo de concurrencia. Este curso puede ser útil para que el consultor de tecnología mejore su conocimiento técnico y sus recomendaciones a sus clientes.
Analista de Datos
Un analista de datos analiza conjuntos de datos para descubrir patrones y tendencias, y este curso de programación puede ser útil para mejorar las habilidades técnicas de análisis. Si bien este curso no se centra en el análisis de datos, la comprensión de la programación y estructuras de datos puede ayudar al analista de datos a preparar y transformar datos. Las habilidades de programación también son útiles para automatizar tareas de análisis de datos. Como resultado, el estudio de un lenguaje como Rust puede ser útil para el analista de datos que busque mejorar sus habilidades técnicas.
Gerente de Producto
Un gerente de producto define la estrategia y hoja de ruta de un producto, y este curso de programación puede ser útil para entender el funcionamiento interno de las herramientas que está gestionando. Aunque el gerente de producto no necesita programar diariamente, una comprensión básica de cómo funciona el software puede ayudar en la comunicación con los ingenieros. Este curso que aborda un lenguaje moderno puede ser útil para comprender la complejidad del desarrollo de software. Este curso puede ser útil para el gerente de producto que busque una mayor comprensión del trabajo de los equipos de desarrollo.
Diseñador de Interfaz de Usuario
Un diseñador de interfaz de usuario se enfoca en la apariencia y la usabilidad de un producto, y este curso puede ser útil para entender la lógica de cómo funciona el software. Este curso, que cubre la programación y el diseño de software, puede ayudar a entender las restricciones técnicas en el diseño de interfaces. Aunque un diseñador de interfaz de usuario no necesite programar de forma diaria, entender los principios del diseño de programación le puede ayudar a diseñar interfaces de usuario eficientes. Como resultado, este curso puede ser de utilidad para el diseñador de interfaz de usuario.
Especialista en marketing digital
Un especialista en marketing digital crea y gestiona campañas de marketing digital, y este curso puede ser útil para que un especialista en marketing digital entienda cómo funcionan las herramientas. Un especialista en marketing digital puede usar esta formación para entender cómo se construyen los sistemas que usan en su día a día y así entender la tecnología. La manera en que se gestionan los datos dentro de un programa puede ser útil para entender cómo se gestionan los datos en una campaña publicitaria. Por lo tanto, esta formación puede ser útil para el especialista en marketing digital.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Aprende a programar con Rust.
Este libro es la guía oficial de Rust, escrita por miembros del equipo central de Rust. Proporciona una cobertura exhaustiva del lenguaje, desde los conceptos básicos hasta los temas avanzados como la concurrencia y la programación segura. Es un recurso valioso tanto para principiantes como para programadores experimentados que buscan dominar Rust. Este libro es útil como referencia constante durante el curso.
Este libro se centra en el uso práctico de Rust para construir aplicaciones del mundo real. Cubre temas como la programación de sistemas, la concurrencia y el desarrollo web. Es un buen recurso para aquellos que buscan aplicar sus conocimientos de Rust a proyectos concretos. Este libro es más valioso como lectura adicional para ampliar el conocimiento.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser