วิธีเรียนรู้ภาษา C และ C ++: รายการที่ดีที่สุด
เผยแพร่แล้ว: 2022-03-11ภาษา C เดิมได้รับการพัฒนาและใช้งานบนระบบปฏิบัติการ UNIX โดย Dennis Ritchie ภาษาซี ซึ่งค่อนข้างเรียบง่าย ไม่ได้ผูกติดอยู่กับฮาร์ดแวร์หรือระบบใดโดยเฉพาะ สิ่งนี้ทำให้ผู้ใช้สามารถเขียนโปรแกรมที่จะรันโดยไม่มีการเปลี่ยนแปลง (หรืออะไร) มากมายบนแทบทุกเครื่องได้ง่ายขึ้น
ภาษา C มักถูกเรียกว่าภาษาคอมพิวเตอร์ระดับกลาง เนื่องจากเป็นการรวมองค์ประกอบของภาษาระดับสูงเข้ากับฟังก์ชันการทำงานของภาษาแอสเซมบลี การเขียนโปรแกรม C ช่วยให้สามารถจัดการบิต ไบต์ และที่อยู่ได้ ทำให้โปรแกรมเมอร์สามารถควบคุมลักษณะการทำงานของโปรแกรมได้มากขึ้น และเข้าถึงกลไกของฮาร์ดแวร์พื้นฐานได้โดยตรงมากขึ้น
C ถูกสร้างขึ้น ได้รับอิทธิพล และทดสอบภาคสนามโดยโปรแกรมเมอร์ที่ทำงานอยู่ ผลลัพธ์ที่ได้คือ C ให้โปรแกรมเมอร์ในสิ่งที่โปรแกรมเมอร์ต้องการ
C ++ เป็นภาษา C เวอร์ชันปรับปรุง C++ รวมทุกอย่างที่เป็นส่วนหนึ่งของ C และเพิ่มการรองรับสำหรับการเขียนโปรแกรมเชิงวัตถุ (OOP) นอกจากนี้ C ++ ยังมีการปรับปรุงและคุณลักษณะมากมายที่ทำให้ "C ดีขึ้น" โดยไม่ขึ้นกับการเขียนโปรแกรมเชิงวัตถุ
ภาษา C++ สามารถขยายได้จริง เนื่องจากเราสามารถกำหนดประเภทใหม่ในลักษณะที่ทำหน้าที่เหมือนกับประเภทที่กำหนดไว้ล่วงหน้าซึ่งเป็นส่วนหนึ่งของภาษามาตรฐาน
หากคุณเพียงแค่ใช้ C++ เป็น C ที่ดีกว่า คุณจะไม่ได้ใช้พลังทั้งหมดของมัน เช่นเดียวกับเครื่องมือที่มีคุณภาพ C++ จะต้องถูกใช้ในลักษณะที่ถูกออกแบบมาให้ใช้งานเพื่อใช้ประโยชน์จากความสมบูรณ์ของมัน คุณลักษณะใหม่บางอย่างรวมถึงการห่อหุ้ม การเรียกใช้ฟังก์ชันอินไลน์ โอเปอเรเตอร์โอเวอร์โหลด การสืบทอด และความหลากหลาย
เหตุใดฉันจึงต้องการเรียนรู้ C หรือ C ++
C และ C ++ ยังคงเป็นภาษาโปรแกรมสองภาษาที่ได้รับความนิยมมากที่สุด โดยเฉพาะอย่างยิ่ง ไวยากรณ์และแนวคิดของ C นั้นยืนหยัดผ่านการทดสอบของเวลา และคุณสามารถเห็นได้ว่ามันถูกส่งต่อไปยังภาษาโปรแกรมยอดนิยมอื่นๆ แม้แต่ภาษาสมัยใหม่ เช่น Go
แม้ว่าคุณกำลังจะสร้างเว็บแอปพลิเคชันหรือส่วนประกอบส่วนหน้าของเว็บแฟนซีตลอดชีวิต การเรียนรู้ภาษา C จะช่วยให้คุณเข้าใจว่าซอฟต์แวร์และฮาร์ดแวร์มีปฏิสัมพันธ์กันอย่างไร
นอกจากนี้ C และ C ++ มีอยู่ทั่วไป
โดยเฉพาะอย่างยิ่ง C ให้พลังแก่เทคโนโลยีมากกว่าที่เราให้เครดิต
ในทางกลับกัน ซอฟต์แวร์โปรดบางตัวของคุณ อาจเป็นแม้กระทั่งเว็บเบราว์เซอร์ที่คุณกำลังอ่านบทความนี้ สร้างขึ้นจาก C++ การรู้ภาษา C เป็นพื้นฐานที่ดี แต่ในหลายกรณี การพัฒนาซอฟต์แวร์จะทำให้คุณต้องเรียนรู้ C++ และกระบวนทัศน์ของมัน
หากคุณต้องการพัฒนาซอฟต์แวร์ที่ต้องการใช้ประโยชน์สูงสุดจากประสิทธิภาพและความสามารถของคอมพิวเตอร์ เช่น เกมเดสก์ท็อประดับไฮเอนด์ เครื่องมือเพิ่มประสิทธิภาพการทำงานที่ซับซ้อน หรือโปรแกรมที่ต้องใช้การประมวลผลสูงที่ซับซ้อน เป็นต้น หรือหากคุณต้องการเพียงภาษาโปรแกรมที่ช่วยให้คุณ โต้ตอบกับฮาร์ดแวร์ของคอมพิวเตอร์โดยตรง C และ C++ เป็นภาษาสำหรับคุณ
แล้วทำไมคุณ ไม่ ต้องการที่จะเรียนรู้ C ++ หรือ C? ไม่ใช่เมื่อ 25 ปีที่แล้วเมื่อคุณอาจต้องลงทุนในคอมไพเลอร์ที่เป็นกรรมสิทธิ์เพื่อเริ่มต้น—วันนี้คุณสามารถเรียนรู้ C++ ได้ฟรีอย่างแน่นอน
ฉันจะเริ่มต้นใช้งาน C และ C++ ได้อย่างไร
ในการเริ่มต้นใช้งาน C หรือ C++ สิ่งที่คุณต้องการในกรณีส่วนใหญ่ อย่างน้อยที่สุดก็คือคอมไพเลอร์—แม้ว่าในปัจจุบันนี้ คุณยังสามารถเรียนภาษา C ออนไลน์ได้ด้วยการทดลองเล็กน้อยกับโปรเจ็กต์ “hello world” C ในเบราว์เซอร์
คอมไพเลอร์คือโปรแกรมที่สามารถรันผ่านอินเตอร์เฟสบรรทัดคำสั่ง (CLIs) พวกเขาอ่านโปรแกรมทั้งหมดและแปลงเป็นรหัสวัตถุ ซึ่งเป็นการแปลซอร์สโค้ดของโปรแกรมให้อยู่ในรูปแบบที่คอมพิวเตอร์สามารถดำเนินการได้โดยตรง
ในการทำให้ชีวิตง่ายขึ้น คุณสามารถใช้ IDE ที่ครบครัน ซึ่งจะทำให้ประสบการณ์ของคุณกับ C หรือ C++ น่าพึงพอใจยิ่งขึ้นไปอีก
Windows
มีคอมไพเลอร์ที่ดีมากมายบน Windows
บน Windows Visual Studio มีคอมไพเลอร์ C++
คอมไพเลอร์ยังสามารถสร้างโปรแกรม C ได้
Visual Studio มาพร้อมกับ IDE ที่ทรงพลังและมีฟีเจอร์มากมาย ทำให้เป็นตัวเลือกที่ดีสำหรับทุกคนที่เริ่มต้นใช้งาน C หรือ C++ หรือผู้ที่กำหนดเป้าหมายไปที่แพลตฟอร์ม Windows เป็นหลัก
หากคุณกำลังมองหาบางสิ่งที่ได้มาตรฐานมากกว่านี้ GCC (MinGW) อาจเป็นสิ่งที่คุณต้องการ Codeblocks IDE ทำงานได้ดีเป็นพิเศษในการตั้งค่านี้
Clang ก็เป็นตัวเลือกที่น่ากลัวสำหรับ Windows เช่นกัน ซึ่งทุกวันนี้ใช้สร้าง Google Chrome ได้ด้วยซ้ำ
มี IDE ข้ามแพลตฟอร์มอื่นๆ เช่น Eclipse CDT, Jetbrains CLion และ Netbeans ที่มีสภาพแวดล้อมการพัฒนา C และ C++ ที่ทำงานได้อย่างสมบูรณ์ อย่างไรก็ตาม เมื่อเร็ว ๆ นี้สิ่งเหล่านี้ถูกบดบัง (ขออภัยที่ประชดประชัน) โดย Visual Studio Code ซึ่งมีให้สำหรับสภาพแวดล้อม Linux และ Mac
ลินุกซ์
หากคุณใช้ Linux คุณอาจติดตั้ง GCC เป็นส่วนหนึ่งของการแจกจ่ายของคุณแล้ว หากไม่เป็นเช่นนั้น การติดตั้งควรเป็นเพียงคำสั่งเดียว:
# Ubuntu sudo apt-get install build-essential # Fedora sudo yum install gcc gcc-c++ # Arch Linux sudo pacman -S base-devel
Codeblocks IDE และ Eclipse CDT ทำงานได้ดีบน Linux เช่นเดียวกับที่ทำบน Windows
Mac / Mac OS X / OS X / macOS
บน Mac คุณสามารถใช้ Clang หรือ GCC ได้ฟรีทั้งคู่ แม้ว่า GCC จะรองรับมาตรฐาน C และ C++ ที่หลากหลาย แต่ Clang ก็ใช้งานได้ดีในกรณีส่วนใหญ่
ควรติดตั้ง Clang แล้ว
คุณสามารถติดตั้ง GCC โดยใช้ Homebrew:
brew install gcc
คุณสามารถใช้ XCode ซึ่งเป็น IDE ที่ยอดเยี่ยมซึ่งเป็นส่วนหนึ่งของเครื่องมือสำหรับนักพัฒนา Mac OS
บทช่วยสอนที่ดีสำหรับการเรียนรู้ C และ C ++ มีอะไรบ้าง
บทช่วยสอนเป็นวิธีที่ดีในการเริ่มต้นกับภาษาการเขียนโปรแกรมใหม่ แม้ว่าคุณจะไม่ค่อยคุ้นเคยกับการเขียนโปรแกรมเองก็ตาม บทช่วยสอนต่อไปนี้จะสอนแนวคิดที่สำคัญที่สุดแก่คุณ
การเขียนโปรแกรม C ที่ LearnVern
หลักสูตรออนไลน์การเขียนโปรแกรม C ที่ครอบคลุมนี้เหมาะสำหรับผู้เริ่มต้นซึ่งไม่จำเป็นต้องมีประสบการณ์การเขียนโปรแกรมมาก่อน เริ่มต้นจากพื้นฐานของ C และการเขียนโปรแกรมโดยทั่วไป และครอบคลุมหัวข้อขั้นสูง เช่น การจัดสรรหน่วยความจำแบบไดนามิก การจัดการไฟล์ ฯลฯ
C++ สำหรับโปรแกรมเมอร์ C ที่ Coursera
หากคุณคุ้นเคยกับภาษา C อยู่แล้วและต้องการใช้ C++ เพิ่มขึ้น หลักสูตรสองส่วนนี้เหมาะสำหรับคุณ หลักสูตรนี้เน้นให้เห็นความแตกต่างระหว่างสองภาษานี้อย่างแท้จริง และแสดงให้คุณเห็นถึงวิธีใช้ประโยชน์จาก C++ ให้เกิดประโยชน์สูงสุด
พื้นฐาน C++ ที่ Pluralsight
ในทางกลับกัน หากคุณต้องการเริ่มต้นจากพื้นฐานของ C++ และเรียนรู้จากพื้นฐาน PluralSight มีบทช่วยสอนสำหรับคุณ มุ่งเป้าไปที่ผู้ที่ต้องการเพิ่มประสิทธิภาพด้วย C ++
การเขียนโปรแกรม C สำหรับผู้เริ่มต้นที่ Udemy
หลักสูตรออนไลน์การเขียนโปรแกรม C นี้เหมาะสำหรับผู้เริ่มต้นและเหมาะสำหรับทุกคนที่ต้องการเริ่มต้นใช้งาน C บนแพลตฟอร์มยอดนิยมสามแพลตฟอร์ม (Windows, Linux และ Mac OS X)
บทช่วยสอน C++ สำหรับผู้เริ่มต้นที่สมบูรณ์ที่ Udemy
หลักสูตรนี้มีไว้สำหรับทุกคนที่มีความรู้พื้นฐานเกี่ยวกับคอมพิวเตอร์ แต่ตอนนี้ต้องการเข้าสู่ขอบเขตของการเขียนโปรแกรม น่าจะเป็นวิธีที่ดีที่สุดในการเรียนรู้ C++ เป็นภาษาแรกของคุณ นอกจากนี้ หากคุณพบว่าการพัฒนาเกมน่าสนใจ นี่คือหลักสูตรที่คุณต้องการเริ่มต้น

