Sorry, this page is no longer available
Sorry, this page is no longer available
Sorry, this page is no longer available
We may earn an affiliate commission when you visit our partners.
Course image
Eric Riddoch

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. ).

Read more

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

Enroll now

What's inside

Learning objectives

  • 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.)

Syllabus

Preface to the course.

Expectations for the course.

IMPORTANT! Course Notes and Course Website
Linux and terminal crash course
Read more

You can open VS Code using the `code` command in the terminal. It will be more difficult to follow along if you do not have the `code` command working on your machine. This assignment will help you install the `code` command.

If you are a Mac user, please complete this assignment to (1) Install Homebrew, which we will be using frequently to install commands needed for the course. (2) Install a iTerm2 or another Terminal application alternative.

Resources for the next video.

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Course walks you through industry-standard tools required for software development with Python
Examines best practices for developing production-ready code
In addition to software development with Python, explores foundational tools and engineering practices necessary for the role of an MLOps engineer
Taught by professionals in the field with experience at major companies like Eric Riddoch
Suitable for those transitioning from 'coder' to 'software engineer', especially if you have experience in data science, analysis, or as a junior engineer
Requires a solid grasp of Python fundamentals

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Python production skills for engineers

Learners say this course is a game-changer for transitioning from coder to software engineer, effectively bridging the gap to shipping production-ready Python applications. Students particularly value the deep dives into professional development environments, robust Git workflows, and essential CI/CD practices with GitHub Actions. The emphasis on clean code, linting, and type checking is frequently praised as immediately applicable. While the initial setup sections might feel slow for those with existing environments, the course is highly recommended for junior engineers and data professionals aiming for team collaboration and efficiency. Many found the instructor's explanations clear, highlighting its practical, non-coding aspects often overlooked.
Solid Python fundamentals are crucial for course comprehension.
"The prerequisites on Python fundamentals are truly essential; if you're rusty, you might struggle with the context."
"You should have a solid grasp of Python fundamentals (loops, functions, classes, etc.) before taking this course."
The instructor provides clear and easy-to-follow explanations.
"The instructor's explanations are clear and concise, making complex topics digestible."
"The instructor's clear explanations and logical flow made this course incredibly easy to follow."
Empowers users to quickly create high-quality, production-ready projects.
"The course delivers on its promise of templatizing the entire development process. I can now spin up new, high-quality projects in seconds."
"This course is a game-changer for developer efficiency and professional setup."
Perfectly suited for junior engineers and data professionals.
"It’s perfect for junior engineers looking to make a significant impact in a team."
"As someone transitioning from data analysis to a more engineering-focused role, this course was a godsend."
"For very experienced software engineers, parts might be too introductory, but for the target audience... it's perfect."
Strong emphasis on clean code, testing, linting, and type checking.
"I particularly appreciated the emphasis on clean code practices like linting and type checking."
"Robust code quality checks has changed how I approach my projects."
"The coverage of testing, linting, and type checking with Mypy was comprehensive and immediately applicable."
Teaches essential tools and practices for professional Python development.
"The deep dive into professional development environments, git workflows, and especially CI/CD with GitHub Actions, was invaluable."
"The sections on VS Code integration, pyenv, and pre-commit hooks were particularly useful for streamlining my workflow."
"I gained a much deeper understanding of git best practices, particularly branching strategies, and how they integrate seamlessly with GitHub."
Successfully transitions coders to professional engineers.
"This course was exactly what I needed to bridge the gap between writing scripts and building production-ready Python applications."
"It truly delivers on its promise of being a 'professional onboarding guide'."
"This course fills a crucial gap for developers aiming for professionalism."
Initial environment setup sections might feel slow for some learners.
"Some initial setup steps felt a bit slow, but essential for beginners."
"I found the initial terminal and VS Code setup felt a bit drawn out, especially since I already had a working setup."
"I felt some of the initial setup instructions could be condensed or offered as optional content."

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 Taking Python to Production: A Professional Onboarding Guide with these activities:
Review Your Git Book
Understand the importance of version control and its impact on collaborative software development.
View Melania on Amazon
Show steps
  • Review the basics of Git.
  • Practice using Git commands.
