< >

كيف أتعلم البرمجة How to learn programming

                    السلام عليكم ورحمة الله وبركاته


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

تعريف البرمجة

البرمجة هي عبارة عن كتابة شيفرة او ما يسمى بمصطلح كود برمجي أي مجموعة من الأوامر يتم ترجمتها وتنفيذها من قِبَل جهاز الحاسوب أو أي جهازٍ إلكتروني آخر و يجري كتابة هذه الأوامر والتعليمات بإحدى لغات البرمجة التي تعتبر الوسيط بين المبرمج و الحاسوب .
لو أردنا أن نقول للحاسوب "اطبع كلمة Hello World واعرضها على شاشة الحاسوب" فسنحتاج هنا إلى لغةٍ مشتركةٍ بيننا وبينه ليفهم ما نبتغيه وهنا يأتي دور لغات البرمجة >

لغة البرمجة

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


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

قد تتسأل يوماُ لماذا هناك العديد من لغات البرمجة ؟ لماذا لا توجد لغة واحدة للتعامل بين المبرمج والحاسوب وللأجابة في الحقيقة ان هناك لغة واحدة يفهمها الحاسوب او معالج الحاسوب وهي الاحاد والاصفار 11100101010 وتسمى هذه اللغة بلغة الآلة وهي التي توجه الاوامر بشكل مباشر الى الحاسوب ليتم تنفيذها .
ولغة الآلة لغة صعبة في كتابتها ليفهمها البشر وحتى لو تم كتابة امر بسيط (كما في بداية اختراع الحاسوب) فسيكون عبارة عن مجموعة ضخمة من الاحاد والاصفار ولن يفهمه غيرك ولا يستطيع احد التعديل عى الشفرة او تطويرها .
وعلى مرور الزمن ونظراً للتطور وسعياً لايجاد لغة يفهمها البشر لتكون الوسيط بينه وبين الحاسوب تم تقسيم لغات البرمجة بناء على قربها من اللغات الإنسانية إلى:
  • لغة عالية المستوى (اقرب الى اللغة التي يفهمها البشر) مثل: السي شارب c#، البايثون python والجافا java.
  • لغة منخفضة المستوى (قريبة من لغة الآلة) مثل: لغة التجميع assembly 

كيف يعمل الكود البرمجي

