• No hay productos en el carrito.

Inicio / Cursos / Taking Python to Production: A Professional Onboarding Guide
Impartido por Eric RiddochPago único de $2,800 MXN · acceso por 12 meses

Taking Python to Production: A Professional Onboarding Guide

Data scientists, analysts, and beginner devs: transition from "coder" to "software engineer" and learn to ship code

Certificado oficial emitido por la SEPA través del Gobierno del Estado de México
12 meses de acceso En línea · 60 h 17 unidades Nivel principiante
Qué aprenderás

Lo que serás capaz de hacer

This is a course about transitioning from a "coder" to a "software engineer". It specifically covers the tools needed to develop and "ship" production-ready software with Python. As an MLOps engineer, my role is to help enable data scientists, analysts, and junior engineers become more self-sufficient at bringing products to production. This course covers a mix of foundational tools, engineering practices, and career advice that new engineers should be given during the onboarding process when they join a team (but they often don't get guidance!). By the end of this course, you should feel confident contributing to complex software projects in a team setting, whether open-source or at a company (or please request a refund within 30 days!). You will understand how closed- and open-source projects are run and how to run your own. In the course, we write very little code and instead focus on the non-coding aspects of software engineering that make you an effective member of the software engineering community. That said, you should have a solid grasp of Python fundamentals (loops, functions, classes, etc.) before taking this course. Expect to learn how to set up a professional Python development environment how to set up a professional workflow for Python development with Visual Studio Code ; extra emphasis on autocompletion how to use git, GitHub, "branching strategies" , and their integrations with VS Code and the terminal how to write clean, maintainable code and ensure that all code contributed to your projects is good quality (testing, linting, formatting, type checking, documentation, etc.) how to publish production-quality software for a wide audience with packaging, versioning, continuous integration, and continuous delivery (pre-commit, GitHub Actions, PyPI) how to templatize all of the above points, so you can create new, high-quality projects in seconds Before paying for this course, please sample the preview lectures so you can get a sense of whether it's right for you. See you in the course! - Eric

  • Set up a professional Python development environment - Visual Studio Code, pyenv, git, autocompletion
  • Learn the professional git workflow with GitHub and CI/CD with GitHub Actions
  • Make the terminal more intuitive with ZSH and plugins
  • Version and package Python software and publish it for the community
  • Setup automated code quality checks (testing, linting, documentation, type checking, etc.)

Temario

UNIDAD 1 - Introduction · 4 lecciones

UNIDAD 1 - Introduction

  • Course introductionLectura · 0 min
  • NEW - Join DiscordLectura · 0 min
  • IMPORTANT! Course Notes and Course WebsiteLectura · 0 min
  • Linux and terminal crash courseLectura · 0 min
UNIDAD 2 - Environment Setup · 7 lecciones

UNIDAD 2 - Environment Setup

  • Install VS CodeVideo · 2 min
  • Make sure you have the `code` commandLectura · 0 min
  • Mac users only: Install Homebrew, Xcode, and iTerm2Lectura · 0 min
  • Windows users only: Install the Windows Subsystem for Linux (WSL2)Video · 6 min
  • Windows users only: Integrate VS Code with the WSL2Video · 8 min
  • Resources: Installing gitLectura · 0 min
  • Installing the git CLI toolVideo · 3 min
UNIDAD 3 - Improving the terminal with ZSH · 8 lecciones

UNIDAD 3 - Improving the terminal with ZSH

  • IntroductionVideo · 3 min
  • Installing OhMyZSHVideo · 3 min
  • Navigating using ZSH and installing ZSH pluginsVideo · 3 min
  • The ~/.zshrc file and ZSH themesVideo · 4 min
  • Disabling/enabling ZSH plugins; All-in-one Markdown extension; web-search pluginVideo · 10 min
  • Typeahead auto-completion with zsh-autosuggestionsVideo · 4 min
  • Syntax highlighting with zsh-syntax-highlightingVideo · 2 min
  • Cheat sheet: quick ZSH setupLectura · 0 min
UNIDAD 4 - Managing multiple Python versions · 7 lecciones

UNIDAD 4 - Managing multiple Python versions

  • Introduction to Semantic Versioning (semver)Video · 14 min
  • Semantic Versioning (continued)Video · 13 min
  • Semantic VersioningCuestionario · 0 min
  • Why developers need to be able to switch between multiple Python versionsVideo · 6 min
  • Resources for installing pyenvLectura · 0 min
  • Installation and overview of pyenv for managing multiple Python versionsVideo · 14 min
  • History of Python changes; Overview of how Python evolvesVideo · 10 min
UNIDAD 5 - VS Code: shortcuts, auto-completion, and virtual environments · 6 lecciones

UNIDAD 5 - VS Code: shortcuts, auto-completion, and virtual environments

  • VS Code keyboard shortcut referenceLectura · 0 min
  • VS Code: layout and key shortcutsVideo · 13 min
  • Python/Pylance: improve refactoring and syntax highlighting supportVideo · 12 min
  • Step debugging in VS CodeVideo · 8 min
  • Preview of virtual environmentsLectura · 0 min
  • Python virtual environments and the PATH variableVideo · 23 min
UNIDAD 6 - Git and VS Code · 14 lecciones

UNIDAD 6 - Git and VS Code

  • Introducing git by comparing it to Google DocsVideo · 10 min
  • Git lens extensionVideo · 5 min
  • Git command referenceLectura · 0 min
  • git CLI and commitsVideo · 7 min
  • Making a commitVideo · 10 min
  • Time traveling and best practices for making commitsVideo · 13 min
  • git stashVideo · 5 min
  • (Part 1) git branching - visual intuitionVideo · 12 min
  • (Part 2) git branching - hands-on in VS CodeVideo · 8 min
  • Merging git branchesVideo · 10 min
  • Resolving merge conflictsVideo · 8 min
  • [Extra] git branching gameVideo · 2 min
  • git tagsVideo · 9 min
  • Recap: the local git workflowLectura · 0 min
UNIDAD 7 - GitHub and Code Review · 7 lecciones

UNIDAD 7 - GitHub and Code Review

  • Preview of the rest of the courseVideo · 5 min
  • What is GitHub?Video · 11 min
  • Creating a repository in GitHubVideo · 6 min
  • Cloning and git remotesVideo · 23 min
  • Pull Requests and Code ReviewVideo · 10 min
  • Conducting Code Review with a Pull RequestVideo · 26 min
  • Recap: the remote git workflowLectura · 0 min
UNIDAD 8 - Continuous Integration: clean code, formatters, linters and VS Code integrations · 23 lecciones

UNIDAD 8 - Continuous Integration: clean code, formatters, linters and VS Code integrations

  • Section guide: resources, links, assignments, summary notes, etc.Lectura · 0 min
  • Clean code and why it's importantVideo · 13 min
  • Python style guides: Google and PEP 8Video · 10 min
  • Refactoring for better readabilityVideo · 19 min
  • Introduction to Continuous Integration and best practices for PRsVideo · 18 min
  • "PR hell" and more discussion of Continuous IntegrationVideo · 17 min
  • Autoformatting with Black, VS Code's settings system, and "Holy Wars"Video · 29 min
  • Pylint Part 1 - Introducing LintersVideo · 10 min
  • Pylint Part 2 - Integrating with VS CodeVideo · 11 min
  • Pylint Part 3 - Configuring Pylint w/ a config file and CLI argumentsVideo · 14 min
  • Flake8 Part 1 - Usage and backgroundVideo · 17 min
  • Flake8 Part 2 - Flake8 plugins w/ Darglint as an exampleVideo · 11 min
  • isort: sorting import statementsVideo · 16 min
  • "Code metrics" like "cyclomatic complexity" with Radon, Xenon, and McCabeVideo · 17 min
  • Typing Part 1 - type hints, autocompletion, static vs dynamic type checkingVideo · 21 min
  • Typing Part 2 - Mypy and basic typingVideo · 8 min
  • Typing Part 3 - Simple and Complex TypesVideo · 14 min
  • Typing Part 4 - Union and OptionalVideo · 6 min
  • Typing Part 5 - TypedDict, dataclasses, NamedTuple, self-referential typesVideo · 20 min
  • Typing Part 6 - Generic TypesVideo · 27 min
  • Typing Part 7 - Type Stubs and incrementally adding types to existing codebasesVideo · 18 min
  • Darker: incrementally lint legacy projectsVideo · 18 min
  • Ruff: the last Python linter ever?Video · 20 min
UNIDAD 9 - Continuous Integration - The pre-commit framework · 6 lecciones

UNIDAD 9 - Continuous Integration - The pre-commit framework

  • A Continuous Integration workflow with code quality toolsVideo · 6 min
  • CI Approach 1 - Writing a script that calls each toolVideo · 12 min
  • Git pre-commit hooksVideo · 12 min
  • CI Approach 2 - The pre-commit frameworkVideo · 17 min
  • Pre-commit hook roundupVideo · 19 min
  • Tour of an advanced pre-commit config fileVideo · 18 min
UNIDAD 10 - GitHub Actions · 6 lecciones

UNIDAD 10 - GitHub Actions

  • Our first GitHub Actions "workflow"Video · 7 min
  • GitHub Actions: running a workflowVideo · 5 min
  • Fixing the build and using pre-commitVideo · 8 min
  • Branch permissions, merge checks, and pull requestsVideo · 11 min
  • Understanding GitHub Actions PricingVideo · 6 min
  • Optimizing for cost by using GitHub Actions TriggersVideo · 7 min
UNIDAD 11 - Python Packaging · 21 lecciones

UNIDAD 11 - Python Packaging

  • Section Intro - Python PackagingVideo · 5 min
  • PYTHONPATH and imports in PythonVideo · 9 min
  • PYTHONPATH hacking (continued)Video · 6 min
  • Our first setup.py fileVideo · 10 min
  • setuptools docs; find_packagesVideo · 10 min
  • pip install --editableVideo · 4 min
  • install_requires and reproducibilityVideo · 9 min
  • Shortcomings of sdist formatVideo · 9 min
  • WheelsVideo · 8 min
  • pyproject.toml origin story; Build dependencies explainedVideo · 11 min
  • Escaping config file hell; setup.cfgVideo · 15 min
  • Removing setup.cfg thanks to PEP 621Video · 9 min
  • Removing setup.py; PEP 517; Build backendsVideo · 3 min
  • Data files - part 1; example use case for including data files in a packageVideo · 14 min
  • Data files - Part 2; MANIFEST.in and build-backend-specific alternativesVideo · 16 min
  • Dependency management; Dependency graphs and locking dependenciesVideo · 7 min
  • Dependency graphsVideo · 6 min
  • Constraint trees and "dependency hell"Video · 10 min
  • Constraint trees are unstable across package versionsVideo · 13 min
  • Optional dependencies AKA "extras"Video · 9 min
  • Shopping for dependencies with the Snyk Python package indexVideo · 9 min
UNIDAD 12 - Intro to Continuous Delivery: Publishing to PyPI · 10 lecciones

UNIDAD 12 - Intro to Continuous Delivery: Publishing to PyPI

  • Section IntroductionVideo · 5 min
  • DevOps and Waterfall vs AgileVideo · 20 min
  • Publishing to PyPI; Test vs Prod PyPIVideo · 5 min
  • Generating API tokens for PyPIVideo · 6 min
  • Running `twine upload`Video · 6 min
  • Task runners - part 1 - CMake and MakefileVideo · 18 min
  • Task runners - part 2 - Alternatives to CMake (Just, PyInvoke, Bash)Video · 10 min
  • Task runners - part 3 - Bash as a task runnerVideo · 15 min
  • Publishing to Test PyPIVideo · 16 min
  • Publishing to Prod PyPI; Why we should move deployment to GitHub ActionsVideo · 7 min
UNIDAD 13 - Automating Continuous Delivery of Python Packages with GitHub Actions · 10 lecciones

UNIDAD 13 - Automating Continuous Delivery of Python Packages with GitHub Actions

  • Introduction to the sectionVideo · 3 min
  • What and why of "delivery environments"Video · 12 min
  • Workflow for Python packagesVideo · 11 min
  • Setting up trigger listeners for the GitHub Actions workflowVideo · 7 min
  • Pushing to Test PyPI from CI; Contexts and secrets management part 1Video · 13 min
  • Contexts and secrets management part 2Video · 16 min
  • A few minor improvements to the pre-merge pipelineVideo · 15 min
  • Enabling linting in the pipelineVideo · 4 min
  • Writing the post-merge pipelineVideo · 7 min
  • Adding git tags and avoiding duplicate releasesVideo · 9 min
UNIDAD 14 - Advanced GitHub Actions Optimization Techniques · 4 lecciones

UNIDAD 14 - Advanced GitHub Actions Optimization Techniques

  • Locking requirementsVideo · 8 min
  • Dependency CachingVideo · 11 min
  • ParallelizationVideo · 10 min
  • Passing artifacts (files) between jobsVideo · 12 min
UNIDAD 15 - Software Testing and Pytest · 10 lecciones

UNIDAD 15 - Software Testing and Pytest

  • Introducing software testingVideo · 7 min
  • Intro to pytestVideo · 3 min
  • Setting up pytest (basic)Video · 8 min
  • Test case universeVideo · 6 min
  • Parameterized test cases and the test case universeVideo · 6 min
  • Pytest markers to skip slow tests; passing arguments to run.shVideo · 18 min
  • Test coverage part 1 - coverage on src/ folderVideo · 17 min
  • Test coverage part 2Video · 16 min
  • Testing in GitHub Actions, Testing the Wheel fileVideo · 16 min
  • Pytest VS Code IntegrationVideo · 8 min
UNIDAD 16 - [No Articles Yet] Course project: Advanced Python package and repo template · 34 lecciones

UNIDAD 16 - [No Articles Yet] Course project: Advanced Python package and repo template

  • Project overview and demoVideo · 10 min
  • Architecture of Final ProjectVideo · 6 min
  • Aside: Jinja2 Templated StringsVideo · 5 min
  • Introducing CookiecutterVideo · 9 min
  • Starting the final project - making a trivial Cookiecutter templateVideo · 7 min
  • There is an answer key! Reference repo in GitHubVideo · 3 min
  • Starting the final project: forking the starter repoVideo · 2 min
  • Templatizing the starter project with CookiecutterVideo · 8 min
  • Tour of the final project starter filesVideo · 17 min
  • Operating a generated project (install deps, run tests, lint, etc.)Video · 6 min
  • Fixing an issue with pre-commit in the templateVideo · 9 min
  • What could/should we test about our template?Video · 9 min
  • Writing our first template testVideo · 13 min
  • Troubleshooting black (and other extensions) in VS CodeVideo · 2 min
  • Introducing Pytest FixturesVideo · 11 min
  • Writing a Pytest fixture for generating a projectVideo · 12 min
  • Part 1 - conftest.py - Extract helper functions and consts into separate filesVideo · 9 min
  • Part 2 - conftest.py - Extracting Pytest fixtures to dedicated filesVideo · 4 min
  • Writing a test for "make lint"Video · 15 min
  • Writing a test for "make test"Video · 6 min
  • Parallelizing tests with pytest-xdistVideo · 11 min
  • Finishing tests; improving the tests/ dir layout in the template projectVideo · 4 min
  • Challenge: Enable CI/CD for the course project repositoryVideo · 3 min
  • Solution: Enable CI/CD for the course project repositoryVideo · 22 min
  • Challenge: add a "package_import_name" parameter to the Cookiecutter templateVideo · 2 min
  • Solution: add a "package_import_name" parameter to the Cookiecutter templateVideo · 10 min
  • Installing the GitHub CLI (not the same thing as the git CLI!)Video · 6 min
  • Planning the create-or-update-repo formVideo · 4 min
  • Part 1 - Script - create-repo-if-not-existsVideo · 9 min
  • Script Part 2 - open-pr-with-generated-projectVideo · 16 min
  • Script Part 3 - configure-repoVideo · 18 min
  • Bringing it all together in a GitHub Actions workflowVideo · 11 min
  • Fixing auth for the GitHub CLI using a personal token in the workflowVideo · 19 min
  • Demo the final project (again, except this time it's yours!)Video · 8 min
UNIDAD 17 - Bonus · 1 lecciones

UNIDAD 17 - Bonus

  • BonusLectura · 0 min
Certificado oficial

Tu certificado lo emite la SEP, no solo una plataforma

Al demostrar la competencia recibes un certificado emitido por la Secretaría de Educación Pública a través del Gobierno del Estado de México: un documento oficial que puedes presentar con confianza ante cualquier empleador o institución.

Tu certificado con INEC

  • Lo emite la Secretaría de Educación Pública (SEP), a través del Gobierno del Estado de México
  • Documento oficial con folio verificable en línea
  • Lo otorga la Universidad Tecnológica Fidel Velázquez

Otras plataformas en línea

  • Constancia privada emitida por la misma plataforma
  • Solo acredita horas cursadas o asistencia
  • Sin respaldo de una autoridad educativa
Cómo funciona

Tu itinerario, de la inscripción al certificado

  1. 1

    Inscripción con pago único

    Pagas $2,800 MXN una sola vez y entras de inmediato al curso.

  2. 2

    Estudias a tu ritmo

    17 unidades con videos, lecturas y actividades, disponibles 24/7 durante 12 meses.

  3. 3

    Cuestionarios por unidad

    1 cuestionarios para comprobar lo aprendido.

  4. 4

    Certificado

    Emitido por la SEP a través del Gobierno del Estado de México, con folio verificable.

Lo que obtienes

Un certificado oficial de la SEP

Muestra del certificado: Taking Python to Production: A Professional Onboarding Guide

Muestra · verificable por folio y QR

  • Emitido por la Secretaría de Educación Pública (SEP), a través del Gobierno del Estado de México. No es una constancia privada: es un documento oficial, y ese respaldo marca la diferencia frente a otras plataformas en línea.
  • Contenido impartido por Eric Riddoch.
  • Folio y QR verificables para compartirlo con quien te contrate.
Medios que necesitas
Equipo de cómputo Conexión estable a internet
Pago único

Empieza hoy, a tu ritmo

Un solo pago y acceso inmediato al curso completo durante 12 meses.

  • 17 unidades · 178 lecciones · 60 h
  • 12 meses de acceso
  • 1 cuestionarios de evaluación
  • Certificado emitido por la SEP (Gob. del Estado de México) con folio verificable
Pago único
$2,800MXN
Acceso por 12 meses
Inscribirme Hablar con un asesor
Preguntas frecuentes

Sobre tu inscripción

¿Cómo es el pago?

Un solo pago de $2,800 MXN. No hay mensualidades ni cargos recurrentes.

¿Cuánto tiempo tengo acceso?

12 meses desde tu inscripción, 24/7, para avanzar a tu ritmo.

¿Quién imparte el contenido?

El curso es impartido por Eric Riddoch; INEC gestiona tu inscripción, evaluación y certificado.

¿Qué pasa cuando vence mi acceso?

Puedes renovar tu cuenta tú mismo desde la plataforma, sin trámites ni esperas.

Certificado emitido por la SEP a través del Gobierno del Estado de México · Taking Python to Production: A Professional Onboarding Guide

Inscribirme
  INEC es una Marca de SalesPartners Ciudad de México S de RL de CV. Template Design © Learnify LMS. All rights reserved. Terminos y Condiciones Aviso de Privacidad Politica de Devolución
Hide picture