Practice Using Bash Commands
Solidify your understanding of the Bash command line and its importance in software development.
Browse courses on Bash
Show steps
  • Set up your terminal environment.
  • Learn basic Bash commands.
  • Practice using Bash commands to navigate the file system, create and edit files, and run programs.
Volunteer for a Local Tech Nonprofit
Apply your skills to make a positive impact, enhance your resume, and connect with others in the tech community.
Browse courses on Volunteering
Show steps
  • Find a local tech nonprofit to volunteer for.
  • Contact the organization and express your interest.
  • Commit to a regular volunteering schedule.
Five other activities
Expand to see all activities and additional details
Show all eight activities
Attend a Software Development Meetup
Expand your network, gain insights from industry experts, and stay up-to-date with the latest trends in software development.
Show steps
  • Find a software development meetup in your area.
  • Attend the meetup.
  • Introduce yourself to others and participate in discussions.
Contribute to an Open Source Project
Gain hands-on experience with open-source development and collaboration, enhancing your understanding of real-world software development practices.
Browse courses on Git
Show steps
  • Find an open source project to contribute to.
  • Create a pull request.
  • Review the code and make changes as needed.
Create a Software Architecture Diagram
Develop a comprehensive understanding of software architecture principles and gain practical experience in documenting complex systems.
Browse courses on Software Architecture
Show steps
  • Choose a software architecture style.
  • Design the software architecture.
  • Create a software architecture diagram.
Setup Continuous Integration (CI) Environment
Develop practical skills in setting up a CI/CD pipeline to automate testing and deployment of software.
Browse courses on Continuous Integration
Show steps
  • Choose a CI/CD tool (e.g., GitHub Actions).
  • Create a CI/CD pipeline.
  • Configure the pipeline to run tests and deploy code.
Build a Portfolio Website
Showcase your skills and highlight your projects by creating a portfolio website, providing a tangible representation of your abilities.
Browse courses on HTML
Show steps
  • Plan your website's structure and design.
  • Develop the website using HTML, CSS, and JavaScript.
  • Deploy your website to a hosting provider.

Career center

