أسهل لغات البرمجة للمبتدئين: ابدأ رحلتك البرمجية بدون تعقيد!

 

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

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

السؤال الثاني سيكون: ما نوع البرمجة التي ترغب في تعلُّمها أو العمل بها؟ عليك أن تفكر في التخصص والمجال الذي تنوي دخوله. هل ترغب في الحصول على وظيفة مطور ويب خلفي (Back-end Developer) أم مهندس برمجيات (Software Engineer)؟ أو ربما ترغب في العمل بمجال كالذكاء الاصطناعي (AI) أو إحدى التقنيات الحديثة الأخرى؟ الإجابة عن هذا السؤال ستساعدك بالتأكيد على اختيار مسار التعلم المناسب واختيار لغة البرمجة الأفضل بالنسبة لكل مجال. لكن قبل أن ندخل في لغات البرمجة، دعنا نعرفك بأهم المجالات والتخصصات المرتبطة بالبرمجة في الوقت الراهن.

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

هناك عدّة تخصصات في مجال البرمجة (1)، لكن دعنا نتحدث عن أشهرها، على سبيل المثال هناك تخصص مطور البرمجيات (Software Developer) الذي يتولى تصميم وبناء واختبار البرمجيات المختلفة، سواء كانت تطبيقات تعمل على أجهزة الحاسب الشخصي مثل برنامج “Photoshop”، أو حتى تطبيقات الهواتف الذكية مثل تطبيق إنستغرام أو فيسبوك أو تويتر. بينما مهندس البرمجيات (Software Engineer) هو الذي يطبق مبادئ هندسة البرمجيات لتصميم وتطوير واختبار وصيانة وتقييم برامج الحاسوب المختلفة.

ثم نجد مطور واجهة الويب الأمامية (Front-end) الذي يتولى برمجة كل ما يظهر أمامك على مواقع الإنترنت التي تتصفحها يوميا، إذ يكتب الكود البرمجي الذي يأمر المتصفح بعرض معلومات محددة وكيفية عرضها. بينما هناك مطور الويب الخلفي (Back-end) الذي يتولى كل ما يحدث في الكواليس، عند تصفحك لأي موقع هناك حسابات وتفاعلات لا تعرفها، وهي ما يُطلق عليها الواجهة الخلفية للموقع، هنا يُكتب المطور الكود البرمجي الذي يحدد طرق التواصل بين تطبيقات تلك الواجهة وبين قواعد البيانات والخوادم الخاصة بالموقع. مَن يجمع بين التخصصين يُعرف بمطور الويب المتكامل (Full-Stack Developer)، ويمكنه بناء كلٍّ من الواجهة الأمامية والخلفية لمواقع الويب. وبهذا يملك القدرة على صياغة كل العناصر التي يراها المستخدم العادي، وكذلك الجزء الحسابي المتعلق بالبيانات والخوادم.

ولا ننسى الإشارة إلى مطور الألعاب الذي يصمم ويكتب أكواد الألعاب للمنصات المختلفة، مثل الحاسب الشخصي والمنصات المنزلية (بلايستيشن وإكس بوكس)، وقد يتضمن تخصصه تصميم الشخصيات داخل اللعبة، وميكانيكا اللعبة نفسها، وواجهة المستخدم “User Interface”.

كذلك هناك تخصصات برمجية تتعلق بالأنظمة وقواعد البيانات، أشهرها محلل الأنظمة (Systems Analyst)، وهو مَن يفحص أنظمة البرمجيات عبر اختبار البنية الهندسية لتكنولوجيا المعلومات، ويوصي بتطويرها ببعض الحلول والوسائل المختلفة. وكذلك مطور قواعد البيانات (Database Developer) الذي يطور ويحافظ على أنظمة قواعد البيانات، ويعمل مع مهندس البرمجيات لتحديد متطلبات البيانات لكل مشروع، ومنها يبدأ في إنشاء قواعد البيانات وفقا لذلك.

تصنيف لغات البرمجة

توجد المئات من لغات البرمجة، كل لغة فريدة من نوعها، ومتميزة في الهدف منها وما يمكن أن تقدمه، لكن بعض اللغات أسهل في التعلم من غيرها، لذا من الأفضل أن تبدأ بها لأنها ستكون أسرع طريقة لتعلم أساسيات البرمجة.

في البداية سنحتاج إلى توضيح أن لغات البرمجة تنقسم إلى فئتين رئيسيتين (2): الأولى هي اللغة منخفضة المستوى (Low-Level Language)، أو اللغة الأصلية للحاسوب، وهي قريبة جدا من كتابة تعليمات الآلة الفعلية، أي نظام العد الثنائي 0 و1، وتتعامل مع مكونات أجهزة الحاسوب الداخلية أو قطع الهاردوير، ولا يمكن للإنسان قراءة التعليمات البرمجية بها، وغالبا ما تكون مشفّرة.

