- Khóa học thực hành của MIT tập trung giảng dạy năng lực sử dụng công cụ mà các chương trình Khoa học máy tính truyền thống ở đại học thường không đề cập
- Giảng dạy cách sử dụng hiệu quả các công cụ cốt lõi mà lập trình viên dùng hằng ngày như dòng lệnh, trình soạn thảo văn bản, hệ thống quản lý phiên bản
- Ở bản 2026, công cụ và quy trình phát triển dựa trên AI được tích hợp vào từng buổi học, mang đến cấu trúc học tập phù hợp với môi trường làm việc hiện đại
- Khóa học được công khai dưới dạng video YouTube, và có thể thảo luận giữa học viên với giảng viên trên OSSU Discord
- Hỗ trợ mã nguồn mở và bản dịch đa ngôn ngữ để có thể tự do sử dụng cả ngoài MIT, góp phần vào giáo dục lập trình viên trên toàn thế giới
Tổng quan khóa học
- Trong khi các môn Khoa học máy tính thường đề cập đến những chủ đề nâng cao như hệ điều hành hay machine learning, thì mức độ thành thạo công cụ phát triển vẫn là lĩnh vực mà sinh viên thường phải tự học
- Khóa học này trình bày có hệ thống các kỹ năng thiết yếu trong thực tế như dòng lệnh, trình soạn thảo văn bản mạnh mẽ, và các tính năng nâng cao của hệ thống quản lý phiên bản
- Mục tiêu là giúp sinh viên sử dụng hiệu quả và trơn tru hơn những công cụ mà họ sẽ dành hàng trăm đến hàng nghìn giờ sử dụng trong suốt quá trình học tập và sự nghiệp
- Việc thành thạo các công cụ này giúp tăng tốc độ giải quyết vấn đề và mở rộng khả năng xử lý các bài toán phức tạp
Học tập tích hợp AI
- Bản 2026 phản ánh thực tế rằng công cụ và quy trình phát triển có hỗ trợ AI đang lan rộng trong toàn bộ lĩnh vực kỹ thuật phần mềm
- Khi được sử dụng với nhận thức rõ về giới hạn của AI và cách áp dụng phù hợp, chúng mang lại lợi ích lớn cho người làm CS trong thực tế
- Không có buổi học AI riêng biệt; thay vào đó, các công cụ và kỹ thuật AI mới nhất được tích hợp trực tiếp vào từng bài giảng theo chủ đề
Lịch học
- Gồm tổng cộng 9 buổi, từ ngày 12/1/2026 đến 23/1/2026
- Chủ đề chính: giới thiệu Shell, môi trường dòng lệnh, môi trường và công cụ phát triển, debugging và profiling, quản lý phiên bản Git, triển khai mã, Agentic Coding, chất lượng mã, v.v.
- Tất cả bài giảng đều có thể xem qua playlist YouTube
Tham gia và cộng đồng
- Học viên có thể đặt câu hỏi và thảo luận trên kênh
#missing-semester-forum của OSSU Discord
- Khóa học do Anish, Jon, Jose đồng giảng dạy, và có thể liên hệ qua email (missing-semester@mit.edu)
Mở rộng ra ngoài MIT
- Tài liệu khóa học cũng được công khai ngoài MIT và được thảo luận trên nhiều nền tảng như Hacker News, Lobsters, Reddit, X, Bluesky, Mastodon, LinkedIn
- Các bản 2019, 2020, 2026 đều đang được chia sẻ sôi nổi trên mạng
Dịch thuật và mã nguồn mở
- Có bản dịch cộng đồng sang hơn 15 ngôn ngữ như tiếng Ả Rập, tiếng Trung, tiếng Đức, tiếng Nhật, tiếng Hàn, v.v.
- Các bản dịch do cộng đồng bên ngoài thực hiện và chưa qua kiểm duyệt chính thức
- Có thể bổ sung bản dịch mới thông qua GitHub Pull Request
- Tài liệu khóa học được phát hành theo giấy phép CC BY-NC-SA, và mã nguồn có thể xem trên GitHub
Lời cảm ơn
- Nhờ sự hỗ trợ của MIT Open Learning và SIPB, việc sản xuất video bài giảng và vận hành chương trình IAP 2026 mới có thể thực hiện được
5 bình luận
Tại sao không phải là giấy phép MIT?
kkkk
Wow... trong video cũng có phụ đề tiếng Hàn nữa.
Nội dung cũng hay...
Dù là chủ đề khác, đúng là thế giới giờ tốt thật. Đây là thời đại mà chúng ta có thể học dự thính cả các khóa học của MIT qua Internet bằng tiếng mẹ đẻ của mình.
Trông như đang xem The Pragmatic Programmer phiên bản thực dụng dành cho sinh viên đại học, nên thấy cực kỳ hấp dẫn.
Ý kiến trên Hacker News
Thật vui khi thấy phần “Beyond the Code” đề cập đến chú thích (comment)
Điều tôi luôn nói với sinh viên trong lớp nhập môn lập trình là, chú thích tốt phải giải thích lý do (why) của đoạn mã
Những kiểu như “i+=1; /* Increment i */” thì vô nghĩa, còn giải thích kiểu “tăng i ở giữa vòng lặp để kiểm tra trước giá trị tiếp theo và xem có khả năng hoán đổi hay không” thì hữu ích hơn nhiều
Nếu viết chú thích theo lối văn xuôi, như thể đang giải thích cho bà của mình, thì sẽ dễ hiểu hơn
Mã nguồn dành phần lớn vòng đời của nó ở giai đoạn bảo trì, nên càng dễ hiểu thì chi phí càng thấp và tuổi thọ càng dài
Rất vui khi chương về quản lý phiên bản (version control) được đưa vào
Thật đáng tiếc khi phần lớn chương trình đào tạo CS không dạy tử tế về hệ thống quản lý phiên bản (VCS)
Các tính năng như git bisect, blame, revert, rebase chỉ thật sự phát huy giá trị khi được dùng đúng cách
Nhưng nhiều lập trình viên chỉ dừng ở mức “hoàn thành tính năng →
git commit -am "changes"” là xongNếu lịch sử commit được quản lý để kể một câu chuyện, việc review PR sẽ trở nên dễ chịu; còn nếu rối tung với 26 commit kiểu “try fix” thì thật kinh khủng
Quản lý phiên bản là thứ cần được chăm chút kỹ lưỡng, và giá trị của nó hoàn toàn xứng đáng với công sức bỏ ra
Git có tốt hơn trước, nhưng vẫn không trực quan, thuật ngữ khó hiểu, khi gặp sự cố thì rất khó khôi phục, và cũng không có “undo”
Có lẽ đã đến lúc tạo ra một công cụ quản lý phiên bản mới để thay thế Git
May là trường đại học của tôi có các quản trị viên hệ thống phụ trách những môn như vậy, và sau này trong chương trình MCIT của UPenn, Git cũng đã được đưa vào chương trình học
Nhưng các tính năng nâng cao như bisect hay git object thì rất khó nắm được nếu không chủ động dành thời gian học riêng
Vì thế tôi nghĩ nhất định cần có một khóa học chính quy dạy Git
Tôi có cố viết commit message cho tốt và chia thay đổi thành những phần nhỏ, nhưng các công cụ Git nâng cao vẫn là thứ khiến tôi e dè
Sẽ rất tốt nếu đưa sed và awk vào chương trình học
Hai công cụ này có thể thay thế những chương trình dài trong ngôn ngữ khác bằng các đoạn mã ngắn và dễ đọc
Rốt cuộc, điều quan trọng là dạy được khả năng chọn đúng công cụ. Nhờ vậy có thể tránh vấn đề “chiếc búa vàng”
Một khách hàng doanh nghiệp lớn của tôi bắt buộc mọi nhân viên kỹ thuật phải học 18 giờ đào tạo agile
Thời gian đó thà dùng để xem 9 giờ của chuỗi bài giảng này còn giá trị hơn nhiều
Tôi tò mò không biết bài giảng có bao gồm các chủ đề như phỏng vấn, đàm phán lương, giao tiếp với quản lý, dẫn dắt nhóm, phát triển sự nghiệp hay không
Nếu được học những thứ này từ thời đại học thì chắc đã rất hữu ích
Ở khoa Kỹ thuật Máy tính và Điện tử (CompE) của Purdue từng có một môn thực hành 1 tín chỉ dạy những nội dung như thế này
Học bash và git, rồi cuối khóa có chạm nhẹ đến Python và Tkinter
Sau đó ở các môn nâng cao hơn, việc nộp bài tập đã mặc định dựa trên kiến thức này
Đó là tín chỉ thực dụng nhất trong số các môn tôi từng học
Nếu thật sự nắm vững shell thì bạn có thể tiết kiệm vài năm cuộc đời
Tôi cực kỳ khuyên nên đọc Bash manual từ đầu đến cuối. Bạn sẽ tìm được câu trả lời hoặc ít nhất là gợi ý cho hầu như mọi câu hỏi
Tài liệu gợi ý:
Và cũng chia sẻ một script ghi log mọi lệnh Unix kèm mô tả một dòng cho từng lệnh
Hồi cuối những năm 90, khi học tiến sĩ Vật lý ở NYU, tôi đã tham gia một lớp thực hành công cụ UNIX của khoa CS
Giảng viên trình diễn trực tiếp trên terminal, và từ đó tôi đã mê UNIX luôn
Sau này tôi cài Linux và bắt đầu lập trình bằng Perl
Giờ tôi vẫn thích xem các video YouTube về Rust của Jon, và đang dùng Rust theo một cách không truyền thống
Tôi định theo chuỗi bài giảng này và “port” nó sang rustdoc
Link dự án của tôi
Tôi tò mò liệu chuyện này có giống hồi trước Sun từng tài trợ đào tạo Java cho các trường đại học, còn lần này là Anthropic đang thúc đẩy LLM hay không
Tuy vậy, việc các công ty LLM cung cấp gói miễn phí cho sinh viên có vẻ là điều tự nhiên
Trường đại học của tôi cũng từng có một môn CS cốt lõi dành trọn một học kỳ để dạy những nội dung như thế này
Cho đến bây giờ tôi vẫn còn tra lại ghi chú từ hồi đó, đến mức đây là một trong những môn học hữu ích nhất mà tôi từng học