شعار قسم ميدان

أسهل لغات البرمجة للمبتدئين.. كيف تبدأ رحلتك في عالم البرمجة؟

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

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

السؤال الثاني سيكون: ما نوع البرمجة التي ترغب في تعلُّمها أو العمل بها؟ عليك أن تفكر في التخصص والمجال الذي تنوي دخوله. هل ترغب في الحصول على وظيفة مطور ويب خلفي (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".

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

فيما يلي قائمة بمساقات مبسطة لتعلم لغتي HTML/CSS:

  1. Learn HTML: What You Need to Know Before Starting to Code
  2. HTML Full Course – Build a Website Tutorial
  3. HTML Tutorial
  4. CSS
  5. CSS Tutorial
  6. Intro to HTML/CSS: Making webpages

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

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

(بيكسابي)

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

لذا إن كنت مهتما بتطوير مواقع الويب فإن تعلم لغة جافاسكربت هي الخطوة التالية بعد تعلم اللغتين السابقتين HTML/CSS.

وفيما يلي قائمة بمساقات مبسطة لتعلم لغة جافاسكربت:

  1. JavaScript Programming for Absolute Beginners in 2022
  2. Learn JavaScript – Full Course for Beginners
  3. Learn JavaScript by Building 7 Games – Full Course
  4. The Complete JavaScript Course 2022: From Zero to Expert!
  5. JavaScript Tutorials and Courses
  6. JavaScript Tutorial
  7. Learn JavaScript

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

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

(بيكسابي)

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

وفيما يلي مساقات مبسطة لتعلم لغة بايثون:

  1. Python Tutorial
  2. Python Tutorials and Courses
  3. Learn Python: Python Programming for the Absolute Beginner
  4. Learn Python – Full Course for Beginners [Tutorial]
  5. Learn Python

لغة جافا (Java)

لغة جافا (Java) واحدة من أشهر لغات البرمجة، التي بدأت منذ عام 1995، وهي مملوكة لشركة "أوراكل" (Oracle) (9). ومثل لغة بايثون، من السهل قراءة وفهم البرمجة بلغة جافا، كما يمكن التعامل مع المهام المعقدة بواسطة أمر برمجي واحد، وهي من لغات البرمجة الموجهة نحو العناصر (Object-oriented programming – OOP)، ومن مزاياها أنها تسمح بإعادة استخدام الأكواد البرمجية السابقة باستدعائها في البرامج الأخرى دون الحاجة إلى إعادة برمجتها من البداية، وبهذا يسهل بناء البرامج سريعا وفي وقت قصير، مما يقلل من تكاليف التطوير.

ومع سهولة استخدامها وتعلمها، تتميز أيضا بتوفير الأمان، ويمكنها التعامل مع كميات هائلة من البيانات، لذا تُستخدم مع تطبيقات البيانات الكبيرة (Big Data). هذه المزايا تجعل لغة جافا لغة مثالية لقطاع التكنولوجيا المالية (Fintech)، وغالبا ما تُستخدم في صناعات مثل الخدمات المصرفية وسوق الأوراق المالية والبورصة. كما تشتهر باستخدامها في تطبيقات الهواتف الذكية خاصة تطبيقات نظام أندرويد.

تنوع استخدامات اللغة وهو أهم ما يميزها، تُعرف لغة جافا بأنها لغة "اكتب مرة واحدة، شغّل في أي مكان" (Write-once, run-anywhere)، لأنها تعمل ببساطة على أي نظام تشغيل، بغض النظر عن النظام الأول الذي استخدمه المبرمج لكتابة الكود الأصلي، سواء كان نظام ويندوز أو لينكس أو حتى أندرويد. لهذا تُستخدم لبرمجة التطبيقات، ليس فقط للهواتف الذكية وأجهزة الحاسوب، ولكن أيضا للمعالجات وأجهزة الاستشعار عن بُعد، ومجموعة مختلفة من المنتجات الاستهلاكية الأخرى. يوجد اليوم أكثر من 3 مليارات جهاز يعمل بتطبيقات مُصممة بلغة البرمجة جافا.

هذه قائمة بمساقات مبسطة لتعلم لغة جافا:

  1. Learn Java
  2. Java Tutorial
  3. Learn Java Online

لغة SQL

(شترستوك)

لغة "SQL" أو لغة قواعد البيانات، هي لغة قياسية للوصول إلى قواعد البيانات ومعالجتها، طورتها شركة "IBM" في السبعينيات. يمكن استخدامها لتحديث وتخزين واستعادة البيانات من قواعد البيانات المختلفة، وهي كذلك معيار لأنظمة إدارة قواعد البيانات، وفقا لاعتماد المعهد القومي الأميركي للمعايير (ANSI) منذ عام 1986 (10).

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

مساقات مبسطة لتعلم لغة SQL:

  1. Learn SQL: What You Should Know About SQL Before Getting Started
  2. Learn SQL
  3. SQL Tutorial

لغتي C++/C

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

(شترستوك)

بينما لغة ++C هي تحديث للغة C، تشبهها في الأساسيات لكن مع إضافة العناصر، وهي إضافة تجعل استخدامها في التطبيقات المعقدة أسهل. لغة ++C سريعة ومستقرة، وتوفر ميزة تُسمى مكتبة القوالب القياسية (STL – Standard Template Library)، وهي مجموعة من المكتبات الجاهزة للاستخدام لمختلف هياكل البيانات والعمليات الحسابية والخوارزميات (11).

تملك اللغتان حضورا كبيرا في عالم البرمجة، إذ تُستخدمان في جميع الأنظمة الأساسية تقريبا، مثل أنظمة التشغيل وأنظمة الملفات. إن كنت ترغب في العمل مبرمجا للأنظمة فإنهما وسيلتك لدخول هذا المجال.

مساقات لتعلم لغتي C++/C:

  1. Learn C
  2. C Tutorial
  3. Learn C++
  4. C++ Tutorial

لغة C#

لغة #C، وتُنطق "C-Sharp"، هي لغة برمجة متعددة الأغراض ومن فئة اللغات الموجهة نحو العناصر، طورتها شركة مايكروسوفت وظهر أول إصدار لها عام 2002، ولها أصول من عائلة لغات C أيضا، لكنها تشبه لغة جافا أكثر (12). تُستخدم غالبا لبرمجة الواجهات الخلفية، وتطبيقات أجهزة الحاسوب، وبرمجيات المؤسسات، والأكثر شهرة في تطوير ألعاب الفيديو باستخدام محرك الألعاب الشهير "Unity".

إن كنت تنوي الدخول لعالم تطوير الألعاب، فيمكنك البدء بتعلم لغة #C، وإن كنت ستستخدم لغة ++C معها فستحتاج إلى تعلمها أولا، لأن هذا سيسهل عليك فهم لغة #C ويساعد في تسريع عملية التعلم.

مساقات لتعلم لغة C#:

  1. Learn C#
  2. C# Tutorial – Full Course for Beginners
  3. C# Tutorials and Courses
  4. C# Tutorial

______________________________________________

المصادر:

المصدر : الجزيرة