วิธีเรียนรู้ภาษา 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++

ที่เกี่ยวข้อง: 10 ข้อผิดพลาด C ++ ที่พบบ่อยที่สุดที่นักพัฒนาสร้างขึ้น