Lập trình Python dành cho Kỹ sư Hệ thống & Mạng

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

Khóa học kéo dài 10 buổi (40 giờ), được thiết kế dành riêng cho kỹ sư hệ thống và kỹ sư mạng đã quen với Bash hoặc PowerShell scripting nhưng chưa có kinh nghiệm lập trình Python. Thay vì dạy Python theo kiểu lý thuyết hàn lâm, khóa học tiếp cận từ góc độ của người vận hành hạ tầng: mỗi khái niệm Python được giải thích song song với tương đương trong Bash/PowerShell, và mỗi bài tập đều là một tình huống thực tế mà kỹ sư gặp hàng ngày.

Đến cuối khóa, học viên có thể tự viết các script Python để thay thế và vượt trội hơn những gì từng làm bằng Bash/PowerShell – từ xử lý file log, quản lý hệ thống, đến tự động hóa tác vụ mạng cơ bản.

II. Thời lượng: 40 giờ (5 ngày)
III. Mục tiêu khóa học:

Đến cuối khóa học, bạn sẽ có thể đáp ứng các mục tiêu sau:

  • Hiểu vững cú pháp Python và tư duy lập trình – không chỉ copy script từ Internet
  • Đọc, hiểu và chỉnh sửa code Python của người khác một cách tự tin
  • Viết script Python để xử lý file, parse log, tự động hóa tác vụ lặp đi lặp lại
  • Quản lý hệ thống Linux/Windows bằng Python: kiểm tra tài nguyên, quản lý process, thao tác file hàng loạt
  • Kết nối và gửi lệnh tới thiết bị mạng qua SSH bằng Python
  • Làm việc với dữ liệu cấu trúc: đọc/ghi CSV, JSON, YAML – các format phổ biến trong môi trường DevOps và NetOps
  • Gọi REST API và xử lý kết quả – tích hợp Python với các công cụ quản lý hạ tầng
  • Lên lịch tự động (scheduler) và chạy script như một service trên Linux
  • Nắm nền tảng lập trình hướng đối tượng (OOP) đủ để đọc hiểu thư viện và tự học tiếp
IV. Đối tượng mục tiêu:
  • Kỹ sư hệ thống (SysAdmin, System Engineer) muốn tự động hóa công việc vận hành
  • Kỹ sư mạng (Network Engineer, NOC) muốn viết script thay thế thao tác CLI thủ công
  • Kỹ sư vận hành (Operations, IT Support) muốn nâng cấp kỹ năng scripting lên Python
  • Sinh viên CNTT năm 3–4 định hướng Infrastructure, DevOps hoặc Cloud
V. Điều kiện tiên quyết

Khóa học này có các điều kiện cần thiết sau đây:

  • Đã sử dụng Linux CLI cơ bản: cd, ls, cat, grep, ssh, ping (không cần thành thạo)
  • Đã từng viết ít nhất một script Bash hoặc PowerShell đơn giản (dù chỉ vài dòng)
  • Chưa cần biết Python – khóa học bắt đầu từ con số 0 với Python
VI. Nội dung khóa học:

Phần 1: Làm quen với Python – Từ Bash sang Python (Buổi 1–2 / 8 giờ)

Buổi 1 – Python là gì và tại sao dùng thay Bash?

  • Bash vs Python vs PowerShell: khi nào dùng cái nào – nhìn từ góc độ kỹ sư vận hành
  • Cài đặt Python 3, thiết lập môi trường làm việc: VS Code, terminal, Jupyter Notebook
  • Chạy script Python đầu tiên: in thông tin hệ thống ra màn hình
  • Biến và kiểu dữ liệu: số nguyên, số thực, chuỗi, True/False – so sánh với Bash
  • Nhập liệu từ bàn phím (input) và in kết quả (print) – tương đương read và echo trong Bash
  • Comment code: tại sao quan trọng và cách viết comment có ý nghĩa
  • Xử lý lỗi đầu tiên: đọc thông báo lỗi Python và cách tìm nguyên nhân
  • Bài tập thực hành: script hỏi tên máy chủ và in ra thông điệp chào

