Khóa học lập trình Modern C++
(github.com/federico-busato)- Khóa học này dành cho những người đã quen thuộc với C và lập trình hướng đối tượng, nhằm nâng cao trình độ thành thạo trong lập trình C++
- Bao quát từ những kiến thức cơ bản của lập trình C++ đến ngữ nghĩa và khái niệm C++ nâng cao
- Miễn phí, được cập nhật thường xuyên, bao gồm các khái niệm và tính năng của tiêu chuẩn ngôn ngữ mới nhất, đồng thời áp dụng phương pháp đào tạo thực tiễn
Nội dung chính của từng chương
- Khái niệm cơ bản : Giải thích về các kiểu dữ liệu cơ bản của C++, toán tử, quy tắc chuyển đổi, quản lý bộ nhớ, hàm và tiền xử lý.
- Lập trình hướng đối tượng : Tìm hiểu khái niệm lớp, kế thừa, đa hình và nạp chồng toán tử.
- Template và metaprogramming : Khám phá chuyên sâu về template hàm và lớp, utility thời gian biên dịch và SFINAE.
- Đơn vị biên dịch : Giải thích về linkage, One Definition Rule và cách xử lý nhiều đơn vị biên dịch.
- Quy ước mã nguồn : Hướng dẫn về tổ chức dự án và các quy ước mã nguồn chính.
- Hệ sinh thái : Thông tin về gỡ lỗi, kiểm thử, Cmake, tài liệu hóa và các công cụ khác.
- Tiện ích : Tổng quan về các thư viện
stdchính, container, iterator và thuật toán. - Chủ đề nâng cao : Học chuyên sâu về move semantics, suy luận kiểu, smart pointer và đồng thời hóa.
- Tối ưu hóa : Chiến lược về các khái niệm cơ bản, tối ưu hóa mã, tối ưu hóa ngoài mã và benchmarking.
Ý kiến của GN⁺
Khóa học này bao quát mọi khía cạnh của lập trình C++, bao gồm cả các tiêu chuẩn mới nhất của C++, nên là tài liệu thiết yếu để các kỹ sư phần mềm mới vào nghề phát triển lên trình độ chuyên gia. Cách tiếp cận thiên về trải nghiệm dựa trên các trường hợp thực tế mang lại cho người học kiến thức thực tiễn, rất hữu ích để nâng cao năng lực lập trình.
1 bình luận
Ý kiến trên Hacker News
Người tạo ra khóa học này là trưởng nhóm tại NVIDIA và là kỹ sư phần mềm chủ chốt của CUDA cuSPARSE
Đã rất thành công khi dùng ChatGPTv4 để viết mã C++ hiện đại tương thích với CUDA
std::*để viết mã linh hoạt hơn.Đã quay lại với C++ sau một thời gian dài nghỉ và thấy các phiên bản gần đây như C++17 đủ tốt, nhưng hỗ trợ Unicode còn đáng tiếc
Là một lập trình viên nhúng đang tìm tài liệu tốt để bắt đầu học C++
Tò mò không biết có ai có thể so sánh khóa học này với learncpp.com không
Phù hợp để ôn lại kỹ năng C đã bị mai một từ thời đại học, nhưng cần thực hành lập trình nhiều hơn
Cho rằng chỉ học bằng slide thì rất khó
Smart pointer không nên bị xem là một "chủ đề nâng cao" trong C++
newvàdeletelà quan trọng, nhưng trong thực tế, dùngunique_ptrhoặcshared_ptrsẽ đáng mong muốn hơn.Băn khoăn liệu trong C++ hiện đại có cần dùng new/delete hay không
Yêu cầu giải thích cách đọc phần quy tắc chuyển đổi