مثلما عرفنا في السابق ان الحاسوب لا يفهم المبرمج او لغات البرمجة عالية المستوى مثلا لا يفهم الكود البرمجي ("print("hello world ,وانما يفهم فقط لغة الآلة التي هي عبارة عن احاد واصفار , في اللغات البشرية الاعتيادية ( الانكليزية , العربية , الاسبانية ... ) هناك مترجم واحد يقوم بالترجمة بين اللغات البشرية للتواصل , اما في لغات البرمجة هناك نوعان من المترجمات بين اللغات :
  • المترجم (compiler) : من خلال اسمه يتضح جليا أنه يقوم بعملية الترجمة، فهو يقوم بفحص البرنامج المكتوب بلغة البرمجة كاملا، ثم يقوم بترجمته إلى برنامج مكتوب بلغة الآلة لكي تتمكن وحدة معالجة البيانات CPU من تنفيذه و لا يظهر الأخطاء الموجودة في البرنامج المصدري إلا بعد الانتهاء من عملية تحويله إلى لغة الآلة.
  • المفسر (interpreter) : يقوم تقريبا بنفس الدور الذي يقوم به المترجم مع اختلاف بسيط، يتجلى في أن المفسر لا يقوم بتحويل الكود المصدري إلى كود الآلة مباشرة وإنما يقوم بتحويله إلى لغة وسيطة intermediate code، بعد ذلك يتم تحويل كل جزء من أجزاء الكود الناتج إلى لغة الآلة، ثم يتم تنفيذ هذه الأجزاء أمرا بأمر سطر بسطر ، وأي أمر يضم خطأً يؤدي إلى توقيف عملية تحويل الأجزاء المتبقية.

كيف اختار لغة البرمجة التي تناسبني

يعتمد اختيار لغة البرمجة المناسبة على المجال الذي ترغب العمل فيه , وهنا وصف مبسط لمجموعة من المجالات الرئيسية في وقتنا الحالي :
  • مجال الويب او تطوير المواقع : ويهتم هذا المجال بتصميم صفحات المواقع وبرمجتها , واشهر اللغات المستخدمة html,css,javascript,php,asp.net
  • مجال تطبيقات الهواتف : وهذا المجال متخصص ببرمجة وتطوير تطبيقات الاندرويد و الios كل مجال على انفراد او التخصص بتطبيقات الFlutter التي تعمل على كل النظامين ,اشهر اللغات المستخدمة kotlin -java للاندرويد , Swift للios, وdart للFlutter
  • مجال تطبيقات سطح المكتب : ويتخصص هذا المجال ببناء تطبيقات وبرامج سطح المكتب لكل النظامين windows و لينكس , اشهر اللغات البرمجة المستخدمة java - #c -python-visual basic
  • مجال تطوير الالعاب : مجال متخصص ببرمجة الالعاب الالكترونية واشهر محركين للبرمجة وتصميم الالعاب هما Unity و Unreal واشهر اللغات المستخدمة للبرمجة C# , javascript
وهناك مجالات وتخصصات مختلفة مثل تخصص قواعد البيانات والذكاء الاصطناعي والحماية والاختراق الاخلاقي.

الخوارزميات والبرمجة

قد يخيف مصطلح "الخوارزميات Algorithms" لبعض الاشخاص والمتحيرين هل ابدء بالخوارزميات ثم البرمجة او البرمجة ثم الخوارزميات وهنا سنضع مختصر بسيط للخوارزميات في نقاط :
  • تعريف الخوارزميات بالشكل العام : هي مجموعة من الخطوات الرياضية والمنطقية والمتسلسلة اللازمة لحل مشكلة ما, وسميت الخوارزمية بهذا الاسم نسبة إلى العالم أبو جعفر محمد بن موسى الخوارزمي الذي ابتكرها في القرن التاسع الميلادي.
  • الخوارزميات في البرمجة : هي طرق التحليل و التفكير التي عليك اتباعها حتى تتمكن من كتابة الكود بشكل صحيح , والذي عليك ان تعرفه ان الخوارزميات ليست بلغة برمجة .
  • الهدف الرئيسي من الخوارزميات في البرمجة هو التفكير بكتابة الكود الصحيح قبل البدء بكتابته بأي لغة برمجة للوصول الى كود نظيف خالي من المشاكل .
  • والخوارزميات يمكن تمثيلها شكلاً (مخطط انسيابي ) قبل البدء بكتابة الخوارزمية لتبسيط مرحلة كتابة الخوارزمية.

هل الخوارزميات مهمة لتعلم البرمجة

نعم قد تكون مهمة للمبتدئين قبل البدء بتعلم البرمجة , فتعلم الخوارزمية وطريقة تمثيلها وتجربة اكثر من مثال يسهل لك البداية في تعلم البرمجة عن طريق فهم الكود بصورة صحيحة , ولكن هذا لا يعني انها مهمة لدرجة انك لا تستطيع تعلم البرمجة من دونها .

أنا لا أجيد الرياضيات هل أستطيع تعلم البرمجة ؟

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

ماهي اسهل واصعب لغة برمجة

في الحقيقة لا يعتمد تعلمك للبرمجة على مطرح هكذا اسئلة وانما يعتمد على المجال الذي ترغب في السير فيه او المشروع الذي ترغب في عمله وبعد تحديد المجال او المشروع ستتعرف على اللغات التي يتم برمجة المشروع بها او تتعامل مع هكذا مجال , فمثلاً انا احب ان صمم موقعاً ففي هذه الحالة انت مجبر لان تبدء بتعلم لغات المواقع Html css js php mysql .

Hello MR ROBOT
وفي نهاية هذه المقالة سنوضح لكم كود لطباعة كلمة "Hello MR ROBOT" باشهر لغات البرمجة والترميز :
kotlin
fun main(args: Array<String>) {
    println("Hello MR ROBOT")
}
java
class HelloWorldApp {
    public static void main(String[] args) {
        System.out.println("MR ROBOT!"); 
    }
}
C#
using System;
class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("HellO, MR ROBOT!");
    }
}
C++
#include <iostream>
int main()
{
    std::cout << "Hello, MR ROBOT!\n";
    return 0;
}
C
#include <stdio.h>
int main(void)
{
    printf("hello, MR ROBOT\n");
}
JavaScript
console.log("Hello MR ROBOT!");
MATLAB
classdef hello
    methods
        function greet(this)
            disp('Hello, MR ROBOT')
        end
    end
end
php
<?php
 echo 'Hello, MR ROBOT!';
?>
Python
print("Hello MR ROBOT")
Swift
println("Hello, MR ROBOT!")
Dart
main() {
  print('Hello MR ROBOT!');
}


اتمني ان اكون ذكرت كل شئ 

لا تنسا متابعتنا ليصلك كل جديد


TAG

عن الكاتب :

ليست هناك تعليقات

إرسال تعليق

الاسم

بريد إلكتروني *

رسالة *