📚 Tài liệu chính thức và nguồn tham khảo

← Quay lại Bắt đầu

Nguyên tắc chọn nguồn

Ưu tiên tuyệt đối cho tài liệu chính thức (python.org, peps.python.org). Blog, video, khóa học online có thể sai, lỗi thời, hoặc dùng cú pháp Python 2. Khi có mâu thuẫn, tài liệu chính thức luôn đúng.

Khi tìm trên Google, luôn kiểm tra ngày xuất bản. Bài viết trước năm 2020 rất dễ là Python 2.


1. Tài liệu chính thức của Python

1.1. Bốn tài liệu cốt lõi

Tài liệuDùng khi nàoLink
The Python TutorialHọc kiến thức mới theo trình tựhttps://docs.python.org/3/tutorial/
The Python Standard LibraryTra cứu module và hàm có sẵnhttps://docs.python.org/3/library/
The Python Language ReferenceTra cứu đặc tả cú pháp chính xáchttps://docs.python.org/3/reference/
Python HOWTOsHướng dẫn chuyên đề (Unicode, sorting, logging…)https://docs.python.org/3/howto/

1.2. Các trang tra cứu hay dùng nhất

Nội dungLink
Built-in Functions — print, len, int, sorted…https://docs.python.org/3/library/functions.html
Built-in Types — str, list, dict, set…https://docs.python.org/3/library/stdtypes.html
Built-in Exceptions — mọi loại lỗihttps://docs.python.org/3/library/exceptions.html
Glossary — từ điển thuật ngữ chính thứchttps://docs.python.org/3/glossary.html
Index — mục lục tra cứu A-Zhttps://docs.python.org/3/genindex.html
FAQ — câu hỏi thường gặphttps://docs.python.org/3/faq/

1.3. Tài liệu theo module (khớp lộ trình)

1.4. Xem tài liệu theo phiên bản


2. PEP — Python Enhancement Proposals

PEP là các tài liệu chính thức quy định mọi thay đổi và quy ước của Python.

Trang chủ: https://peps.python.org/

PEP quan trọng nhất cho bạn

PEPTênNội dungLink
PEP 8Style Guide for Python Code⭐ Đọc bắt buộc — quy chuẩn viết codehttps://peps.python.org/pep-0008/
PEP 20The Zen of PythonTriết lý thiết kế Pythonhttps://peps.python.org/pep-0020/
PEP 257Docstring ConventionsQuy chuẩn viết docstringhttps://peps.python.org/pep-0257/
PEP 249Database API 2.0Chuẩn kết nối databasehttps://peps.python.org/pep-0249/
PEP 484Type HintsGợi ý kiểu dữ liệuhttps://peps.python.org/pep-0484/
PEP 636Structural Pattern Matching TutorialHướng dẫn match/casehttps://peps.python.org/pep-0636/
PEP 557Data Classes@dataclasshttps://peps.python.org/pep-0557/

Đọc PEP 8 khi nào?

Sau khi hoàn thành 05 - Chuỗi ký tự (String) (khoảng tuần 8). Lúc đó bạn đã đủ nền để hiểu, và chưa hình thành thói quen xấu.


3. Tải và cài đặt


4. Thư viện và đóng gói

Tài liệu các thư viện bạn sẽ dùng sau này

Thư việnCông dụngLink
pandasXử lý dữ liệu bảnghttps://pandas.pydata.org/docs/
openpyxlĐọc/ghi Excelhttps://openpyxl.readthedocs.io/
requestsGọi API HTTPhttps://requests.readthedocs.io/
psycopgPostgreSQLhttps://www.psycopg.org/psycopg3/docs/
pyodbcSQL Server / ODBChttps://github.com/mkleehammer/pyodbc/wiki
SQLAlchemyORMhttps://docs.sqlalchemy.org/
pytestKiểm thử tự độnghttps://docs.pytest.org/
ruffKiểm tra & định dạng codehttps://docs.astral.sh/ruff/

5. Nguồn học tập miễn phí đáng tin cậy

Cách dùng phần này

Notebook này là tài liệu chính. Các nguồn dưới đây dùng để bổ sung khi bạn muốn nghe cách giải thích khác về một chủ đề khó.

