السلام عليكم ورحمه الله وبركاته في هذا الدرس إن شاء الله سوف نتعرف على عدة أساسيات و مواضيع مهمة قبل البدء بكتابة أول كود لك هذا الدرس مقسم إلى عدة أقسام و الأن لنبدء مع أول قسم

ما الفرق بين text editor و IDE؟

السلام عليكم ورحمة الله تعالى وبركاته في هذا المقال سنتحدث عن الفرق بين text editor و ide Ide إختصار لكلمة integrated development environment يعني بيئة متكاملة يوفر لك أشياء جاهزة مثل تنسيق الكود وتشغيل الكود و الكثير من الإضافات بدون تنزيلها كما يحدث في text editor الفرق بينهم في هذه النقطة محرر النصوص عند تشغيله أول مرة لا يتوفر مثلا على إضافة تنسيق الكود يجب تنزيلها لتشتغل بها خلافا لل ide كل شيء فيه متكامل مثال واقعي "هذا ما وجدته في مخي أتمني يوضحك لكم الفرق" نتخيل لدينا قطعة أرض فقط يمكننا وضع فيها الجزر هي قطعة صغيرة جدا مثلا نريد إضافة الطماطم ماذا نحتاج أكيد نحتاج لقطعة أخرى متلا سوف نشتري قطعة أرض أخرى لوضع الطماطم هذه هي extension التي تحملها أو الإمتدادات التي تحملها من المحرر وهذه الإمتدادات هي الأرض التي نشتريها لتنفد لنا مهمة إضافية غير التي موجودة لدينا وهي وضع الطماطم أما بالنسبة لل ide فهي بسيطة جدا في ide تلك القطعتين من الأرض متوفرة في الأول لا تحتاج لشراء قطعة أرض أخرى أو أي شيء من هذا القبيل أتمني أن يعجبكم المقال
هنا كمى ترى صورة للفرق مابين text editor and IDE من خلال مقارنة visual studio and vs code visual studio: عبارة عن IDE visual studio code: عبارة عن text editor

هل ضروري أن أتعلم كل شيء في لغة معينة؟

لا ولكن هل هذا يعني ألا أتعمق في اللغة عذر غير مقبول ضروري تتعمق في اللغة التي أعطيتها وقتك نرجع إلى السؤال هل ضروري لا مثال باللغة العربية عندما أريد طلب وجبة معينة هل ضروري اتعلم كلمات اللغة كلها لطلب وجبة لا فقط الكمات الشائعة والمستعملة كثيرا في لغة HTML مثلا هل أحتاج لتعلم 30 ألف وسم لبناء هيكل الموقع لا فقط الأوسمة الشائعة مثل div p h1... وغيرها.

لماذا هناك الكثير من لغات البرمجة؟

قد تذهب لمجال البرمجة وتجد العديد من اللغات و تحتار هل أتعلم كل هذه اللغة لماذا كل هذه اللغات وتفشل سأعطيك مثال واقعي لماذا تعدد لغات البرمجة تخيل تريد الذهاب في نزهة مع عائلتك أنتم أربعة أفراد هناك دراجة وسيارة وشاحنة إذا سألت بماذا ستأخدهم ستقول لي بالسيارة لأنها مناسبة أما الدراجة صعبة والشاحنة يعني نريد الذهاب في نزهة من غير المنطقي أن نستعمل شاحنة ونريد أن نصل بسرعة الشاحنة بطيئة ولكن ستقلنا, هنا أين الإختلاف؟ كلهم وسائل نقل يؤدون نفس المهام و متعددون ولكن كل وسيلة نستعملها في مكانها المناسب رغم التعدد إلى أن كل وسيلة مناسبة وتأدي الغرض وسهلة وسريعة نفس الشيء بالنسبة للغات البرمجة.

ماهي برمجة وكود؟

أولا ماذا نعني بكود هو مجموعة من التعليمات تكتبها لتنفيد مهمة معينة وأيضا هي وسيلة للتواصل مع الحاسوب كيف لم أفهم كيف يعني أتواصل مع الحاسوب مثلا لنفترض ذهبت إلى اليابان تحتاج إلى تعلم لغتهم لكي تتواصل معهم وتنفد مهامك نفس الشيء بالنسبة للحاسوب ضروري لغة للتواصل معه وتنفيد مهمة معينة هنا الحاسوب لا يفهم سوى 01 لغة الآلة أنت تكتب باللغة الإنجيليزية ومجموعة من الرموز اللغات التي تكتب بالإنجليزية وقريبة من لغة البشر تسمى لغات عالية المستوى الآن قلنا أن الحاسوب لا يفهم سوى 01 لا يفهم اللغة التي نكتب بها ممم مثلا ذهبت للصين أنت لا تعرف التحدث باللغة الصينية ولا حتى حرف واحد إذا ياعبقري ماذا نحتاج , نحتاج إلى مترجم نفس الشيء بالنسبة يكون هناك وسيط يترجم من لغة عالية المستوى إلى لغة الآلة يعني 01 ويسمى compiler.

