คอร์สสอนการเขียนโปรแกรม Modern C++
(github.com/federico-busato)- คอร์สนี้เหมาะสำหรับผู้ที่คุ้นเคยกับ C และการเขียนโปรแกรมเชิงวัตถุอยู่แล้ว และมีเป้าหมายเพื่อยกระดับความชำนาญด้านการเขียนโปรแกรม C++
- ครอบคลุมตั้งแต่พื้นฐานของการเขียนโปรแกรม C++ ไปจนถึงความหมายเชิงลึกและแนวคิดขั้นสูงของ C++
- เรียนได้ฟรี มีการอัปเดตบ่อย รวมแนวคิดและความสามารถของมาตรฐานภาษาล่าสุด พร้อมใช้แนวทางการสอนที่เน้นการใช้งานจริง
เนื้อหาสำคัญในแต่ละบท
- แนวคิดพื้นฐาน : อธิบายชนิดข้อมูลพื้นฐานของ C++, ตัวดำเนินการ, กฎการแปลงค่า, การจัดการหน่วยความจำ, ฟังก์ชัน และ preprocessor
- การเขียนโปรแกรมเชิงวัตถุ : ทำความเข้าใจแนวคิดของคลาส, การสืบทอด, พหุสัณฐาน และ operator overloading
- เทมเพลตและเมตาโปรแกรมมิง : เจาะลึกฟังก์ชันและคลาสเทมเพลต, ยูทิลิตีขณะคอมไพล์ และ SFINAE
- หน่วยแปล : อธิบายเรื่อง linkage, One Definition Rule และวิธีจัดการหลาย translation unit
- ข้อกำหนดการเขียนโค้ด : แนะนำการจัดระเบียบโปรเจกต์และข้อกำหนดการเขียนโค้ดที่สำคัญ
- ระบบนิเวศ : ข้อมูลเกี่ยวกับ debugging, testing, Cmake, การทำเอกสาร และเครื่องมืออื่น ๆ
- ยูทิลิตี : ภาพรวมของไลบรารี
stdที่สำคัญ, คอนเทนเนอร์, iterator และอัลกอริทึม - หัวข้อขั้นสูง : ศึกษาเชิงลึกเรื่อง move semantics, type inference, smart pointer และ concurrency
- การเพิ่มประสิทธิภาพ : กลยุทธ์เกี่ยวกับแนวคิดพื้นฐาน, การปรับโค้ดให้มีประสิทธิภาพ, การเพิ่มประสิทธิภาพที่ไม่เกี่ยวกับการเขียนโค้ด และ benchmarking
ความเห็นของ GN⁺
คอร์สนี้ครอบคลุมทุกแง่มุมของการเขียนโปรแกรม C++ รวมถึงมาตรฐานล่าสุดของภาษา จึงเป็นแหล่งข้อมูลสำคัญสำหรับวิศวกรซอฟต์แวร์ระดับเริ่มต้นที่ต้องการเติบโตสู่ระดับผู้เชี่ยวชาญ แนวทางการสอนแบบอิงประสบการณ์จากกรณีจริงช่วยให้ผู้เรียนได้รับความรู้ที่นำไปใช้ได้จริง ซึ่งเป็นประโยชน์อย่างมากต่อการพัฒนาทักษะการเขียนโปรแกรม
1 ความคิดเห็น
ความเห็นจาก Hacker News
ผู้สร้างคอร์สนี้เป็นหัวหน้าทีมที่ NVIDIA และเป็นวิศวกรซอฟต์แวร์หลักของ CUDA cuSPARSE
ประสบความสำเร็จอย่างมากในการใช้ ChatGPTv4 เพื่อเขียนโค้ด C++ สมัยใหม่ที่เข้ากันได้กับ CUDA
std::*เพื่อเขียนโค้ดที่ยืดหยุ่นมากขึ้นกลับมาใช้ C++ หลังจากพักไปนาน และมองว่าเวอร์ชันใหม่อย่าง C++17 ดีพอแล้ว แต่การรองรับยูนิโคดยังน่าผิดหวัง
ในฐานะนักพัฒนา embedded กำลังมองหาแหล่งเรียนรู้ที่ดีเพื่อเริ่มเรียน C++
สงสัยว่ามีใครที่สามารถนำคอร์สนี้ไปเทียบกับ learncpp.com ได้บ้างหรือไม่
เหมาะสำหรับการกลับมาทบทวนทักษะ C ที่ลืมไปตั้งแต่สมัยมหาวิทยาลัย แต่ยังต้องการการฝึกเขียนโค้ดจริงมากกว่านี้
คิดว่าการเรียนจากสไลด์อย่างเดียวเป็นเรื่องยาก
smart pointer ไม่ควรถูกมองว่าเป็น "หัวข้อขั้นสูง" ใน C++
newและdeleteก็สำคัญ แต่ในทางปฏิบัติการใช้unique_ptrหรือshared_ptrจะเหมาะสมกว่าสงสัยว่าใน C++ สมัยใหม่ยังจำเป็นต้องใช้ new/delete หรือไม่
ขอให้ช่วยอธิบายว่าควรอ่านส่วนกฎการแปลงอย่างไร