بينما الفئة الثانية هي اللغة عالية المستوى (High-Level Language)، التي تتيح كتابة البرامج بغض النظر عن نوع الحاسوب أو الهاردوير، وهي تحمل اسم “عالية المستوى” لأنها أقرب إلى اللغات البشرية ويمكن فهمها بسهولة. تحتاج هذه الفئة من اللغات إلى مترجم برمجي (compiler) لترجمتها إلى لغة منخفضة المستوى كي تفهمها الآلة. يركز بعض تلك اللغات على البنية الهيكلية، في حين أن بعضها يكون تفاعليا ويؤدي وظائف معقدة أكثر. وعادة ما تكون اللغات عالية المستوى أسهل للمبتدئين في التعلم، وهي ما سنرشحه هنا لبداية رحلتك في تعلم البرمجة.

منصة “Stack Overflow”، وهي بمنزلة موقع التواصل الاجتماعي الأشهر للمبرمجين حول العالم، تُجري استبانة سنويا لمَن يعملون بمجال البرمجة بهدف تحديد أكثر التقنيات واللغات التي يستخدمونها، وبعض المعلومات المهمة الأخرى بالمجال مثل الإنتاجية والرواتب. اختيارنا لترشيح لغات البرمجة هنا جاء بناء على ترتيب أكثر اللغات استخداما لمَن يتعلمون البرمجة في آخر استبانة للمنصة هذا العام 2022. وقد جاءت لُغتا HTML/CSS في المركز الأول، باختيار أكثر من 62% ممن بدأوا تعلُّم البرمجة (3).

لغتا HTML/CSS

يمكننا اعتبار لغة توصيف النص التشعبي، أو “HTML” هي  أساس الإنترنت (4). من الناحية التقنية، لا تُعَدُّ “HTML” لغة برمجة، لكنها لغة توصيف، أي تُستخدم لوصف صفحات الويب بالنص العادي، بمعنى أنها مسؤولة عن تنسيق شكل المعلومات على مواقع الإنترنت.

عندما تفتح صفحة “ميدان” مثلا، فعادة ما تراه هو مستند “HTML” يقدمه متصفحك، الأقسام والعناوين الفرعية والروابط والفقرات في صفحة المقال هنا كلها جزء من نطاق “HTML”. ستجدها في كل مكان من حولك على مواقع الإنترنت، لذا إن كنت ستبدأ رحلتك لعالم البرمجة فستحتاج أولا إلى فهم لغة “HTML”، خاصة أنها سهلة التعلم للمبتدئين.

من المهم الإشارة أن لغة “HTML” تتحكم في المحتوى الذي سيظهر أمامك داخل الصفحة هنا، لكنها لا تؤثر على كيفية ظهور هذا المحتوى. هنا يأتي دور الأخت المغمورة لها وهي لغة “CSS”، وهي تتعامل (5) ببساطة مع تصميم صفحات “HTML”، ألوان صفحة المقال وحجمها والخطوط وحتى شكل الصفحة بأكملها. لغة “CSS” لا تُعَدُّ أيضا لغة برمجة، لكنها مجموعة من القواعد المطبقة على صفحات “HTML”.

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

لغة جافاسكربت (JavaScript)

عند ذكر لغة جافاسكربت (JavaScript) ستجد أنها تتيح لك القيام بالكثير. إن أمكننا تشبيه موقع الويب بالإنسان، فإن صفحات “HTML” ستكون الهيكل العظمي الذي يُمسك بجسم الإنسان ويمنحه هيئته العامة، بينما ستكون “CSS” هي الجسد الخارجي وكل ما يمنح الإنسان مظهره وشكله، في حين أن “JavaScript” ستكون هي العقل.

يمكنك أن تستخدم “جافاسكربت” أي شيء عند تصميم وبناء موقع الويب، فهي تحول صفحات الويب الثابتة إلى صفحات نشطة، وتتحكم في تحريك عناصر الصفحة، وتتفاعل مع حركات المستخدم المختلفة داخلها. أبسط مثال لذلك هو عندما يظهر لك شريط “عاجل” باللون الأحمر أثناء تصفحك موقع الجزيرة. تُستخدم لغة جافاسكربت في تطوير 98% من واجهة مواقع الويب الأمامية، أي الواجهة التي تراها عندما تتصفح أي موقع (6)، وفي استبانة منصة “Stack Overflow” نفسها، تأتي جافاسكربت في المركز الثاني من حيث الاستخدام لكل المطورين بأكثر من 65%، وهذا للسنة العاشرة على التوالي (7).

لغة بايثون (Python)

لغة بايثون (Python) هي لغة برمجة متعددة الأغراض، أطلقها المبرمج الهولندي “جيدو فان روسم” عام 1991، وتُعَدُّ واحدة من أسهل اللغات للتعلم بالنسبة للمبتدئين، بسبب تركيبتها وواجهة الاستخدام السهلة، إذ يمكن قراءة كثير من أكواد بايثون مثل قراءة اللغة الإنجليزية، مما يساعد المبتدئين على تعلم المفاهيم الأساسية في اللغة (8). تُستخدم لغة بايثون على نطاق واسع لتطوير تطبيقات الويب، مواقع شهيرة مثل يوتيوب و انستقرام بنترست صُممت باستخدام لغة بايثون.

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