Ưu đãi trong tuần: Nhập mã UD50 giảm 50k cho đơn từ 300k!
Trang chủ
Menu

Taking Python to Production: A Professional Onboarding Guide

Đưa Python vào Môi trường Production: Hướng dẫn Chuyên nghiệp cho Người mới

Đưa Python vào Môi trường Production: Hướng dẫn Chuyên nghiệp cho Người mới

Dành cho nhà khoa học dữ liệu, chuyên viên phân tích và lập trình viên mới: Chuyển đổi từ "người viết code" sang "kỹ sư phần mềm" và học cách đưa code vào vận hành

4.7
(516 đánh giá)
5,769 học viên
Giảng viên
Eric Riddoch
Phụ đề Việt chất lượng cao Phụ đề tiếng Anh Bán chạy Đánh giá cao
50.000đ 349.000đ -86%
✓ Xem giỏ hàng và thanh toán
Bao gồm phụ đề tiếng Việt, tiếng Anh
28.0 giờ video
177 bài giảng
1 bài quiz
Truy cập vĩnh viễn
Học trên mọi thiết bị
Cập nhật: 30/05/2026

Bạn sẽ học được gì

Thiết lập môi trường phát triển Python chuyên nghiệp - Visual Studio Code, pyenv, git, tự động hoàn thành code
Học quy trình làm việc chuyên nghiệp với git trên GitHub và CI/CD với GitHub Actions
Làm cho terminal trực quan hơn với ZSH và các plugin
Quản lý phiên bản và đóng gói phần mềm Python, sau đó công bố cho cộng đồng
Thiết lập kiểm tra chất lượng code tự động (kiểm thử, linting, tài liệu, kiểm tra kiểu dữ liệu, v.v.)

Yêu cầu

Kiến thức cơ bản về Linux/bash: các lệnh cp, mv, ls, rm, v.v.
Máy tính hỗ trợ terminal Linux *gốc*. Nếu bạn dùng MacOS hoặc Linux thì không vấn đề gì. Nếu dùng Windows 10 hoặc 11, chúng ta sẽ học cách cài đặt WSL 2 (Xem các video dành cho Windows ở phần đầu khóa học).
Hiểu biết về cú pháp Python: vòng lặp, hàm, lớp, v.v.
Biết cách tìm kiếm lỗi trên Google để tự giải quyết vấn đề

Đối tượng phù hợp

Dành cho lập trình viên Python từ trình độ trung cấp thấp đến nâng cao, đáp ứng các yêu cầu trên và quan tâm đến kết quả học tập.
Dành cho nhà khoa học dữ liệu, chuyên viên phân tích, lập trình viên mới và lập trình viên tự học muốn thiết lập môi trường phát triển để viết phần mềm "sẵn sàng cho production"

Nội dung khóa học