5.1. Tiếng Anh

NguồnLoạiNhận xét
Real Python — https://realpython.com/Bài viếtChất lượng rất cao, nhiều bài miễn phí
Python Docs Tutorial — https://docs.python.org/3/tutorial/Tài liệuNguồn gốc, chính xác nhất
Automate the Boring Stuff — https://automatetheboringstuff.com/Sách onlineMiễn phí đọc web, thiên về tự động hóa
W3Schools Python — https://www.w3schools.com/python/Tra cứu nhanhĐơn giản, nhưng đôi khi thiếu chính xác
Python Morsels — https://www.pythonmorsels.com/Bài tậpCó phần miễn phí

5.2. Bài tập luyện tập

NguồnLoạiLink
ExercismBài tập có mentor, miễn phíhttps://exercism.org/tracks/python
CodewarsBài tập xếp hạnghttps://www.codewars.com/
HackerRankBài tập theo chủ đềhttps://www.hackerrank.com/domains/python
Advent of CodeThử thách hàng nămhttps://adventofcode.com/
Project EulerBài toán thiên về toán họchttps://projecteuler.net/

Gợi ý cho bạn

Với mục tiêu “nền tảng bài bản”, Exercism là phù hợp nhất: bài tập có cấu trúc theo chủ đề, và có người review code cho bạn miễn phí. Codewars/HackerRank thiên về thuật toán, ít liên quan tới công việc thực tế của bạn.

5.3. Hỏi đáp

NguồnGhi chú
Stack Overflow — https://stackoverflow.com/questions/tagged/pythonKho câu trả lời lớn nhất. Kiểm tra ngày trả lời trước khi áp dụng
r/learnpython — https://www.reddit.com/r/learnpython/Cộng đồng thân thiện với người mới
Python Discourse — https://discuss.python.org/Diễn đàn chính thức

6. Nguồn tiếng Việt

Cẩn trọng với tài liệu tiếng Việt

Chất lượng rất không đồng đều. Nhiều bài dịch máy, dùng cú pháp Python 2, hoặc giải thích sai khái niệm. Luôn đối chiếu với tài liệu chính thức.

NguồnLoạiGhi chú
Cộng đồng Python Việt Nam (Facebook)Diễn đànHỏi đáp được, nhưng cần chọn lọc câu trả lời
VietJack / Howkteam / HoclaptrinhBài viếtNhiều bài cũ, cần kiểm tra phiên bản Python
YouTube tiếng ViệtVideoƯu tiên video đăng sau 2023

Chiến lược tốt nhất cho bạn: dùng notebook này làm tài liệu chính (đã viết bằng tiếng Việt, có chú thích thuật ngữ), và tập đọc tài liệu chính thức tiếng Anh với hỗ trợ dịch tự động của trình duyệt.


7. Cách đọc tài liệu chính thức hiệu quả

7.1. Cấu trúc một trang tài liệu hàm

Ví dụ trang sorted(): https://docs.python.org/3/library/functions.html#sorted

sorted(iterable, /, *, key=None, reverse=False)
Ký hiệuÝ nghĩa
iterableTham số bắt buộc
key=NoneTham số tùy chọn, mặc định None
/Các tham số trước dấu này chỉ truyền theo vị trí
*Các tham số sau dấu này chỉ truyền theo tên
[...] (trong tài liệu cũ)Phần tùy chọn

Nghĩa là:

sorted([3,1,2])                     # ✅
sorted([3,1,2], reverse=True)       # ✅
sorted([3,1,2], True)               # ❌ reverse phải truyền theo tên
sorted(iterable=[3,1,2])            # ❌ iterable phải truyền theo vị trí

7.2. Quy trình tra cứu

graph TD
    A[Cần biết cách dùng một hàm] --> B[Vào docs.python.org]
    B --> C[Ctrl+F tìm tên hàm, hoặc dùng trang Index]
    C --> D[Đọc dòng chữ ký hàm]
    D --> E[Đọc mô tả ngắn]
    E --> F[Xem ví dụ ở cuối mục]
    F --> G[Thử ngay trong REPL]

7.3. Tra cứu ngay trong Python