ماهو syntax

الـsyntax في البرمجة هي عبارة عن مجموعة من القواعد التي يجب اتباعها عند كتابة الشفرة البرمجية. تتحكم الـsyntax في كيفية ترجمة الشفرة البرمجية إلى لغة الآلة وتحديد ما إذا كانت الشفرة صالحة أم لا، وذلك باستخدام قواعد معينة.

أنواع لغات البرمجة و ٱستخدامات كل لغة

لغات البرمجة العامة:
تشمل هذه اللغات العديد من اللغات التي تستخدم لأغراض عامة، مثل C وC++ وJava وPython وPHP، وغيرها. تستخدم هذه اللغات لتطوير تطبيقات الويب والمواقع والتطبيقات المحمولة والألعاب والبرامج الحاسوبية والذكاء الاصطناعي وغيرها.

لغات البرمجة المتخصصة:
هذه اللغات تستخدم لأغراض محددة ومخصصة، مثل SQL والتي تستخدم لإدارة قواعد البيانات، وMATLAB والتي تستخدم للحسابات العلمية والهندسية، وR والتي تستخدم للتحليل الإحصائي، وغيرها.

لغات البرمجة الوظيفية:
تستخدم هذه اللغات لتطوير تطبيقات معينة وتعتمد على الدوال والتعابير بشكل أساسي، مثل Lisp وHaskell وErlang وغيرها.

لغات البرمجة النصية: تستخدم هذه اللغات لتطوير السكريبتات البرمجية الصغيرة والتي تستخدم في تحسين العمليات اليومية والتي تعتمد على النصوص، مثل JavaScript وPerl وRuby وغيرها.

لغات عالية المستوى و منخفضة المستوى

يوجد في عالم البرمجة لغتين رئيسيتين: لغات عالية المستوى (High-level languages) ولغات منخفضة المستوى (Low-level languages).
اللغات عالية المستوى:
هي لغات برمجة تم تصميمها لتكون سهلة الاستخدام والفهم من قبل المبرمجين، وتسمح لهم بالتركيز على المشكلة التي يحاولون حلها دون الحاجة للتفكير في تفاصيل تنفيذ الأوامر على المستوى الآلي. ومن أمثلة هذه اللغات: Python وJava وC# وPHP وJavaScript وغيرها.

اللغات منخفضة المستوى:
هي لغات برمجة تم تصميمها لتكون أقرب إلى لغة الآلة والأجهزة، وتمكن المبرمجين من التحكم الكامل في الأجهزة والموارد التي يعملون عليها. وتتطلب هذه اللغات معرفة أكبر بتفاصيل تشغيل الحاسوب وتنفيذ الأوامر على المستوى الآلي. ومن أمثلة هذه اللغات: لغة التجميع (Assembly language) وC وC++.

كيف يترجم الحاسوب لغات البرمجة

تترجم لغات البرمجة إلى لغة الآلة (Machine language) التي يمكن للحاسوب فهمها وتنفيذها. ويتم ذلك عادةً بواسطة برامج تسمى مترجمات (Compilers) أو مفسرات (Interpreters) أو مترجمات منخفضة المستوى (Assembler).
المترجم (Compiler):
هو برنامج يقوم بترجمة كامل الكود المكتوب في لغة البرمجة إلى لغة الآلة في ملف تنفيذي (Executable file) يمكن تشغيله مباشرة على الحاسوب. عند كتابة الكود، يتم تحويله إلى لغة الآلة بشكل كامل وحفظه في الملف التنفيذي. ومن أمثلة المترجمات: GCC للغة C وC++ وJava Compiler للغة جافا وغيرها.

المفسر (Interpreter):
هو برنامج يقوم بتنفيذ الكود المكتوب في لغة البرمجة بشكل مباشر، ولا يتم ترجمة الكود كاملاً مثل المترجم. بدلاً من ذلك، يتم ترجمة وتنفيذ الأوامر في الكود بشكل تدريجي أثناء تشغيل البرنامج. ومن أمثلة المفسرات: Python Interpreter وPHP Interpreter وغيرها.

المترجم منخفض المستوى (Assembler):
هو برنامج يقوم بترجمة الكود المكتوب في لغة التجميع (Assembly language) إلى لغة الآلة. تعتبر لغة التجميع أقرب إلى لغة الآلة من لغات البرمجة العالية المستوى، ويتم استخدامها في البرمجة المنخفضة المستوى، مثل تطوير برامج التشغيل (Drivers) للأجهزة الإلكترونية. ومن أمثلة المترجمات المنخفضة المستوى: NASM وTASM وMASM وغيرها.