كيف تتعلم لغات C و C ++: القائمة النهائية
نشرت: 2022-03-11تم تطوير لغة البرمجة C في الأصل لتطبيقها على نظام التشغيل UNIX بواسطة Dennis Ritchie. لغة C ، وهي بسيطة للغاية ، ليست مرتبطة بأي جهاز أو نظام معين. هذا يسهل على المستخدم كتابة البرامج التي سيتم تشغيلها بدون تغييرات كثيرة (أو أي تغييرات) على جميع الأجهزة عمليًا.
غالبًا ما تسمى لغة 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؟ لم يكن الأمر كما كان قبل 25 عامًا ، عندما كان من الممكن أن تضطر إلى الاستثمار في مترجم خاص للبدء - اليوم يمكنك بالتأكيد تعلم C ++ مجانًا.
كيف يمكنني بدء استخدام C و C ++؟
لبدء استخدام C أو C ++ ، ما تريده في معظم الحالات ، على أقل تقدير ، هو مترجم - على الرغم من أنه يمكنك في الوقت الحاضر تعلم لغة C عبر الإنترنت من خلال تجربة بعض الشيء مع مشاريع C "hello world" في المتصفح.
المترجمات هي برامج يمكن تشغيلها من خلال واجهات سطر الأوامر (CLIs). يقرؤون البرنامج بأكمله ويحولونه إلى كود كائن ، وهو ترجمة للكود المصدري للبرنامج إلى نموذج يمكن للكمبيوتر تنفيذه مباشرة.
لتسهيل الحياة ، يمكنك الذهاب إلى IDEs الكاملة التي يمكن أن تجعل تجربتك مع C أو C ++ أكثر متعة.
شبابيك
هناك الكثير من المجمعات الجيدة المتاحة على Windows.
في نظام Windows ، يوفر Visual Studio مترجم C ++.
يمكن للمترجم أيضًا إنشاء برامج سي.
يأتي Visual Studio مع IDE القوي الخاص به والغني بالميزات ، مما يجعله اختيارًا رائعًا لأي شخص يبدأ في C أو C ++ أو أي شخص يستهدف نظام Windows الأساسي بشكل أساسي.
إذا كنت تبحث عن شيء أكثر توافقًا مع المعايير ، فقد يكون GCC (MinGW) هو ما تحتاجه. يعمل Codeblocks IDE بشكل جيد للغاية في هذا الإعداد.
يعد Clang الآن أيضًا خيارًا هائلًا على نظام التشغيل Windows — بل إنه يُستخدم لإنشاء Google Chrome في الوقت الحاضر.
توجد IDEs أخرى عبر الأنظمة الأساسية ، مثل 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 - كلاهما متاح مجانًا. بينما يدعم دول مجلس التعاون الخليجي نطاقًا أوسع من معايير C و C ++ ، فإن Clang سيعمل بشكل جيد في معظم الحالات.
يجب أن يكون كلانج مثبتًا بالفعل.
يمكنك تثبيت GCC باستخدام Homebrew:
brew install gcc
يمكنك استخدام XCode ، وهو IDE رائع يعد جزءًا من أدوات مطور Mac OS.
ما هي بعض الدروس الجيدة لتعلم C و C ++؟
تعتبر البرامج التعليمية طريقة رائعة للبدء في استخدام لغة برمجة جديدة. حتى لو لم تكن معتادًا على البرمجة نفسها. ستعلمك الدروس التالية أهم المفاهيم.
البرمجة بلغة C في LearnVern
تعد دورة البرمجة C الشاملة عبر الإنترنت رائعة للمبتدئين ، الذين ليس لديهم بالضرورة خبرة سابقة في البرمجة. يبدأ من أساسيات C والبرمجة بشكل عام ويغطي مواضيع متقدمة ، مثل تخصيص الذاكرة الديناميكي وإدارة الملفات وما إلى ذلك.
C ++ لمبرمجي C في Coursera
إذا كنت معتادًا على لغة C وترغب في غمس أصابع قدميك في C ++ ، فإن هذه الدورة التدريبية المكونة من جزأين مثالية لك. تسلط هذه الدورة الضوء على الاختلافات بين هاتين اللغتين وتوضح لك كيفية تحقيق أقصى استفادة من C ++.
أساسيات لغة ++ C في صيغة الجمع
من ناحية أخرى ، إذا كنت تريد أن تبدأ من أساسيات 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) بقلم فرانك بروكين
هذا البرنامج التعليمي المستند إلى الويب مخصص لمبرمجي C المتقدمين (أو مبرمجي Perl أو Java - أي شيء يعتبر أنه يحتوي على "قواعد تشبه C") الذين يرغبون في الانتقال إلى C ++. تستمر حيث تنتهي لغة البرمجة C - مثل المؤشرات وتخصيص الذاكرة والأنواع المركبة - مما يجعلها دليل برمجة C ++ جيد جدًا.
دليل أسلوب Google C ++
أثناء كتابة برامج أكثر تفصيلاً أثناء تعلمك لبرمجة C ++ ، قد تواجه مشكلات في الصيانة بسرعة. هذا هو المكان الذي تكون فيه أدلة الأسلوب من مبرمجي C ++ المخضرمين مفيدة. يتم صيانة دليل الأسلوب هذا بواسطة Google.
إذا لم تكن برامج C / C ++ التعليمية المذكورة أعلاه كافية لك ، فهناك قوائم جيدة من البرامج التعليمية التي يديرها المجتمع لتعلم لغة C وتعلم C ++.
هل يمكنني تعلم C و C ++ من خلال قراءة الكتب؟
تعتبر الكتب طريقة رائعة للتعرف بشكل متعمق على لغة البرمجة. مع الكثير من الشرح الرائع لكيفية عمل الوظائف المعقدة للغة البرمجة ، يمكن أن تمنحك المعرفة من كتاب جيد على C أو C ++ الحافة العليا أثناء استخدام هذه اللغات لمشاريعك.
C in a Nutshell: المرجع النهائي (الإصدار الثاني) بقلم Peter Prinz و Tony Crawford
على الرغم من أن هذا الكتاب يتضمن مقدمة صغيرة للغة برمجة C ، إلا أنه مناسب بشكل أفضل ككتاب ثان إذا كنت تريد تعلم البرمجة C. يقدم هذا الكتاب نصائح وتقنيات وأمثلة ونصائح عملية تتيح للمطورين المتقدمين زيادة قدراتهم إلى الحد الأقصى. قدرات.
الكتاب مقسم إلى ثلاثة أجزاء.
الأول يصف لغة سي بالمعنى الدقيق للكلمة ؛ يصف الثاني المكتبة القياسية ، والثالث يصف عملية تجميع واختبار البرامج باستخدام الأدوات الموجودة في مجموعة برمجيات جنو الشهيرة.
C in a Nutshell هو الرفيق المثالي للغة C Programming Language من تأليف Brian W. Kernighan و Dennis Ritchie (المعروف أيضًا باسم K&R) والمقدر أن يكون الكتاب المرجعي الأكثر الوصول إليه على مكتبك.
لغة البرمجة سي بقلم بريان دبليو كيرنيغان ودينيس ريتشي
هذه هي النسخة الثانية من نص Kernighan & Ritchie الأصلي.
يشار إليه عادةً باسم العهد الجديد لأنه يتضمن التعديلات التي أدخلها معيار ANSI مع الاحتفاظ بطبيعة الإصدار الأول.
يفترض الكتاب أن القارئ لديه بعض المعرفة الأساسية بالبرمجة. لذلك إذا كنت قد بدأت للتو في البرمجة ، وكانت C هي اللغة الأولى ، فقد لا يكون هذا هو الكتاب المثالي بالنسبة لك. ومع ذلك ، قد تجد هذه الملاحظات المكثفة عليها مفيدة.
هذه واحدة من أفضل الطرق للحصول على مقدمة لبرمجة لغة سي ، وهي ضرورية - خاصة إذا كنت تبدأ مجموعتك الخاصة من كتب البرمجة.
لغة البرمجة C ++ (الإصدار الرابع) بواسطة Bjarne Stroustrup
Bjarne Stroustrup هو مصمم C ++ وله العديد من الكتب الرائعة حول هذا الموضوع.
ينقسم هذا الكتاب إلى ثلاثة أجزاء.
يقدم الجزء الأول مقدمة تعليمية لبرمجة ++ C.
يقدم الجزء الثاني مناقشة لقضايا التصميم وتطوير البرمجيات الناشئة فيما يتعلق باستخدام C ++ ، والجزء الثالث هو دليل مرجعي كامل.
مع شعبية C ++ ، تقدم العديد من الموزعين المستقلين لـ C ++ ، لكن الكتاب يناقش "Pure C ++ ؛" أي أنه لا يتم استخدام ملحقات تعتمد على التنفيذ.
واحدة من أفضل الطرق لتعلم لغة البرمجة هي كتابة برامج صغيرة ذات صلة بالموضوع الذي تدرسه. هناك تمارين في نهاية كل فصل لتطبيق ما تعلمته حديثًا.
C ++ الفعال: 55 طريقة محددة لتحسين برامجك وتصميماتك بواسطة سكوت مايرز
يتطلب إنشاء برامج كبيرة باستخدام C ++ تصميمًا وانضباطًا. إذا كنت جادًا بشأن C ++ ، فهذا الكتاب يجب قراءته.
إنه دليل خبير لتصميم الفئات والوظائف والقوالب والتسلسلات الهرمية للميراث الفعالة. يناقش الكتاب أيضًا كيف تختلف C ++ عن اللغات الأخرى وكيفية القيام بأشياء "بطريقة C ++".
C ++ التمهيدي (الإصدار الخامس) بواسطة ستانلي بي ليبمان
يعد C ++ Primer كتابًا رائعًا وسيجعل تعلم C ++ ممتعًا. إنه حقًا أحد أفضل كتب C ++ الموجودة ، ولكنه يفترض الكثير من الإلمام بمفاهيم البرمجة وإتقان لغة C.
يعد الإصدار الأخير من هذا الكتاب ممتازًا للمبرمجين الذين يرغبون في تحقيق أقصى استفادة من الميزات الجديدة والمتقدمة.
الأسئلة الشائعة حول لغة C ++ (الإصدار الثاني) بقلم مارشال ب. كلاين
هذا كتاب هائل يحتوي على إجابات لحوالي 500 سؤال حول البرمجة والتصميم والتحليل والاختبار. إنه ليس للمبتدئين ، ولكن للمبرمجين الذين اكتشفوا بناء جملة اللغة يريدون تنفيذها.
إذا كانت لديك أسئلة مثل "ما هو الفصل الثابت؟" ، "كيف يمكنني استخدام الاستثناءات؟" ، "ماذا يحدث عند تنفيذ أداة التدمير؟" ، فهذا هو الكتاب المناسب لك.
C ++ الحديثة الفعالة: 42 طريقة محددة لتحسين استخدامك لـ C ++ 11 و C ++ 14 بواسطة سكوت مايرز
إذا كنت متمرسًا بالفعل مع C ++ ، ولكنك ترغب في اختبار معاييرها الأحدث ، فاقرأ هذا الكتاب. ستندهش من مدى تطور C ++ من خلال هذه المعايير الجديدة. يناقش الكتاب كيفية الاستفادة القصوى من الإمكانات الأحدث في C ++. (على الرغم من أن معيار C ++ يصل الآن إلى C ++ 17 ، إلا أن C ++ 14 لا تزال متطورة في العديد من سياقات المشروع.)
STL الفعال: 50 طريقة محددة لتحسين استخدامك لمكتبة القوالب القياسية بواسطة سكوت مايرز
واحدة من أكثر الجوانب المدهشة في C ++ هي مكتبة القوالب القياسية (STL). إنها إحدى أقوى الميزات ، لكنها قد تكون معقدة للغاية. يقدم هذا الكتاب 50 نصيحة رائعة و 100+ من خوارزميات STL التي تستكشف مناطق مختلفة من STL ، مما يجعلها أكثر سهولة للمطورين الذين بدأوا للتو مع C ++.