Learners who complete Taking Python to Production: A Professional Onboarding Guide will develop knowledge and skills that may be useful to these careers:
Software Engineer
As a Software Engineer, you will be responsible for designing, developing, and maintaining software applications. This course will help you build a strong foundation in the tools and techniques used by professional software engineers, including Python, git, and GitHub. You will also learn about best practices for writing clean, maintainable code, and how to work effectively in a team environment.
Data Engineer
Data Engineers are responsible for building and maintaining the infrastructure that stores and processes data. This course will help you build a strong foundation in the tools and techniques used by Data Engineers, including Python, git, and GitHub. You will also learn best practices for managing data, and how to work effectively with other members of the data team.
DevOps Engineer
DevOps Engineers are responsible for bridging the gap between development and operations teams. This course will help you build a strong foundation in the tools and techniques used by DevOps Engineers, including Python, git, and GitHub. You will also learn about best practices for automating the software development and deployment process.
Technical Writer
Technical Writers are responsible for creating documentation for software and hardware products. This course will help you build a strong foundation in the tools and techniques used by Technical Writers, including Python, git, and GitHub. You will also learn about the principles of technical writing, and how to communicate technical information clearly and effectively.
Software Quality Engineer
Software Quality Engineers are responsible for ensuring that software meets quality standards. This course will help you build a strong foundation in the tools and techniques used by Software Quality Engineers, including Python, git, and GitHub. You will also learn about best practices for testing software, and how to identify and fix defects.
Systems Engineer
Systems Engineers are responsible for designing, developing, and maintaining complex systems. This course will help you build a strong foundation in the tools and techniques used by Systems Engineers, including Python, git, and GitHub. You will also learn about the principles of systems engineering, and how to design and develop systems that are reliable, maintainable, and scalable.
Cloud Engineer
Cloud Engineers are responsible for designing, developing, and maintaining cloud-based applications. This course will help you build a strong foundation in the tools and techniques used by Cloud Engineers, including Python, git, and GitHub. You will also learn about the principles of cloud computing, and how to design and develop applications that are scalable, reliable, and secure.
Data Scientist
Data Scientists are responsible for extracting insights from data. This course will help you build a strong foundation in the tools and techniques used by Data Scientists, including Python, git, and GitHub. You will also learn about the principles of data science, and how to use data to solve business problems.
Machine Learning Engineer
Machine Learning Engineers are responsible for developing and deploying machine learning models. This course will help you build a strong foundation in the tools and techniques used by Machine Learning Engineers, including Python, git, and GitHub. You will also learn about the principles of machine learning, and how to build models that are accurate, reliable, and efficient.
Quantitative Analyst
Quantitative Analysts are responsible for developing and using mathematical models to analyze financial data. This course will help you build a strong foundation in the tools and techniques used by Quantitative Analysts, including Python, git, and GitHub. You will also learn about the principles of quantitative analysis, and how to use models to make investment decisions.
Software Architect
Software Architects are responsible for designing and developing the architecture of software systems. This course will help you build a strong foundation in the tools and techniques used by Software Architects, including Python, git, and GitHub. You will also learn the principles of software architecture, and how to design systems that are scalable, reliable, and maintainable.
Product Manager
Product Managers are responsible for defining and managing the vision for software products. This course will give you a foundation in the tools and techniques used by Product Managers, including Python, git, and GitHub. You will also learn about the principles of product management, and how to develop and launch successful software products.
Project Manager
Project Managers are responsible for planning, executing, and closing software projects. This course will give you a foundation in the tools and techniques used by Project Managers, including Python, git, and GitHub. You will also learn the principles of project management, and how to manage software projects successfully.
Business Analyst
Business Analysts are responsible for understanding the business needs of an organization and translating those needs into technical requirements. This course will give you a foundation in the tools and techniques used by Business Analysts, including Python, git, and GitHub. You will also learn about the principles of business analysis, and how to gather and analyze requirements.
IT Consultant
IT Consultants are responsible for providing advice and guidance to organizations on how to use technology to achieve their business goals. This course will give you a foundation in the tools and techniques used by IT Consultants, including Python, git, and GitHub. You will also learn about the principles of IT consulting, and how to develop and deliver effective consulting services.

Reading list

We've selected 14 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 Taking Python to Production: A Professional Onboarding Guide.
Comprehensive guide to software construction. It covers all aspects of software development, from requirements gathering to testing and deployment. It great resource for software developers of all levels who want to learn more about the software development process.
Deep dive into the Python programming language. It covers advanced topics like metaprogramming, decorators, and generators. It great resource for experienced Python programmers who want to learn more about the language.
Comprehensive guide to software testing. It covers all aspects of software testing, from planning and design to execution and reporting. It great resource for software testers of all levels who want to learn more about the software testing process.
Comprehensive guide to the Python standard library. It covers all of the standard library modules and provides examples of how to use them. It great resource for Python programmers of all levels who want to learn more about the standard library.
Comprehensive introduction to Python programming. It covers the basics of the language as well as more advanced topics like data structures and algorithms. It great resource for beginners who want to learn Python for computer science or software development.
Guide to writing clean code. It covers topics like code organization, naming conventions, and testing. It great resource for programmers of all levels who want to improve their coding skills.
Guide to writing maintainable and reusable Python code. It covers topics like code organization, testing, and debugging. It great resource for Python programmers of all levels who want to improve their coding skills.
Hands-on introduction to Python programming. It covers the basics of the language as well as more advanced topics like data analysis and machine learning. It great resource for beginners who want to learn Python for data science or machine learning.
Provides a gentle introduction to Python programming, covering the basics of the language as well as more advanced topics like data structures and object-oriented programming. It great resource for beginners who want to learn Python for automation tasks.
Collection of recipes for solving common Python programming problems. It great resource for Python programmers of all levels who want to learn new tricks and techniques.
Practical guide to using Git for version control. It covers all aspects of Git, from the basics to advanced topics like branching and merging. It great resource for Git users of all levels who want to learn more about the tool.
Quick reference guide to Git. It covers the basics of Git as well as more advanced topics like branching and merging. It great resource for Git users of all levels who want to learn more about the tool.

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