Curso Mojo for Python Developersde

  • DevOps | CI | CD | Kubernetes | Web3

Curso Mojo for Python Developersde

24 horas
Visão Geral

Curso Mojo for Python Developers: Este curso oferece uma imersão técnica profunda na linguagem de programação Mojo, projetada especificamente para desenvolvedores Python experientes. Ele aborda a transição da tipagem dinâmica e do gerenciamento automático de memória do Python para o sistema de tipos estáticos, o modelo de propriedade (ownership) e os recursos de metaprogramação do Mojo. O foco é capacitar os alunos a escrever código de alto desempenho, próximo ao metal, aproveitando a sintaxe familiar do Python e mantendo a interoperabilidade total com seu vasto ecossistema de bibliotecas. O curso explora as nuances da compilação AOT (Ahead-of-Time) e JIT (Just-in-Time) no contexto do Mojo e como ele resolve o problema de desempenho "duas linguagens" na engenharia de IA e sistemas.

Objetivo

Após concluir este Curso Mojo for Python Developers, você será capaz de:

  • Escrever código Mojo idiomático, distinguindo eficazmente entre o uso de def (dinâmico) e fn (estático/estrito).
  • Utilizar o sistema de tipos estáticos do Mojo para obter segurança de tipo em tempo de compilação e otimizações de desempenho significativas.
  • Compreender e aplicar o modelo de propriedade e empréstimo (ownership and borrowing) do Mojo para gerenciar memória de forma eficiente sem um Garbage Collector.
  • Implementar estruturas de dados personalizadas de alto desempenho usando struct e gerenciar seu ciclo de vida.
  • Otimizar algoritmos numéricos utilizando vetores SIMD e técnicas de paralelismo integradas.
  • Interoperar perfeitamente com código e bibliotecas Python existentes dentro de um projeto Mojo.
  • Utilizar metaprogramação em tempo de compilação para gerar código otimizado e flexível.
Publico Alvo
  •  
  • Desenvolvedores Python de nível intermediário a avançado.
  • Engenheiros de Machine Learning e IA que buscam otimizar pipelines de dados e inferência de modelos.
  • Desenvolvedores de backend focados em computação intensiva e gargalos de desempenho.
  • Programadores interessados em programação de sistemas sem abandonar a ergonomia de linguagens de alto nível.
  •  
Materiais
Ingles/Portugues
Conteúdo Programatico

Módulo 1: Fundamentos e a Ponte Python-Mojo

  1. Apresentação do Mojo: O problema das duas linguagens e a solução unificada.
  2. Instalação e configuração do ambiente de desenvolvimento.
  3. mojo CLI e fluxo de trabalho básico (REPL, build, run).
  4. Sintaxe básica: Variáveis (varlet), loops, condicionais (semelhanças com Python).
  5. Funções dinâmicas com def: A porta de entrada familiar.
  6. Interoperabilidade essencial: Importando e usando módulos Python (Python.import_module).

Módulo 2: O Núcleo Estático - Tipos e fn

  1. Introdução à tipagem estática: Por que e quando usar.
  2. Tipos primitivos do Mojo (IntFloat64BoolString, etc.).
  3. Funções estritas com fn: Regras, restrições e benefícios de desempenho.
  4. Argumentos de função e seus modificadores (borrowedinoutowned).
  5. Anotações de tipo e inferência de tipo.

Módulo 3: Estruturas de Dados e Gerenciamento de Memória

  1. struct vs. class (Python): Layout de memória e comportamento.
  2. Métodos especiais em structs: __init____copyinit____moveinit____del__.
  3. O modelo de propriedade (Ownership): Entendendo quem detém os dados.
  4. Semântica de Cópia (Copy) vs. Movimentação (Move) e o operador ^.
  5. Gerenciamento de memória sem GC: Referências, tempo de vida e o "borrow checker".

Módulo 4: Desempenho de Alto Nível e Metaprogramação

  1. Tipos parametrizados (Generics): Escrevendo código reutilizável e seguro.
  2. Metaprogramação em tempo de compilação: alias, valores comptime e avaliação condicional.
  3. Vetores SIMD (SIMD[type, size]): Acelerando cálculos numéricos.
  4. Paralelismo e concorrência: Utilizando múltiplos núcleos com parallelize.
  5. Benchmarking e análise de desempenho: Comparando Python puro vs. Mojo dinâmico vs. Mojo estático.

Módulo 5: Tópicos Avançados e Projetos

  • Tratamento de erros com Error e try/catch em contextos fn.
  • Interoperabilidade avançada: Passando estruturas de dados complexas entre Python e Mojo.
  • Ponteiros e interação de baixo nível (quando necessário).
  • Projeto Prático 1: Implementação de um algoritmo numérico intensivo (ex: multiplicação de matrizes, processamento de imagem) otimizado com SIMD e paralelismo.
  • Projeto Prático 2: Criação de uma biblioteca híbrida que expõe uma interface Python amigável para um núcleo de computação de alto desempenho escrito em Mojo.
TENHO INTERESSE

Cursos Relacionados

Curso Ansible Red Hat Basics Automation Technical Foundation

16 horas

Curso Terraform Deploying to Oracle Cloud Infrastructure

24 Horas

Curso Ansible Linux Automation with Ansible

24 horas

Ansible Overview of Ansible architecture

16h

Advanced Automation: Ansible Best Practices

32h