Buổi 2 – Điều khiển luồng và Hàm

  • So sánh và điều kiện: if / elif / else – so sánh với if-then-fi trong Bash
  • Toán tử so sánh và logic: ==, !=, >, <, and, or, not
  • Vòng lặp for: lặp qua danh sách – tương đương for item in list trong Bash
  • Vòng lặp while: lặp khi điều kiện còn đúng – giống while trong Bash
  • break và continue: thoát vòng lặp sớm hoặc bỏ qua lần lặp hiện tại
  • Hàm (function): đóng gói code tái sử dụng – tương đương function trong Bash
  • Tham số hàm, giá trị trả về (return), và tham số mặc định
  • Bài tập thực hành: script kiểm tra một danh sách IP xem IP nào hợp lệ

Phần 2: Cấu trúc dữ liệu – Làm chủ dữ liệu trong Python (Buổi 3–4 / 8 giờ)

Buổi 3 – List, Tuple và Dictionary

  • List (danh sách): tạo, thêm, xóa, truy cập phần tử – mạnh hơn array trong Bash
  • Duyệt list bằng for loop và list comprehension: cú pháp ngắn gọn rất hay dùng
  • Tuple: danh sách không thay đổi – khi nào nên dùng
  • Dictionary (từ điển): ánh xạ key → value, cấu trúc dữ liệu quan trọng nhất trong Python
  • Các thao tác Dictionary: thêm, sửa, xóa, kiểm tra key tồn tại
  • Lồng Dictionary: biểu diễn cấu trúc phức tạp như thông tin thiết bị mạng
  • Bài tập thực hành: lưu thông tin 5 server (tên, IP, OS, RAM) vào Dictionary và in báo cáo

Buổi 4 – String và Xử lý văn bản

  • String là gì: chuỗi ký tự, tại sao cần hiểu kỹ khi làm việc với log và config
  • Các phương thức String thường dùng: .strip(), .split(), .join(), .replace(), .upper(), .lower()
  • Kiểm tra nội dung chuỗi: .startswith(), .endswith(), .find(), in operator
  • Định dạng chuỗi bằng f-string: cách hiện đại và dễ đọc nhất
  • Regular Expression (regex) cơ bản: tìm pattern trong văn bản – tương đương grep
  • Áp dụng regex: tìm địa chỉ IP, địa chỉ MAC, tên interface trong dòng log
  • Bài tập thực hành: đọc đoạn log giả lập và dùng regex trích xuất IP nguồn, cổng đích

Phần 3: Làm việc với File & Dữ liệu có cấu trúc (Buổi 5–6 / 8 giờ)

Buổi 5 – Đọc và ghi File

  • Mở và đọc file text: open(), read(), readline(), readlines() – tương đương cat trong Bash
  • Ghi file: ghi đè (mode 'w') và ghi thêm vào cuối (mode 'a')
  • Dùng with statement: cách viết đúng để file luôn được đóng – tránh lỗi tài nguyên
  • Xử lý từng dòng của file log lớn mà không bị tràn bộ nhớ
  • Làm việc với đường dẫn file: os.path và pathlib – tìm file, kiểm tra tồn tại, tạo thư mục
  • Sao chép, di chuyển, xóa file bằng shutil – tương đương cp, mv, rm trong Bash
  • Bài tập thực hành: đọc file access.log của Nginx/Apache, đếm số request theo từng IP

Buổi 6 – CSV, JSON và YAML

  • CSV: đọc và ghi file bảng tính – dùng module csv, thao tác hàng và cột
  • JSON: định dạng phổ biến nhất trong API và config hiện đại – đọc, ghi, chuyển đổi
  • json.loads() và json.dumps(): chuyển đổi giữa chuỗi JSON và Python dictionary
  • YAML: định dạng config thân thiện – dùng trong Ansible, Docker Compose, Kubernetes
  • Đọc và ghi YAML bằng thư viện PyYAML: inventory thiết bị, file cấu hình
  • So sánh JSON vs YAML vs CSV: chọn định dạng phù hợp cho từng tình huống
  • Bài tập thực hành: đọc file YAML chứa danh sách thiết bị, lọc theo điều kiện và xuất báo cáo JSON

