ماهي البرمجة
ما هي البرمجة، مفهوم البرمجة، تعريف البرمجة، الهدف من تعلم البرمجة، كيف تتعلم البرمجة، وماهي الأجهزة القابلة للبرمجة، تعريف البرنامج، تعريف الخوارزمية، أنواع البرامج أو التطبيقات
تعريف البرمجة
البرمجة بالإنجليزية Programming أو Scripting، والبرمجة هي عملية إنشاء أو كتابة التعليمات أو الأوامر لكي يتم تنفيذها من قبل المتلقي، والمتلقي هو أي جهاز قابل للبرمجة.
ويمكن تعريف البرمجة على أنها وسيلة للتواصل بين البشر (المبرمج) والآلة (والتي تتمثل في أي جهاز قابل للبرمجة)، حيث إعتاد البشر على إستخدام اللغات المختلفة مثل اللغة العربية أو الإنجليزية للتواصل فيما بينهم، فقد تم إبتكار مجموعة من اللغات الأخرى (لغات البرمجة) للتواصل بين البشر والآلة، وكما هو الحال بين البشر اللذين يتحدثون بلغات مختلفة حيث يتم إستخدام مترجم ليتمكن البشر من فهم اللغات المختلفة، يتم ذلك أيضا بين البشر والآلة حيث يتم ترجمة لغة البرمجة (التي يفهمها البشر) إلى لغة الآلة والتي تتمثل في الصفر والواحد أو كما تعرف بـ النظام الثنائي وهي اللغة التي تفهمها الآلة عن طريق إستخدام برامج مخصصة لذلك مثل المترجم Compiler أو المفسر Interpreter.
ما هي الأجهزة القابلة للبرمجة؟
عادة ما يتم كتابة الأوامر البرمجية عن طريق جهاز الحاسوب، ولكن بعد ذلك يمكنك نقل وتشغيل البرنامج على أي جهاز آخر، مثل:
- جهاز الحاسوب.
- الهاتف الجوال (الموبايل).
- الإنسان الآلي (الروبوت).
- التلفزيونات الذكية.
- مشغل الألعاب، مثل XBox و Playstation.
- السيارات الحديثة.
- أي جهاز إلكتروني يحتوي على وحدة معالجة مركزية CPU، أو وحدة تحكم Microcontroller.
ماهو الهدف من البرمجة؟
الهدف الرئيسي من البرمجة هو إستخدام آلة أو جهاز واحد فقط للقيام بعدة مهام، حيث يمكن إستبدال بعض العتاد أو كما يعرف بـ Hardware بمجموعة من البرامج بشرط إحتواء الآلة المستخدمة على وحدة للمعالجة المركزية وأن تكون هذه الوحدة قابلة للبرمجة، وبذلك لن تكون بحاجة لإستخدام آلة لتجمع رقمين، وآلة أخرى لتعمل كمنبه، وآلة أخرى لتعرف الوقت، وأخرى للإتصال، وأخرى ... .
كيف أتعلم البرمجة؟
في البداية يجب التيقن بأنه يمكن لأي شخص أي كانت إمكانياته، أن يتعلم البرمجة، ولكي تتعلم البرمجة فأنت تحتاج إلى شيئين رئيسيين، بخلاف أنك تمتلك جهاز حاسوب، وهما:
- أن تقوم بتوسيع تفكيرك أو ما يعرف بـ Growth Mindset، فعلى سبيل المثال تخبر نفسك بأنه يمكنك أن تفعل شيء ما، على عكس أن تقول أن إمكانياتك لا تسمح بالقيام بهذا الشيء.
- أن تقوم بتطبيق ما تتعلمه بإستمرار، ويفضل أن تقوم بالتطبيق مع مدرب أو معلم.
وبالإضافة إلى ذلك يجب أن تعرف أن تعلم البرمجة ليس بالأمر الهين، فهي تأخذ وقت وجهد كبير حتى تصبح مبرمج محترف.
ماهي أفضل طريقة لتعلم البرمجة؟
لاتوجد طريقة واحدة مناسبة لجميع الأشخاص، ولكن في المجمل، معظم من تعلموا البرمجة بدأوا بمشاهدة دورات على الإنترنت، سواء كانت دورات عربية أو أجنبية، ويوجد الكثير منها، وذلك إذا كانت البرمجة ليست ضمن تخصص الدراسة.
وأيضا يمكنك قراءة بعض الكتب الخاصة بالبرمجة، أو قراءة المستندات الرسمية (Documentation) لأي لغة برمجة ترغب في تعلمها، وأي كانت الطريقة التي ستبدأ بها يجب أن تعلم أنه عاجلا أو آجلا سوف تلجأ لقراءة المستندات الرسمية للغات البرمجة.
وقد خصصت مقالة منفصلة للإجابة على هذا التساؤل وهي كيف تبدأ تعلم أساسيات لغات البرمجة من الصفر، وقد حاولت خلال هذه المقالة شرح أفضل طريقة من وجهة نظري لكي تتعلم البرمجة بشكل جيد من الصفر إلى الإحتراف.
ويتبقى أن نتعرف على بعض المفاهيم المتعلقة بالبرمجة، وهي كالتالي
تعريف البرنامج
البرنامج بالإنجليزية Program، والبرنامج هو عبارة عن مجموعة من الأوامر أو التعليمات البرمجية تسمى الخوارزميات، وهذه الأوامر يتم كتابتها بأي لغة برمجة ثم يتم ترجمتها أو تحويلها إلى لغة الآلة، حتى تتمكن الآلة من تنفيذ الأوامر أو بإختصار تشغيل البرنامج.
يتم تحويل الأوامر البرمجية إلى لغة الآلة عن طريق إستخدام برامج متخصصة مثل المترجم Compiler أو المفسر Interpreter، ويتم تحديد البرنامج المستخدم طبقا لتصنيف لغة البرمجة المستخدمة أو بمعنى آخر لإنتماء لغة البرمجة لأي نوع من أنواع لغات البرمجة.
تعريف الخوارزمية
الخوارزميات تعرف بالإنجليزية بـ Algorithms، وتعرف أيضا بـ حل المشكلات - Problem Solving، ومن خلال هذا المسمى يمكنك تعريف الخوارزمية بأنها مجموعة من الخطوات التي يتم تطبيقها على مجموعة من البيانات المتاحة والتي تعرف بـ المدخلات - Inputs، لتحصل منها على نتيجة (حل المشكلة) وهو ما يعرف بـ المخرجات - Output، وهذه الخطوات ببساطة هي الخوارزمية.
أنواع البرامج
يمكن تصنيف البرامج إلى أربعة أصناف أو أنواع رئيسية، وهي كالتالي:
البرامج الأصلية/المحلية - Native Applications
وهي البرامج المستقلة التي لا تعتمد على أي برامج أخرى، والتي تمتلك واجهة ليتفاعل معها المستخدم، ويتم تشغيلها مباشرة من جهاز المستخدم، سواء كان جهاز حاسوب أو موبايل أو أي جهاز آخر.
ومن أمثلة هذه البرامج برنامج متصفح الإنترنت، برنامج معالجة النصوص Word، برنامج مشغل الموسيقى، برنامج معالجة الصور Photoshop، محرر الأكواد البرمجية، وغيرها من البرامج.
البرامج الخفية - Daemon Applications
وهي البرامج التي تعمل بشكل مستمر في الخلفية، والتي لا تمتلك واجهة لتفاعل المستخدم.
ومن أمثلتها تعريفات العتاد الخاص بالحاسوب، وبرنامج تحديث نظام التشغيل، والبرنامج الخاص بـ خادم الويب، وغيرها الكثير من البرامج الخفية.
برامج الويب - Web Applications
وهي البرامج التي تحتوي على صفحة ويب أو أكثر، والتي تم تصميمها ليتفاعل معها المستخدم، والتي تعمل بداخل أي برنامج متصفح انترنت.
ومن أمثلتها البرنامج الخاص بإدارة حسابك البنكي (على موقع البنك الإلكتروني)، والبرنامج الخاص بإدارة البريد الإلكتروني مثل Gmail أو Yahoo، أو أشهرها وأكثرها إستخداما برنامج Google Sheets، و Google Docs.
التطبيقات الصغيرة - Applets
وهي البرامج الصغيرة الحجم والتي عادة ما تقوم بتأدية مهمة واحدة أو عدة مهام بسيطة، وفي معظم الأحيان تعمل هذه التطبيقات من خلال برامج أخرى.
ومن أمثلة هذا النوع من البرامج، البرامج التي تعمل من خلال موجه الأوامر الـ CMD أو الـ Terminal، فعندما تكتب الأمر ping على سبيل المثال فإن موجه الأوامر يقوم بتشغيل الـ Applet المسمى بـ ping لتعرف منه حالة إتصالك بموقع معين، ومن أمثلتها أيضا برنامج مشغل الفلاش على المتصفح، فهو برنامج صغير يتم تنصيبه ليساعد في فتح ملفات الـ Flash الموجودة في المواقع الإلكترونية.