help(sorted)                # In toàn bộ tài liệu của hàm
help(str.split)
help(str)                   # Toàn bộ method của kiểu str
 
dir(str)                    # Liệt kê mọi method của str
dir(math)                   # Liệt kê mọi thứ trong module math
 
print(sorted.__doc__)       # Chỉ docstring

Trong REPL, help() là cách nhanh nhất — không cần mở trình duyệt.

7.4. Tra cứu trong VS Code

  • Rê chuột lên tên hàm → hiện docstring
  • Ctrl + Click lên tên hàm → nhảy tới định nghĩa
  • Ctrl + Space khi đang gõ → gợi ý và hiện tham số

8. Cách tìm kiếm hiệu quả

8.1. Công thức tìm kiếm

Mục đíchCách gõ
Tra cú pháppython 3 <tên hàm> docs
Tra lỗiCopy nguyên văn dòng cuối traceback, bỏ đường dẫn file cụ thể
Tìm cách làmpython how to <việc cần làm>
Giới hạn nguồn tin cậysite:docs.python.org <từ khóa>
Giới hạn Stack Overflowsite:stackoverflow.com python <từ khóa>

8.2. Ví dụ

❌ "làm sao đọc file excel"
✅ "python read excel file openpyxl"

❌ "lỗi python"
✅ "python TypeError unsupported operand type(s) for +: 'int' and 'str'"

❌ "python sort"
✅ "site:docs.python.org sorted key"

8.3. Bộ lọc kết quả

  • ✅ docs.python.org — chính thức, tin tuyệt đối
  • ✅ realpython.com — chất lượng cao
  • ✅ Stack Overflow có nhiều upvote và trả lời gần đây
  • ⚠️ Blog cá nhân — kiểm tra ngày đăng
  • ❌ Bài dùng print "abc" (không ngoặc) — Python 2, bỏ qua ngay
  • ❌ Nội dung do AI sinh không kiểm chứng — luôn chạy thử code trước khi tin

9. Sử dụng AI để học lập trình

AI là công cụ tốt nếu dùng đúng cách

Với người mới học, AI dễ trở thành cái nạng khiến bạn không tự đi được.

Nên dùng AI để

  • ✅ Giải thích một đoạn code bạn không hiểu
  • ✅ Giải thích một thông báo lỗi
  • ✅ Hỏi “vì sao code này chạy ra kết quả X mà không phải Y”
  • ✅ Xin gợi ý hướng làm, không xin code hoàn chỉnh
  • ✅ Review code bạn tự viết, hỏi có chỗ nào cải thiện được

Không nên dùng AI để

  • ❌ Sinh code hoàn chỉnh rồi copy-paste mà không hiểu
  • ❌ Làm hộ bài tập
  • ❌ Tin tuyệt đối — AI vẫn sinh ra code sai, hàm không tồn tại, cú pháp lỗi thời

Nguyên tắc

Nếu bạn không giải thích được từng dòng code trong file của mình, đừng dùng nó.

Với mục tiêu “nền tảng bài bản” của bạn, hãy đặt ra kỷ luật: tự viết trước, hỏi AI sau — để đối chiếu, không phải để thay thế.


10. Xây dựng thói quen tra cứu

Tuần 3–8 (Giai đoạn 1)

Mỗi khi gặp một hàm mới, mở trang tài liệu chính thức của nó một lần, dù có hiểu hay không. Mục đích: làm quen giao diện.

Tuần 9–15 (Giai đoạn 2)

Trước khi hỏi Google, thử help(ten_ham) trong REPL trước.

Tuần 16–21 (Giai đoạn 3)

Khi gặp lỗi, thử tự đọc traceback và tra tài liệu 10 phút trước khi tìm kiếm.

Tuần 22–26 (Giai đoạn 4)

Tài liệu chính thức trở thành nguồn đầu tiên bạn mở, không phải Google.

Chỉ báo thành công

Sau 6 tháng, khi cần dùng một thư viện mới, phản xạ đầu tiên của bạn là tìm trang tài liệu chính thức của thư viện đó, chứ không phải tìm video hướng dẫn. Đó là lúc bạn đã thật sự tự học được.


Liên kết