หลักสูตรฝึกอบรมการเขียนโปรแกรม C++ ขั้นสูงที่ Udemy
เมื่อคุณพอใจกับทักษะการเขียนโปรแกรม C++ ขั้นพื้นฐานแล้ว และพร้อมที่จะไปสู่ข้อตกลงจริง คุณจะต้องการกวดวิชาขั้นสูงเช่นนี้ บทช่วยสอนครอบคลุมถึงความหลากหลาย เทมเพลต การจัดการข้อยกเว้น สตรีม คอนเทนเนอร์ อัลกอริธึม สแต็ค และอื่นๆ อีกมากมาย
comp.lang.c คำถามที่พบบ่อย
บางครั้งสิ่งที่คุณต้องมีก็คือรายการคำถามและคำตอบมากมายที่คุณสามารถค้นหาได้อย่างรวดเร็วเพื่อแก้ไขปัญหาของคุณ นี่ไม่ใช่บทช่วยสอน แต่เป็นชุดคำถามที่พบบ่อยที่มีโครงสร้าง
คำอธิบายประกอบ C++ (เวอร์ชัน 10.9.2) โดย Frank Brokken
บทช่วยสอนทางเว็บนี้มีไว้สำหรับโปรแกรมเมอร์ C ขั้นสูง (หรือโปรแกรมเมอร์ Perl หรือ Java—ทุกอย่างที่ถือว่ามี “ไวยากรณ์ C-like”) ที่ต้องการเปลี่ยนไปใช้ C++ มันยังคงดำเนินต่อไปโดยที่ภาษาการเขียนโปรแกรม C สิ้นสุดลง—เช่นที่พอยน์เตอร์ การจัดสรรหน่วยความจำ และประเภทผสม—ซึ่งทำให้เป็นคู่มือการเขียนโปรแกรม C++ ที่ดีมาก
คู่มือสไตล์ Google C++
ในขณะที่คุณเขียนโปรแกรมที่ซับซ้อนมากขึ้นในขณะที่คุณเรียนรู้การเขียนโปรแกรม C++ คุณอาจประสบปัญหาด้านการบำรุงรักษาอย่างรวดเร็ว นี่คือจุดที่คู่มือสไตล์จากโปรแกรมเมอร์ C++ มากประสบการณ์มีประโยชน์ คู่มือสไตล์นี้ดูแลโดย Google
หากบทช่วยสอน C/C++ ข้างต้นไม่เพียงพอสำหรับคุณ มีรายการบทช่วยสอนที่ชุมชนกลั่นกรองสำหรับการเรียนรู้ C และสำหรับการเรียนรู้ C++
ฉันสามารถเรียนรู้ C และ C ++ โดยการอ่านหนังสือได้หรือไม่
หนังสือเป็นวิธีที่ยอดเยี่ยมในการเรียนรู้เชิงลึกเกี่ยวกับภาษาการเขียนโปรแกรม ด้วยคำอธิบายที่ยอดเยี่ยมมากมายเกี่ยวกับวิธีการทำงานที่ซับซ้อนของภาษาเขียนโปรแกรม ความรู้จากหนังสือดีๆ เกี่ยวกับ C หรือ C++ จะช่วยให้คุณได้เปรียบในขณะที่ใช้ภาษาเหล่านี้สำหรับโครงการของคุณ
C in a Nutshell: The Definitive Reference (ฉบับพิมพ์ครั้งที่ 2) โดย Peter Prinz และ Tony Crawford
แม้ว่าหนังสือเล่มนี้จะมีข้อมูลเบื้องต้นเกี่ยวกับภาษาซีเพียงเล็กน้อย แต่ก็เหมาะที่จะเป็นหนังสือเล่มที่สองถ้าคุณต้องการเรียนรู้การเขียนโค้ด C หนังสือเล่มนี้มีเคล็ดลับ เทคนิค ตัวอย่าง และคำแนะนำเชิงปฏิบัติที่จะช่วยให้นักพัฒนาขั้นสูงสามารถใช้ประโยชน์สูงสุดจาก ความสามารถ
หนังสือแบ่งออกเป็นสามส่วน
อันแรกอธิบายภาษาซีในความหมายที่เข้มงวดของคำนั้น ที่สองอธิบายไลบรารีมาตรฐาน และที่สามอธิบายกระบวนการรวบรวมและทดสอบโปรแกรมด้วยเครื่องมือในคอลเลกชันซอฟต์แวร์ GNU ยอดนิยม
C in a Nutshell เป็นคู่หูที่สมบูรณ์แบบสำหรับ The C Programming Language โดย Brian W. Kernighan และ Dennis Ritchie (หรือที่รู้จักในชื่อ K&R) และถูกกำหนดให้เป็นหนังสืออ้างอิงที่เข้าถึงได้มากที่สุดบนโต๊ะทำงานของคุณ
ภาษาการเขียนโปรแกรม C โดย Brian W. Kernighan และ Dennis Ritchie
นี่เป็นฉบับที่สองของข้อความต้นฉบับของ Kernighan & Ritchie
โดยทั่วไปจะเรียกว่าพันธสัญญาใหม่เนื่องจากมีการดัดแปลงที่รวมอยู่ในมาตรฐาน ANSI โดยที่ยังคงรักษาลักษณะของฉบับพิมพ์ครั้งแรกไว้
หนังสือเล่มนี้ถือว่าผู้อ่านมีความรู้พื้นฐานด้านการเขียนโปรแกรม ดังนั้น หากคุณเพิ่งเริ่มเขียนโปรแกรม และ C เป็นภาษาแรก นี่อาจไม่ใช่หนังสือในอุดมคติสำหรับคุณ อย่างไรก็ตาม คุณอาจพบว่าบันทึกย่อเหล่านี้คุ้มค่า
นี่เป็นวิธีที่ดีที่สุดวิธีหนึ่งในการแนะนำการเขียนโปรแกรม C และเป็นสิ่งที่ต้องมี โดยเฉพาะอย่างยิ่งหากคุณกำลังเริ่มต้นคอลเลกชันหนังสือการเขียนโปรแกรมของคุณเอง
ภาษาการเขียนโปรแกรม C ++ (รุ่นที่ 4) โดย Bjarne Stroustrup
Bjarne Stroustrup เป็นผู้ออกแบบ C++ และได้เขียนหนังสือดีๆ มากมายเกี่ยวกับหัวข้อนี้
หนังสือเล่มนี้แบ่งออกเป็นสามส่วน
ส่วนแรกเป็นบทช่วยสอนเบื้องต้นเกี่ยวกับการเขียนโปรแกรม C++
ส่วนที่สองนำเสนอการอภิปรายเกี่ยวกับปัญหาการออกแบบและการพัฒนาซอฟต์แวร์ที่เกิดขึ้นจากการใช้ C++ และส่วนที่สามเป็นคู่มืออ้างอิงฉบับสมบูรณ์
ด้วยความนิยมของ C++ ผู้จัดจำหน่ายอิสระหลายรายของ C++ ได้ออกมาข้างหน้า แต่หนังสือเล่มนี้กล่าวถึง 'C ++ บริสุทธิ์' กล่าวคือไม่มีการใช้ส่วนขยายที่ขึ้นกับการใช้งาน
วิธีที่ดีที่สุดวิธีหนึ่งในการเรียนรู้ภาษาโปรแกรมคือการเขียนโปรแกรมขนาดเล็กที่เกี่ยวข้องกับหัวข้อที่คุณเรียน มีแบบฝึกหัดท้ายบทเพื่อนำความรู้ที่เรียนรู้ใหม่ไปใช้
C++ ที่มีประสิทธิภาพ: 55 วิธีเฉพาะในการปรับปรุงโปรแกรมและการออกแบบของคุณ โดย Scott Meyers
การสร้างซอฟต์แวร์ขนาดใหญ่ด้วย C++ ต้องใช้การออกแบบและวินัย หากคุณจริงจังเกี่ยวกับ C ++ หนังสือเล่มนี้เป็นสิ่งที่ต้องอ่าน
เป็นคู่มือของผู้เชี่ยวชาญสำหรับการออกแบบคลาส ฟังก์ชัน เทมเพลต และลำดับชั้นการสืบทอดที่มีประสิทธิภาพ หนังสือเล่มนี้ยังกล่าวถึงว่า C++ แตกต่างจากภาษาอื่นๆ อย่างไร และวิธีการทำสิ่งต่าง ๆ “แบบ C++”
C++ Primer (รุ่นที่ 5) โดย Stanley B. Lippman
C++ Primer เป็นหนังสือที่ยอดเยี่ยมและจะทำให้การเรียนรู้ C++ เป็นเรื่องสนุก เป็นหนังสือ C ++ ที่ดีที่สุดเล่มหนึ่ง แต่ถือว่ามีความคุ้นเคยกับแนวคิดการเขียนโปรแกรมและความชำนาญใน C
หนังสือเล่มนี้เป็นฉบับล่าสุดที่ยอดเยี่ยมสำหรับโปรแกรมเมอร์ที่ต้องการใช้ประโยชน์สูงสุดจากคุณสมบัติใหม่และขั้นสูง
คำถามที่พบบ่อยเกี่ยวกับ C++ (ฉบับที่ 2) โดย Marshall P. Cline
นี่คือหนังสือมหัศจรรย์ที่มีคำตอบสำหรับคำถามประมาณ 500 ข้อเกี่ยวกับการเขียนโปรแกรม การออกแบบ การวิเคราะห์ และการทดสอบ ไม่ใช่สำหรับผู้เริ่มต้น แต่สำหรับโปรแกรมเมอร์ที่เข้าใจไวยากรณ์ของภาษาแล้วต้องการใช้งาน
หากคุณมีคำถามเช่น "ค่าคงที่ของคลาสคืออะไร", "ฉันควรใช้ข้อยกเว้นอย่างไร", "จะเกิดอะไรขึ้นเมื่อผู้ทำลายล้างถูกประหารชีวิต" นี่คือหนังสือสำหรับคุณ
ประสิทธิผลสมัยใหม่ C++: 42 วิธีเฉพาะในการปรับปรุงการใช้ C++11 และ C++14 โดย Scott Meyers
หากคุณมีประสบการณ์กับ C++ แล้ว แต่ต้องการทดสอบการใช้งานมาตรฐานที่ใหม่กว่านี้ โปรดอ่านหนังสือเล่มนี้ คุณจะแปลกใจว่า C++ มีการพัฒนาไปมากเพียงใดผ่านมาตรฐานใหม่เหล่านี้ หนังสือเล่มนี้กล่าวถึงวิธีการใช้ความสามารถที่ใหม่กว่าใน C++ ให้เกิดประสิทธิภาพสูงสุด (แม้ว่ามาตรฐาน C++ จะสูงถึง C++17 แต่ C++14 ก็ยังล้ำหน้าในหลายบริบทของโครงการ)
STL ที่มีประสิทธิภาพ: 50 วิธีเฉพาะในการปรับปรุงการใช้ไลบรารีแม่แบบมาตรฐานของคุณ โดย Scott Meyers
แง่มุมที่น่าทึ่งที่สุดของ C++ คือ Standard Template Library (STL) เป็นคุณลักษณะที่ทรงพลังที่สุดตัวหนึ่ง แต่อาจซับซ้อนได้ หนังสือเล่มนี้มี 50 เคล็ดลับที่ยอดเยี่ยมและ 100+ อัลกอริธึม STL ที่สำรวจส่วนต่างๆ ของ STL ทำให้เข้าถึงได้ง่ายขึ้นสำหรับนักพัฒนาที่เพิ่งเริ่มต้นใช้งาน C++