17 phần • 177 bài giảng
1 Giới thiệu khóa học
2 MỚI - Tham gia Discord
3 QUAN TRỌNG! Ghi chú khóa học và Trang web khóa học
4 Khóa học cấp tốc về Linux và terminal
1 Cài đặt VS Code
2 Đảm bảo bạn có lệnh `code`
3 Chỉ dành cho người dùng Mac: Cài đặt Homebrew, Xcode và iTerm2
4 Chỉ dành cho người dùng Windows: Cài đặt Windows Subsystem for Linux (WSL2)
5 Chỉ dành cho người dùng Windows: Tích hợp VS Code với WSL2
6 Tài nguyên: Cài đặt git
7 Cài đặt công cụ dòng lệnh git CLI
1 Giới thiệu
2 Cài đặt OhMyZSH
3 Điều hướng bằng ZSH và cài đặt plugin ZSH
4 Tệp ~/.zshrc và các chủ đề ZSH
5 Tắt/bật plugin ZSH; Tiện ích mở rộng All-in-one Markdown; plugin web-search
6 Tự động hoàn thành với zsh-autosuggestions
7 Tô sáng cú pháp với zsh-syntax-highlighting
8 Tóm tắt: Thiết lập ZSH nhanh
1 Giới thiệu về Quản lý Phiên bản Ngữ nghĩa (semver)
2 Quản lý Phiên bản Ngữ nghĩa (tiếp theo)
3 Tại sao lập trình viên cần chuyển đổi giữa nhiều phiên bản Python
4 Tài nguyên để cài đặt pyenv
5 Cài đặt và tổng quan về pyenv để quản lý nhiều phiên bản Python
6 Lịch sử thay đổi của Python; Tổng quan về cách Python phát triển
1 Tài liệu tham khảo phím tắt VS Code
2 VS Code: bố cục và các phím tắt chính
3 Python/Pylance: cải thiện hỗ trợ tái cấu trúc và tô sáng cú pháp
4 Gỡ lỗi từng bước trong VS Code
5 Xem trước về môi trường ảo
6 Môi trường ảo Python và biến PATH
1 Giới thiệu git bằng cách so sánh với Google Docs
2 Tiện ích mở rộng Git lens
3 Tài liệu tham khảo lệnh git
4 git CLI và các commit
5 Tạo một commit
6 "Du hành thời gian" và các phương pháp hay nhất khi tạo commit
7 git stash
8 (Phần 1) git branching - hiểu trực quan
9 (Phần 2) git branching - thực hành trong VS Code
10 Hợp nhất các nhánh git
11 Giải quyết xung đột khi hợp nhất
12 [Bổ sung] Trò chơi về git branching
13 git tags
14 Tóm tắt: Quy trình làm việc với git cục bộ
1 Xem trước phần còn lại của khóa học
2 GitHub là gì?
3 Tạo một kho lưu trữ trên GitHub
4 Sao chép và git remotes
5 Pull Requests và Đánh giá Code
6 Thực hiện Đánh giá Code với Pull Request
7 Tóm tắt: Quy trình làm việc với git từ xa
1 Hướng dẫn phần học: tài nguyên, liên kết, bài tập, ghi chú tóm tắt, v.v.
2 Code sạch và lý do nó quan trọng
3 Hướng dẫn phong cách Python: Google và PEP 8
4 Tái cấu trúc để dễ đọc hơn
5 Giới thiệu về Tích hợp Liên tục và phương pháp hay nhất cho PR
6 "Địa ngục PR" và thảo luận thêm về Tích hợp Liên tục
7 Tự động định dạng với Black, hệ thống cài đặt VS Code và "Cuộc chiến Thánh thần"
8 Pylint Phần 1 - Giới thiệu Linters
9 Pylint Phần 2 - Tích hợp với VS Code
10 Pylint Phần 3 - Cấu hình Pylint bằng tệp cấu hình và đối số CLI
11 Flake8 Phần 1 - Cách dùng và bối cảnh
12 Flake8 Phần 2 - Plugin Flake8 với ví dụ Darglint
13 isort: sắp xếp câu lệnh import
14 "Chỉ số code" như "độ phức tạp tuần hoàn" với Radon, Xenon và McCabe
15 Kiểu dữ liệu Phần 1 - gợi ý kiểu, tự động hoàn thành, kiểm tra kiểu tĩnh so với động
16 Kiểu dữ liệu Phần 2 - Mypy và kiểu cơ bản
17 Kiểu dữ liệu Phần 3 - Kiểu đơn giản và phức tạp
18 Kiểu dữ liệu Phần 4 - Union và Optional
19 Kiểu dữ liệu Phần 5 - TypedDict, dataclasses, NamedTuple, kiểu tự tham chiếu
20 Kiểu dữ liệu Phần 6 - Kiểu tổng quát (Generic)
21 Kiểu dữ liệu Phần 7 - Type Stubs và thêm kiểu dần vào codebase hiện có
22 Darker: lint tăng dần cho dự án cũ
23 Ruff: linter Python cuối cùng?
1 Quy trình Tích hợp Liên tục với các công cụ chất lượng code
2 Cách tiếp cận CI 1 - Viết script gọi từng công cụ
3 Git pre-commit hooks
4 Cách tiếp cận CI 2 - Khung pre-commit
5 Tổng kết về pre-commit hook
6 Tham quan tệp cấu hình pre-commit nâng cao
1 "Workflow" GitHub Actions đầu tiên của chúng ta
2 GitHub Actions: chạy một workflow
3 Sửa bản build và sử dụng pre-commit
4 Quyền nhánh, kiểm tra hợp nhất và pull requests
5 Hiểu về Giá cả của GitHub Actions
6 Tối ưu chi phí bằng cách sử dụng GitHub Actions Triggers
1 Giới thiệu phần - Đóng gói Python
2 PYTHONPATH và import trong Python
3 Thao tác với PYTHONPATH (tiếp theo)
4 Tệp setup.py đầu tiên của chúng ta
5 Tài liệu setuptools; find_packages
6 pip install --editable
7 install_requires và khả năng tái lập
8 Nhược điểm của định dạng sdist
9 Wheels
10 Câu chuyện về pyproject.toml; Giải thích về build dependencies
11 Thoát khỏi "địa ngục" tệp cấu hình; setup.cfg
12 Loại bỏ setup.cfg nhờ PEP 621
13 Loại bỏ setup.py; PEP 517; Build backends
14 Tệp dữ liệu - phần 1; ví dụ về việc bao gồm tệp dữ liệu trong gói
15 Tệp dữ liệu - Phần 2; MANIFEST.in và các lựa chọn thay thế cụ thể cho build-backend
16 Quản lý phụ thuộc; Đồ thị phụ thuộc và khóa phụ thuộc
17 Đồ thị phụ thuộc
18 Cây ràng buộc và "địa ngục phụ thuộc"
19 Cây ràng buộc không ổn định giữa các phiên bản gói
20 Phụ thuộc tùy chọn AKA "extras"
21 Tìm kiếm phụ thuộc với Snyk Python package index
1 Giới thiệu phần học
2 DevOps và Waterfall so với Agile
3 Xuất bản lên PyPI; PyPI Test so với Prod
4 Tạo token API cho PyPI
5 Chạy lệnh `twine upload`
6 Trình chạy tác vụ - phần 1 - CMake và Makefile
7 Trình chạy tác vụ - phần 2 - Các lựa chọn thay thế cho CMake (Just, PyInvoke, Bash)
8 Trình chạy tác vụ - phần 3 - Bash như một trình chạy tác vụ
9 Xuất bản lên Test PyPI
10 Xuất bản lên Prod PyPI; Tại sao nên chuyển việc triển khai sang GitHub Actions
1 Giới thiệu phần học
2 "Môi trường phân phối" là gì và tại sao cần
3 Workflow cho gói Python
4 Thiết lập trigger listeners cho workflow GitHub Actions
5 Đẩy lên Test PyPI từ CI; Quản lý Contexts và secrets phần 1
6 Quản lý Contexts và secrets phần 2
7 Một số cải tiến nhỏ cho pipeline trước khi hợp nhất
8 Bật linting trong pipeline
9 Viết pipeline sau khi hợp nhất
10 Thêm git tags và tránh phát hành trùng lặp
1 Khóa requirements
2 Bộ nhớ đệm phụ thuộc
3 Song song hóa
4 Truyền tệp (artifacts) giữa các job
1 Giới thiệu về kiểm thử phần mềm
2 Giới thiệu về pytest
3 Thiết lập pytest (cơ bản)
4 Vũ trụ trường hợp kiểm thử
5 Trường hợp kiểm thử được tham số hóa và vũ trụ trường hợp kiểm thử
6 Đánh dấu Pytest để bỏ qua các bài kiểm thử chậm; truyền đối số cho run.sh
7 Độ bao phủ kiểm thử phần 1 - độ bao phủ trên thư mục src/
8 Độ bao phủ kiểm thử phần 2
9 Kiểm thử trong GitHub Actions, Kiểm thử tệp Wheel
10 Tích hợp Pytest với VS Code
1 Tổng quan và demo dự án
2 Kiến trúc Dự án Cuối khóa
3 Bên lề: Chuỗi được tạo mẫu bằng Jinja2
4 Giới thiệu Cookiecutter
5 Bắt đầu dự án cuối khóa - tạo một mẫu Cookiecutter đơn giản
6 Có đáp án! Kho tham chiếu trên GitHub
7 Bắt đầu dự án cuối khóa: fork repo khởi đầu
8 Tạo mẫu cho dự án khởi đầu với Cookiecutter
9 Tham quan các tệp khởi đầu của dự án cuối khóa
10 Vận hành một dự án đã tạo (cài đặt phụ thuộc, chạy kiểm thử, lint, v.v.)
11 Sửa một vấn đề với pre-commit trong mẫu
12 Chúng ta nên/có thể kiểm thử điều gì về mẫu của mình?
13 Viết bài kiểm thử đầu tiên cho mẫu
14 Khắc phục sự cố với black (và các tiện ích mở rộng khác) trong VS Code
15 Giới thiệu Pytest Fixtures
16 Viết Pytest fixture để tạo một dự án
17 Phần 1 - conftest.py - Tách hàm trợ giúp và hằng số vào các tệp riêng
18 Phần 2 - conftest.py - Tách Pytest fixtures vào các tệp chuyên dụng
19 Viết bài kiểm thử cho "make lint"
20 Viết bài kiểm thử cho "make test"
21 Song song hóa kiểm thử với pytest-xdist
22 Hoàn thiện kiểm thử; cải thiện bố cục thư mục tests/ trong dự án mẫu
23 Thử thách: Bật CI/CD cho kho dự án khóa học
24 Giải pháp: Bật CI/CD cho kho dự án khóa học
25 Thử thách: thêm tham số "package_import_name" vào mẫu Cookiecutter
26 Giải pháp: thêm tham số "package_import_name" vào m
27 Installing the GitHub CLI (not the same thing as the git CLI!)
28 Planning the create-or-update-repo form
29 Part 1 - Script - create-repo-if-not-exists
30 Phần 2 của Script - Mở Pull Request với dự án đã tạo
31 Phần 3 của Script - Cấu hình Repository
32 Kết hợp tất cả vào một quy trình GitHub Actions
33 Sửa lỗi xác thực cho GitHub CLI bằng Personal Token trong workflow
34 Demo dự án cuối cùng (lần nữa, nhưng lần này là của bạn!)
1 Phần thưởng thêm

Giới thiệu khóa học

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

Khóa học liên quan

Khám phá thêm các khoá học cùng chủ đề

Hiển thị tất cả khoá học Git
Hiển thị tất cả khoá học Linux Command Line
Hiển thị tất cả khoá học Python
Hiển thị tất cả khoá học Software Development
Zalo
Tôi có thể tư vấn khoá học cho bạn 😊