Phần 4: Python cho Quản trị Hệ thống Linux (Buổi 7 / 4 giờ)

Buổi 7 – Tự động hóa tác vụ System

  • Chạy lệnh hệ thống từ Python: subprocess.run() – tương đương dấu backtick hoặc $() trong Bash
  • Thu thập kết quả lệnh vào biến Python để xử lý tiếp
  • Kiểm tra tài nguyên hệ thống với thư viện psutil: CPU, RAM, disk, network interface
  • Lấy danh sách process đang chạy, tìm process chiếm CPU/RAM cao
  • Gửi cảnh báo qua email khi CPU vượt 90% hoặc disk sắp đầy
  • Lên lịch chạy script định kỳ: dùng schedule hoặc tích hợp với crontab
  • Ghi log hoạt động script bằng module logging thay vì print() – chuẩn production
  • Bài tập thực hành: script giám sát hệ thống – kiểm tra CPU/RAM/disk mỗi phút, ghi log, gửi email cảnh báo nếu vượt ngưỡng

Phần 5: Python cho Tự động hóa Mạng cơ bản (Buổi 8 / 4 giờ)

Buổi 8 – Kết nối và Thao tác với Thiết bị Mạng

  • Kiểm tra kết nối mạng từ Python: ping nhiều host cùng lúc thay thế vòng lặp Bash
  • Kết nối SSH đến thiết bị mạng bằng Paramiko: router, switch, Linux server
  • Gửi lệnh show và nhận kết quả về Python để xử lý
  • Netmiko – thư viện SSH thân thiện hơn cho thiết bị Cisco, Huawei, Juniper
  • Dùng Netmiko đọc thông tin từ nhiều thiết bị cùng lúc và tổng hợp báo cáo
  • Lưu kết quả ra file CSV hoặc JSON để theo dõi theo thời gian
  • Xử lý lỗi kết nối: timeout, authentication failed – script không được crash
  • Bài tập thực hành: script kết nối đến 3–5 thiết bị lab, lấy show version và show ip int brief, lưu vào file báo cáo

Phần 6: Xử lý lỗi, Module và Lập trình hướng đối tượng (Buổi 9 / 4 giờ)

Buổi 9 – Viết code chắc chắn và tái sử dụng được

  • Xử lý lỗi đúng cách: try / except / finally – script không crash khi gặp sự cố
  • Các loại exception phổ biến: FileNotFoundError, ConnectionError, TimeoutError, KeyError
  • Tạo module Python của riêng mình: tách code ra file riêng và import lại
  • Các thư viện chuẩn hay dùng: os, sys, pathlib, datetime, time, re, json, csv
  • Lập trình hướng đối tượng (OOP) – mức độ đọc hiểu: class là gì, object là gì, tại sao cần
  • Đọc hiểu code dùng class: ví dụ thư viện Netmiko và psutil dùng OOP như thế nào
  • Tổ chức project script: cấu trúc thư mục, requirements.txt, README
  • Bài tập thực hành: tổ chức lại script từ buổi 7 và 8 thành module có thể import và tái sử dụng

Phần 7: Capstone Project – Dự án Cuối khoá (Buổi 10 / 4 giờ)

Buổi 10 – Thực hành Tổng hợp & Demo

  • Ôn tập nhanh: những điểm quan trọng nhất của 9 buổi học qua ví dụ thực tế
  • Giới thiệu thư viện mở rộng để tự học sau: requests (REST API), Flask (web nhỏ), pandas (dữ liệu)
  • Demo và review Capstone Project: mỗi học viên/nhóm trình bày script tự làm
  • Nhận xét, góp ý code, hướng dẫn cải thiện và lộ trình học tiếp
  • Học trực tuyến

  • Học tại Hồ Chí Minh

  • Học tại Hà Nội


Các khóa học khác