لوحة المتصدرين
المحتوى الأكثر حصولًا على سمعة جيدة
المحتوى الأعلى تقييمًا في 05/31/23 in مقالات البرمجة
-
تتنوع لغات البرمجة في أهدافها واستخداماتها، وتتباين فيما بينها في درجة السهولة، فمن لغات البرمجة ما هو سهل التعلم ويستخدم صيغًا مفهومة تحاكي اللغة الطبيعية للتعبير عن التعليمات البرمجية المختلفة، ويتبع قواعد مرنة ومتساهلة مع الأخطاء، ومنها ما صعب التعلم ويملك مفردات صعبة وتراكيب لغوية مقعدة. ونظرًا لوجود المئات من لغات البرمجة المختلفة ومتنوعة الاستخدامات، قد تقع في حيرة من أمرك و تروادك الكثير من التساؤلات مثل: سنحاول في هذا المقال أن نجيبك على كافة هذه التساؤلات، من خلال تسليط الضوء على أسهل لغات برمجة التي يمكنك تعلمها في بداية مشوارك البرمجي، ونوضح أبرز مجالات استخدام كل لغة منها، ونختم المقال بجملة من النصائح التي تساعدك على تعلم البرمجة. ما هي البرمجة؟ قبل البدء في تعلم البرمجة، من المهم أن تعرف ما معنى البرمجة، ولم يجب عليك تعلمها؟ وما الذي يمكنك القيام به في حال تعلمت إحدى لغات البرمجة؟ قد تبدو لك كلمة البرمجة معقدة وصعبة لكنها في الواقع ليست كذلك. فالبرمجة بأبسط تعريف هي عملية التواصل بينك وبين جهاز الحاسوب لتطلب منه حل مشكلة ما أو تنفيذ مهمة معينة، ومن خلال البرمجة يمكنك إرسال الأوامر والتعليمات للحاسوب لينفذها لك. فأجهزة الحاسوب بارعة وسريعة بتنفيذ التعليمات وما تُلقَّن به وعاجزة عن التصرف من تلقاء نفسها، وتحتاج لمن يرشدها لما يجب عليها القيام به، وهي لا تفهم إلا لغة الآلة الثنائية المكونة من أصفار وواحدات فقط وهي لغة غير مقروءة أو مفهومة للبشر، لذا في حال أردت أن تتواصل مع جهاز حاسوب بلغة الآلة سيكون الأمر صعبًا عليك، ولن تتمكن بالمقابل من التخاطب معه بلغتك الأم ولا باللغة الانجليزية لأنه لن يفهمها بالمقابل، فما الحل؟ الحل هو في إيجاد لغة مشتركة للحوار والتواصل وهو ما تقوم به لغات البرمجة التي تشكل لغة وسيطة للتخاطب وتملك قواعد وأسس في الكتابة يمكنك كمبرمج فهمها وتعلمها بسهولة وبالإمكان ترجمتها إلى لغة الآلة ليفهمها الحاسوب بدوره وينفذها لك. لا تقتصر البرمجة على الحواسيب بل تشمل الهواتف المحمولة والأجهزة اللوحية وغيرها من الأجهزة الإلكترونية فكافة هذه الأجهزة تحتاج للتخاطب معها من خلال لغة برمجة مخصصة كي تعمل على النحو المنشود وتؤدي المهام المطلوبة. تشبه عملية تعلم البرمجة عملية تعلم الطبخ إلى حد كبير، فعندما تتعلم طريقة إعداد طبق ما لأول مرة عليك أن تتعرف على كافة المكونات اللازمة وتتبع طريقة الإعداد لكل وصفة وتطبقها واحدة تلو الأخرى لتنجز الطبق المطلوب، ويجب قبل البدء بالطبخ أن تكون على دراية بالمطبخ وأدواته بالطبع! لن تختلف الأمور في البرمجة كثيرًا عن هذا المشهد. من الأفضل قبل أن تخطو خطواتك الأولى في تعلم البرمجة أن تتعلم أساسيات البرمجة وهي مفاهيم تشترك فيها البرمجة وتُطبق في كافة لغات البرمجة ثم تبحث بعد ذلك عن لغة البرمجة المناسبة كي تتعلمها، ويمكنك بدء تعلم البرمجة وتعلم مفاهيم علوم الحاسوب الأساسية على التوازي وإن واجهك أي مفهوم أو مصطلح أثناء رحتلك في تعلم البرمجة، فيمكنك التوقف وتعلمه وإكمال الطريق. للمزيد من المعلومات حول اختصاص علوم الحاسوب ومجالاته وتطبيقاته وأهم فرص العمل المتوفرة في هذا المجال يمكنك مطالعة مقال المدخل الشامل لتعلم علوم الحاسوب. بعدها، ستجد أن هناك العديد من لغات البرمجة التي يمكنك أن تتعلمها لتتخاطب مع الحاسوب، وتتفاوت هذه اللغات في درجة صعوبتها، فمنها ما هو سهل التعلم ومرن في القواعد وقريب بشكل كبير من اللغة الطبيعية، ومنها ما هو صعب ومعقد. وفي بداية تعلم البرمجة يفضل أن تبدأ بلغة سهلة تناسبك كمبتدئ وتتعلم من خلالها مهارات التفكير البرمجي والمنطقي، ومهارات حل المشكلات ثم تبدأ بتعلم تطوير البرامج. والمقصود بالبرامج هنا من التعليمات التي تهدف لتحقيق مهمة معينة والمكتوبة بلغة برمجة معينة. أسهل لغات البرمجة للمبتدئين تعتبر لغات البرمجة التالية من أسهل لغات البرمجة للمبتدئين: بايثون Python جافاسكريبت Javascript روبي Ruby سي C جافا Java جو Go PHP بيرل Perl R ماتلاب Matlab نناقش في الفقرات التالية سمات كل لغة من هذه اللغات، ونوضح أبرز استخداماتها والأسباب وراء اعتبارها من أسهل لغات البرمجة. 1. لغة بايثون تعد لغة بايثون واحدة من لغات البرمجة الأكثر شيوعًا على مستوى العالم، وتزداد شعبيتها بين أوساط المبرمجين مع مرور الوقت لكونها لغة سهلة متعددة الأغراض يمكن من خلالها إنشاءالمواقع الإلكترونية وتطبيقات الحاسوب والألعاب وتطبيقات الذكاء الصنعي …إلخ. تعتبر لغة بايثون من أسهل لغات البرمجة التي ينصح المبتدئون بتعلمها لكونها تستخدم صيغة بسيطة تحاكي اللغة الإنجليزية في كتابة التعليمات البرمجية، وهي لا تستخدم الأقواس ما يجعل قراءتها وفهمها أسهل من الشيفرات البرمجية للغات البرمجة الأخرى. فضلًا عن كونها لغة مفتوحة المصدر وتملك مجتمع دعم كبير ونشط وتملك عددًا هائلًا من المكتبات التي تخدم أغراضًا مختلفة وتوفر موردًا غنيًا لأي شخص يرغب بالبرمجة باستخدامها. على سبيل المثال لكتابة برنامجك الأول في لغة بايثون والذي يطبع عبارة Hello world على الشاشة كل ما عليك هو كتابة سطر برمجي وحيد كالتالي: print("Hello world") في حين يكون الكود المكافئ للكود أعلاه في لغة أصعب مثل "C#" بالشكل التالي: using System; public class HelloWorld { public static void Main(string[] args) { Console.WriteLine ("Hello World"); } } لابد أنك لاحظت من هذا المثال البسيط مدى بساطة لغة بايثون وسهولة كتابة التعليمات فيها ما يجعلها من أسهل لغات البرمجة على الإطلاق. إذا كنت ترغب بتعلم لغة باثيون توفر لك أكاديمية حسوب دورة تطوير التطبيقات باستخدام لغة Python باللغة العربية التي تبدأ معك من أساسيات اللغة وصولًا إلى تطوير تطبيقات ويب احترافية. توفر أكاديمية حسوب أيضًا كتابًا لتعلم لغة بايثون وهو كتاب البرمجة بلغة بايثون كما ستجد في عشرات المقالات والدروس المنوعة حول تعلم بايثون من قسم بايثون. 2. لغة جافاسكربت جافاسكربت هي لغة برمجة مخصصة لتطوير الويب تتيح لك تضمين ميزات متقدمة على صفحات الويب، فمن خلالها يمكنك تحويل صفحات الويب الثابتة إلى صفحات تفاعلية نابضة بالحياة، كإضافة الصور المتحركة والنوافذ المنبثقة والتحكم في الرسومات والوسائط المتعددة …إلخ. تعد جافاسكربت من لغات البرمجة الأكثر شعبية في العالم وهي مطلوبة بشدة في سوق العمل لكونها إحدى التقنيات الأساسية للويب بالاشتراك مع HTML و CSS التي تستخدم في كل مكان على الويب. تعد لغة جافاسكربت من أسهل لغات البرمجة للتعلم لكونها عالية المستوى يمكنك اختبارها وتشغيلها مباشرة وبكل سهولة في متصفح الويب وتجربة تأثيرها على عناصر صفحات الويب. لذا ينصح بها لأي مبتدئ يرغب في تطوير مواقع الويب أن يتعلم تطوير التطبيقات باستخدام لغة JavaScript لاسيما أن استخدامها لم يعد يقتصر على تطوير الواجهات الأمامية Frontend فحسب بل يمكنك من خلال جافاسكربت تطوير الواجهات الخلفية Backend أيضًا وبناء تطبيقات رائعة تعمل على الخادم باستخدام أطر عمل مخصصة مثل Node.js. قبل أن تتعلم لغة جافا سكريبت سيكون من الأفضل أن تتعلم التقنيات البرمجية الأخرى والسهلة التعلم والتي تشكل مع جافاسكربت وحدة متكاملة مثل لغة HTML و CSS. ننصح أيضًا لتعلم جافاسكربت بكتاب البرمجة بلغة جافاسكربت واطلع على توثيق جافاسكربت على موسوعة حسوب. لغة HTML قبل أن نناقش أسباب اعتبار HTML أسهل لغة ينصح بتعلمها للمبتدئين، دعونا نجيب على التساؤل التالي "هل HTML لغة برمجة؟" الجواب لا! HTML ليست لغة برمجة من الناحية الفنية لكونها لغة غير مخصصة لإعطاء التعليمات للحاسوب أو إجراء العمليات الحسابية والمنطقية، بل تعتبر "لغة توصيف" Markup language مستخدمة في تطوير الويب وهي إحدى اللبنات الأساسية لصفحات الويب. تقوم HTML بتوصيف البيانات وتغليفها داخل وسوم خاصة تحدد هذه البيانات وتوضح للمتصفح الغرض منها كي يتمكن المتصفح من قراءة هذه البيانات والتمييز بينها مثل تحديد العناوين والفقرات والصور والروابط والجداول …إلخ. وعرضها بناء على هذا الوصف. وبالرغم من أن HTML لا تعتبر لغة برمجة، إلا أن تعلمها وإنشاء صفحات مواقع الويب باستخدامها يعتبر خطوة أولى سهلة يمكنك القيام بها لبدء تعلم تطوير الويب وتكمن سهولتها في اعتمادها بنية بسيطة تعتمد على الوسوم "tags"، التي تحدد من خلالها كيفية عرض مختلف العناصر على صفحة الويب بطريقة مفهومة لا تتطلب منك أي خبرة فنية مسبقة. على سبيل المثال كود HTML التالي يصف للمتصفح طريقة عرض عنوان بمستوى ثانٍ "Heading 2" وقائمة مرتبة "Ordered list": <H2>أسهل لغات البرمجة</H2> <OL> <LI>HTML <LI>CSS <LI>Python <LI>Ruby <LI>Java <LI>Javascript <LI>PHP <LI>C++ </OL> كما تلاحظ الكود بديهي وسهل الفهم وسيعرضه المتصفح بالشكل التالي: للمزيد، ارجع إلى مقال تعلم لغة HTML. لغة CSS إذا كانت لغة HTML تسمح بتوصيف بنية موقع الويب الخاص بك للمتصفح، فإن لغة CSS هي التي تجعل هذه البنية أنيقة ومنسقة وجميلة المظهر. CSS هي اختصار لـ Cascade Styling Sheets وهي كذلك لا تعد لغة برمجة بالمعنى الدقيق، بل تعد لغة وصفية تستخدم لتنسيق عناصر لغة HTML. حيث تضيف لغة CSS تنسيقات للعناصر التي توصفها لغة HTML مثل تحديد أنواع الخطوط المستخدمة في فقرة ما أو ألوان النصوص في فقرات الموقع أو محاذاة العناصر وتخطيطها مما يجعل الموقع أكثر جمالية. على سبيل المثال، لتغيير لون ونوع الخط المستخدم في عناصر HTML السابقة، وتغيير الهوامش الداخلية والخارجية للقائمة سنكتب بعض قواعد CSS لتنسيقها كالتالي: H2 { color: blue; font-family: 'tahoma', serif; } OL { list-style-type: none; margin:2; padding: 2; color: gray; } ستظهر القائمة أعلاه بعد التنسيق بالشكل التالي: كما ترى من الكود أعلاه فاللغة بسيطة للغاية، وصياغة تعليماتها وقواعدها الأساسية سهلة الفهم لاسيما عند إجراء تنسيقات بسيطة وأساسية لعناصر صفحة الويب، لكن بالطبع إذا أردت التعمق في تصميم الويب وتعلم أكثر من مجرد التنسيقات البسيطة وتطوير واجهات مستخدم احترافية وجذابة بصريًا فستحتاج للغوص في خصائص تفصيلية أكثر صعوبة ودقة ودمجها مع لغة HTML وأيضًا لغة جافاسكربت. دورة تطوير واجهات المستخدم ابدأ عملك الحر بتطوير واجهات المواقع والمتاجر الإلكترونية فور انتهائك من الدورة اشترك الآن 3. روبي Ruby تعد لغة روبي لغة برمجة عالية المستوى وهي مفتوحة المصدر وتدعم نمط البرمجة كائنية التوجه OOP ومرنة للغاية. ولكونها لغة برمجة متعددة الأغراض يمكنك من خلال تعلمها إنشاء تطبيقات منوعة مثل تطبيقات سطح المكتب ومواقع الويب، كما يمكنك استخدامها لاستخلاص بيانات صفحات الويب Web scraping والزحف إليها وهو أمر مهم لتحسين محركات البحث وفهرسة المواقع. تمتلك لغة روبي بنية بسيطة تتطلب كتابة القليل من الشيفرات البرمجية لإنجاز المهام المطلوبة ما يجعلها واحدة من أسهل لغات البرمجة في التعلم والتي ينصح بها للمبتدئين. فلكتابة برنامجك الأول الذي يطبع عبارة Hello World على الشاشة في هذه اللغة كل ما عليك هو كتابة سطر برمجي واحد كما يلي: puts "Hello World" تجدر الإشارة هنا لأن لغة روبي رغم بساطتها وسهولة كتابة تعليماتها، إلا أنها قد تصبح أكثر تعقيدًا عندما تحاول تنفيذ أوامر احترافية ومتقدمة أكثر، بكلام آخر من السهل تعلم روبي لكن من الصعب احترافها. إذا لم تكن لديك أي خلفية برمجية وكنت مهتمًا بتعمل لغة روبي من الصفر وصولًا للاحتراف فيمكنك اتباع دورة تطوير تطبيقات الويب باستخدام لغة Ruby التي توفرها أكاديمية حسوب وبناء تطبيقات متنوعة كالألعاب وتطبيقات إدارة المحتوى والشبكات الاجتماعية. كما ستتعلم إطار عمل Ruby on Rails المكتوب بلغة روبي والذي يساعدك على بناء تطبيقات ويب فعالة واحترافية. 4. سي C تعد لغة C واحدة من أقدم لغات البرمجة وهي لغة برمجة إجرائية متعددة الأغراض تم تطويرها عام 1972 وتتمتع إلى اليوم بشعبية كبيرة. تعتبر لغة C من أسهل لغات البرمجة تعلمًا لكونها تستخدم فقط 32 كلمة وأسلوب بناء الجمل فيها بسيط ومفهوم، كما توفر C مجموعة غنية من المكتبات التي تساعد المبرمج على اختصار كتابة الكثير من الأكواد وتشغيل التعليمات البرمجية بسهولة، ولكونها لغة عريقة ومعروفة على نطاق واسع فإن أي مشكلة تواجهها ستجد حلها بسهولة على شبكة الإنترنت. لهذا السبب يتعلمها معظم المبرمجين قبل الانتقال إلى لغة أكثر تقدمًا. فإذا تعلمت لغة C سيكون السهل عليك تعلم جميع لغات البرمجة الأخرى مهما بلغت درجة صعوبتها بسرعة أكبر، وستتمكن من تطوير وبرمجة تطبيقات سطح المكتب والألعاب وبرامج أنظمة التشغيل واللوحات الإلكترونية الصغيرة مثل أردوينو وراسبيري باي وغيرها من البرامج المنوعة. لكتابة برنامج بلغة "C" يطبع عبارة Hello World على الشاشة سيكون الكود كما يلي: #include <stdio.h> int main() { printf("Hello world"); return 0; } قد تتساءل "ماذا عن تعلم لغة C++؟" في الواقع بالرغم من كون C++ واحدة من أكثر لغات البرمجة شيوعًا وتتمتع بأداء عالي وميزات قوية وتوسع لغة C وتضيف لها مفاهيم البرمجة كائنية التوجه OOP، وتستخدم من قبل كبرى شركات التكنولوجيا العملاقة إلا أنها لغة صعبة وبناء الجمل فيها معقد لذا لا ينصح للمبتدئين البدء بها لتعلم البرمجة بل تبدأ الخطوات أولًا بتعلم لغة C ثم تنتقل إلى لغة C++. 5. جافا Java تعد لغة جافا واحدة من لغات البرمجة الأشهر عالميًا، وهي لغة عالية المستوى ومتعددة الاستخدامات، وتتميز بكونها واضحة ومنظمة بشكل جيد وهي تستند إلى لغة سي في أسلوب كتابة التعليمات البرمجية "C-like". تعتبر جافا خيارًا جيدًا للبدء بتعلم البرمجة فهي تمتلك العديد من الميزات القوية وتملك عددًا كبير من المكتبات مفتوحة المصدر وتستخدم على نطاق واسع، وبتعلمها ستتمكن إنجاز مهام متنوعة مثل برمجة مواقع الويب وتطبيقات الجوال والأنظمة المصرفية وأنظمة إدارة علاقات العملاء "CRM" وتطبيقات البيانات الضخمة. سيكون برنامجك الأول بلغة جافا لطباعة عبارة الترحيب Hello World على الشاشة كما يلي: class MyClass{ public static void main(String args[]) { System.out.println("Hello World"); } } ما يجعل لغة جافا سهلة التعلم هو كونها تشبه لغة C وهي لغة مستقرة تعتمد البرمجة كائنية التوجه التي تستخدم الأصناف والكائنات بشكل أساسي لتنفيذ المهام، كما أنها لغة واسعة الانتشار وتوفر الكثير من الموارد للمتعلمين الجدد، ففي حال قررت تعلم هذه اللغة ستجد مجتمع دعم كبير من المطورين عبر الإنترنت وستحظى بالكثير من موارد التعلم المجانية. لغة كوتلن Kotlin إذا كنت لا تفضل تعلم لغة جافا وتجد تعليماتها طويلة وعصية على الفهم، فيمكنك بدلًا من ذلك تعلم لغة البرمجة كوتلن Kotlin، فلغة كوتلن هي من أسهل لغات البرمجة الحديثة نسبيًا فقد ظهرت عام 2011 من قبل شركة JetBrains وهي ذات الشركة التي طورت بيئة التطوير المتكاملة IntelliJ IDEA لتطوير جافا. لاحظ هنا أن برنامج طباعة Hello World على الشاشة بلغة كوتلن يكتب بشكل أكثر اختصارًا من مكافئة في جافا: fun main(args:Array){ println("Hello World"); } من أبرز الفروقات بين لغة جافا ولغة كوتلن هو أن الشيفرات البرمجية في كوتلن أكثر إيجازًا وتعبيرًا من نظيرتها في جافا، كما أن جافا هي في الأساس لغة كائنية التوجه بينما تدعم كوتلن مفهوم البرمجة الوظيفية وهي تعتبر اليوم منافسًا حديثًا لجافا لاسيما في تطوير تطبيقات أندرويد. ولكونها حديثة فهي لا تملك نفس المستوى من الدعم الذي تتلقاه جافا وقد لا تجد الكثير من مصادر التعلم العربية لها، ورغم ذلك تكتسب كوتلن شهرة وشعبية بالتدريج بين المبرمجين العرب في الآونة الأخيرة ولها مستقبل واعد ويمكنك البدء بتعلمها وتطوير مشاريعك البرمجية بها لاسيما إذا كنت تنوي التخصص في مجال تطوير تطبيقات الهاتف الجوال. يمكنك الاطلاع على الدروس والمقالات حول لغة كوتلن التي توفرها أكاديمية حسوب وتقرر إن كانت لغة مناسبة لأهدافك في التعلم وعلى توثيق لغة كوتلن في موسوعة حسوب. 6. لغة GO لغة GO أو Golang هي لغة برمجة حديثة نسبيًا طورتها جوجل عام 2007 من أجل تطوير البرامج بسهولة وسرعة، وهي تستخدم بشكل أساسي لتطوير تطبيقات الويب وواجهات برمجة التطبيقات. اكتسبت اللغة شعبية كبيرة بسرعة في أوساط المبرمجين لكونها بسيطة وسهلة القراءة وتملك قواعد سهلة وميزات بسيطة وبحسب المطورين تعتبر لغة GO هي لغة C للقرن الحادي والعشرين، وهي منتشرة اليوم مدعومة على نطاق واسع، وتستخدمها شركات كبيرة ومعروفة مثل جوجل ودروب بوكس Dropbox وأوبر بفضل أدائها السريع والاحترافي. ما يجعل لغة جو واحدة من أسهل لغات البرمجة هو أن عدد الكلمات المفتاحية في اللغة ضئيل مقارنة بباقي اللغات، كما أنها لا تحتوي على حلقة while ولا تدعم البرمجة الكائنية التوجه بالطريقة المعهودة في باقي لغات البرمجة، والهدف من هذه المحدودية جعلها لغة بسيطة ومباشرة وسريعة الإنتاجية. ورغم بساطتها فهي قادرة على تلبية احتياجات المبرمجين كما أنها سريعة جدًا في التشغيل والتنفيذ. يمكنك كتابة برنامجك الأول لطباعة عبارة Hello World بلغة GO بعبارات بسيطة ومفهومة كما يلي: package main import "fmt" func main() { fmt.Printf("Hello World!") } من السهل تعلم لغة جو إذا كنت معتادًا بالفعل على لغات مثل Java و C# ،بالرغم من أن بناء الجمل سيختلف قليلًا في بعض المواضع عن لغات البرمجة المعروفة لكنك ستألف هذه الاختلافات وتعتادها بسرعة. إذا كنت مهتمًا بتعلم لغة جو، يمكنك مطالعة العديد من الدروس المفيدة حول لغة GO. ومنها سلسلة مقالات البرمجة بلغة Go 7. لغة PHP لغة PHP هي لغة برمجة مفتوحة المصدر ظهرت عام 1990 وتستخدم بشكل أساسي في تطوير الويب فمعظم مواقع وتطبيقات الإنترنت اليوم تعتمد في تطوير واجهاتها الخلفية على لغة PHP. تعتبر PHP لغة سهلة التعلم للمطورين المبتدئين فهي بسيطة ومرنة في الاتصال مع قاعدة البيانات وسيكون تعلمها بديهيًا إذا كانت لديك خلفية سابقة في لغات البرمجة. ولكونها تحظى بشعبية كبيرة بين مطوري الويب فهي تمتلك العديد من مجتمعات الدعم عبر الإنترنت وتوفر الكثير من موارد التعلم المجانية مما يساعدك على العثور على إجابات على كافة الأسئلة التي تواجهك في رحلة التعلم. تجدر الإشارة إلى أن لغة PHP قد تكون غير مناسبة لتطبيقات الويب الكبيرة، كما أن شعبيتها قد انخفضت قليلًا في السنوات الأخيرة، لكنها لا زالت تستحق التعلم، فهي تتطور باستمرار وتضاف إليها ميزات جديدة مثل البرمجة كائنية التوجه، وتدعم أطر عمل رائعة مثل Laravel و Symfony وتستخدم في بناء نظم إدارة المحتوى الأكثر شهرة عالميًا مثل ووردبريس WordPress ودروبال Drupal والتي يوفر لك تعلمها فرص عمل كبيرة في مجال تطوير الويب. توفر أكاديمية حسوب دورة تطوير تطبيقات الويب باستخدام لغة PHP التي تمكنك من تعلم تطوير مواقع ويب احترافية بتقنيات وأطر عمل مختلفة كما تتضمن العديد من المقالات الاحترافية المفيدة حول تعلم لغة PHP. 8.لغة بيرل Perl لغة البرمجة بيرل هي لغة برمجة عالية المستوى ومفتوحة المصدر مشتقة من لغة البرمجة C، طُوِّرت اللغة بداية لمعالجة الملفات والنصوص، لكنها أصبحت تستخدم اليوم كلغة عامة الأغراض وتصلح لإنجاز مجموعة واسعة من المهام. تعتبر لغة بيرل من أسهل لغات البرمجة للتعلم لكونها مرنة وقابلة للتوسع ويمكن استخدامها في تطوير أي نوع من التطبيقات البرمجية. وتعتمد بيرل شعارًا خاصَا بها وهو "There's More Than One Way To Do It" والذي يعني أن لدى المبرمج أكثر من طريقة للقيام بالأمر. سيكون برنامجك الأول بلغة "بيرل" لطباعة Hello World على الشاشة بسيطًا جدًا كما يلي: print "Hello World!"; بتعلم لغة بيرل ستتمكن من تطوير أي برامج ترغب بها كتطبيقات إدارة النظم وقواعد البيانات وتطبيقات الواجهات الرسومية والشبكات وتطبيقات الويب …إلخ. 9. لغة R طورت لغة R عام 1993 وهي لغة مخصصة للدارسين والباحثين في مجال تحليل البيانات والإحصاء وتدعم خوارزميات تعلم الآلة مثل الانحدار والتصنيف وأشجار القرار …إلخ. تكمن قوة هذه اللغة في كونها مفتوحة المصدر ومتوافقة مع جميع أنظمة التشغيل وتوفر الكثير من المكتبات والحزم المتعلقة بالإحصاء وتساعد على اختصار الكثير من التعليمات البرمجية، وهي لغة تتطور وتحدث باستمرار وتملك مجتمع دعم قوي. لذلك ينصح بتعلم هذه اللغة للمبرمجين الراغبين بتطوير الأدوات الرياضية والإحصائية أو تطيقات الذكاء الصناعي أو تطبيقات تحليل البيانات على وجه الخصوص، وليست الخيار الأسهل للبدء بتعلم البرمجة إذا كانت لك أهداف أخرى للتعلم. على سبيل المثال لطباعة عبارة Hello World بلغة "R" كل ما عليك هو كتابة السطر البرمجي التالي: print("Hello World!") لكن سهولة وقوة اللغة لا تكمن هنا فحسب، بل تبرز عند الحاجة لتنفيذ العمليات الرياضية، على سبيل المثال لاحظ سهولة كتابة كود برمجي بلغة "R" يقوم بفرز عناصر متجه تصاعديًا وتنازليًا ويجد أكبر وأصغر عنصر في هذا المتجه: x<- c(4,7,10,8,30,6,5,2,4) sort(x) sort(x,decreasing=TRUE) max(x) min(x) يمكنك تعلم المزيد عن هذه اللغة من خلال سلسلة مقالات ودورس أكاديمية حسوب التي تشرح البرمجة باحترافية باستخدام لغة R. 10. لغة Matlab تستخدم لغة ماتلاب بشكل أساسي في التطبيقات الهندسية والعلمية مثل تطبيقات تحليل البيانات ومعالجة الإشارات والصور وأنظمة التحكم والاتصالات اللاسلكية والروبوتات. وهي لغة برمجة مخصصة للاستخدام من قبل الباحثين والدارسين لحل المشكلات الهندسية والعلمية بأسهل طريقة، ويعتمدها ملايين طلاب الدراسات في الكليات والجامعات وكبرى المؤسسات مثل آبل وجوجل و تسلا لكونها تساهم في تسريع وتيرة أعمالهم. توفر ماتلاب ميزات رائعة مثل التوثيق الجيد وامتلاك عدد كبير من المكتبات الخارجية وإمكانية تطوير الأكواد الحسابية وتنفيذ واختبار الخوارزميات الخاصة بك بسهولة، كما أنها تملك قاعدة بيانات كبيرة من الخوارزميات المضمنة التي تسهل معالجة الصور وإنشاء مقاطع فيديو للمحاكاة إضافة لتسهيل مهام تحليل وتمثيل البيانات وغيرها من الميزات التي تجعل منها لغة البرمجة الأولى وربما الوحيدة في مجال الدراسات والأبحاث. تعلم أسهل لغة برمجة مقابل لغة البرمجة التي أريد تعملها قد تقرر تعلم واحدة من أسهل لغات البرمجة التي ذكرناها أعلاه ولكنك تكتشف بعد فترة وجيزة أنها لا تلبي متطلباتك! لذا قبل أن تحدد أسهل لغة برمجة كي تتعلمها من الضروري أن تحدد سبب رغبتك في تعلم البرمجة، وما الذي تريد أن تحققه من تعلمها، وما هي الأهداف التي تريد الوصول لها. فتحديد أهدافك يساعدك على تحديد مسار التعلم الصحيح واختيار اللغة المناسبة التي تمكنك من تحقيق هذه الأهداف. فإذا كنت ترغب على سبيل المثال في تطوير تطبيقات للهاتف الجوال، فعليك أن تتعلم لغة البرمجة المناسبة لهذا الغرض مثل جافا أو دارت، كما يتوجب عليك كذلك أن تمتلك المعرفة الكافية عن نظامي التشغيل iOS و Android. أما في حال كنت تريد أن تصبح مطور مواقع ويب، فعليك أن تتعلم أولًا لغة HTML ولغة CSS وإن كانت هذه التقنيات ليست لغات برمجة بالمعنى الدقيق كما سنشرح بعد قليل، إلا أن تعلمها يعتبر أحد المتطلبات الأساسية لتعلم تطوير المواقع ثم تتعلم لغات برمجة المواقع المناسبة مثل جافاسكربت أو PHP. وتذكر أن صعود السلم يكون درجة درجة! لذا بعد أن تقرر اللغة التي تريد تعلمها احرص على إتقان أساسيات البرمجة بهذه اللغة، وابدأ بكتابة برامج وتطبيقات بسيطة، ثم انتقل بالتدريج إلى مواضيع أكثر تعقيدًا ولا تستعجل تحقيق نتائج مبهرة وإنجاز تطبيقات احترافية من بداية تعلمك. وبكل تأكيد لن تتعلم إن لم تطبق! فمهما قرأت من دروس واستمتعت لمقاطع تعليمية حول البرمجة سيكون هذا جيدًا بلا شك لكن لمرحلة معينة فلن تتقن ما تعلمته إلا إذا وضعت كل هذه المعلومات في حيز التنفيذ وتعلمت كيف تصحح الأخطاء البرمجية. وللمزيد يمكنك مطالعة مقال كيف تتعلم البرمجة: نصائح وأدوات لرحلتك في عالم البرمجة. في الختام تذكر أن تعلم البرمجة قد لا يكون أمرًا سهلًا في البداية. كما أن أول لغة برمجة تتعلمها ستكون بالنسبة لك أصعب لغة حتى لو كانت من أسهل لغات البرمجة في العالم، لذا يتطلب منك تعلمها التحلي بالصبر والتدرب على طريقة التفكير كمبرمج واكتساب مهارات حل المشكلات، بعدها يكون أمر الانتقال إلى أي لغة برمجة وتعلمها أكثر سهولة. لذا من الأفضل عندما تبدأ تعلم أي لغة برمجة أن تختار أسهل لغة برمجة تلبي أهدافك من التعلم، وتمتلك مجتمع دعم كبير وموارد تعلم جيدة. وتذكر أنك لست مضطرًا للبقاء أسيرًا لأي لغة برمجة، ويمكنك التبديل إلى أي لغة أخرى في أي وقت. اقرأ أيضًا مجالات البرمجة تعرف على أعلى تخصصات البرمجة أجرا قواعد البرمجة ببساطة للمبتدئين تعرف على أشهر لغات برمجة الألعاب1 نقطة
-
لا يختلف اثنان على أهمية تعلم أساسيات البرمجة، فالبرمجة هي مهنة الحاضر والمستقبل، وهي تعتبر أحد المهارات الأساسية في عصرنا الذي بات يعتمد على التقانة في جميع جوانبه، فضلًا عن أن البرمجة قد أصبحت مادة أساسية في المناهج الدراسية في العديد من الدول بدءًا من المراحل الابتدائية. إذا اتخذت قررًا بتعلم أساسيات البرمجة من الصفر للاحتراف فهذا بلا شك قرار صائب، فالبرمجة توفر لك الكثير من فرص العمل، وتوسع مداركك، وتعزز تفكيرك النقدي، كما أنها تكسبك القدرة على حل المشكلات التي تواجهك بكفاءة أكبر، والأمر الجيد أن البرمجة تتميز عن غيرها من المجالات بكونها متاحة للجميع، ويمكنك تعلمها بشكل ذاتي بعيدًا عن أروقة الجامعات الطويلة. نشرح في مقال اليوم أساسيات البرمجة، ونستعرض أهم الأدوات التي تحتاجها كمبرمج، ونبين مفاهيم البرمجة الأساسية التي تشترك فيها معظم لغات البرمجة، وأهم المبادئ التي يمكنك اتباعها لتبرمج كالمحترفين. ما هي البرمجة؟ البرمجة باختصار هي إعطاء التعليمات لجهاز الحاسوب لينفذها باستخدام إحدى لغات البرمجة، ويتلقى الحاسوب هذه التعليمات ويترجمها ويفهمها وينفذها، ويُطلق على تسلسل التعليمات المكتوبة باستخدام لغة برمجة والتي تنجز مهمة محددة اسم برنامج. فنحن البشر نتواصل فيما بيننا بلغاتنا الطبيعية كالعربية أو الإنجليزية، أما الحاسوب فيحتاج لاستخدام لغة برمجة خاصة للتواصل معه، وعالم لغات البرمجة شامل ومنوع فهناك المئات من لغات البرمجة حاليًا، ونشير إلى أن لغة البرمجة هي لغة وسيطة بيننا وبين الحاسوب فحتى الحاسوب لا يفهم لغة البرمجة التي نكتبها بل تُحول كل لغة نكتبها إلى لغة يفهمها الحاسوب عبر أداة تحويل وتدعى اللغة التي يفهمها الحاسوب بلغة الآلة Machine Language التي تتكون من أصفار وواحدات. قبل أن تتعلم أساسيات البرمجة: حدد وجهتك قد تكون حددت لغة البرمجة التي تريد تعلمها وتبحث عن تعلم أساسيات هذه اللغة لذا وصلت إلى هنا، أو لم تحددها بعد، ولكن عمومًا تشترك كل لغات البرمجة بأساسيات واحدة إن تعلمتها سيسهل عليك التعامل مع أي لغة برمجة. قرار تعلم أساسيات البرمجة يشبه قرار الذهاب في إجازة، فأنت لن تذهب في إجازة دون أن تحدد الوجهة التي تريد الذهاب لها، وبناء على وجهتك تحدد مسارك الذي ستسلكه وتجهز مستلزماتك. وبالتالي السؤال الذي يجب أن تطرحه قبل أن تقرر تعلم أي لغة برمجة هو ما هو هدفي النهائي من تعلم البرمجة؟ وبناء على إجابتك تحدد مسار التعلم الصحيح واللغات والأدوات التي عليك تعلمها. ركز في البداية على لغة رئيسية واحدة تتعلم بها أساسيات البرمجة، ثم سيسهل عليك تعلم لغات أخرى حسب الضرورة، حيث الأساسيات والمفاهيم واحدة ولن تختلف من لغة إلى أخرى بل ما يختلف هو طريقة كتابة كل لغة والميزات التي توفرها للمبرمج، وبعبارة أخرى، الخطوة الصعبة هي الخطوة الأولى وهي خطوة تعلم أساسيات البرمجة. وتذكر أن تعلم البرمجة يحتاج لبعض الصبر والجهد، لا سيما عند تعلم إحدى لغات البرمجة لأول مرة كما أشرنا ويحتاج إلى تطبيق أيضًا لأن التعلم النظري شيء والتطبيق شيء آخر ففيه ستواجه الكثير من المشكلات وستتعلم بها حلها وتفاديها تدريجيًا حتى تكون مبرمجًا محترفًا. دورة علوم الحاسوب دورة تدريبية متكاملة تضعك على بوابة الاحتراف في تعلم أساسيات البرمجة وعلوم الحاسوب اشترك الآن أهمية تعلم أساسيات البرمجة تعلم أساسيات البرمجة للمبتدئين يشبه إلى حد كبير تعلم قيادة السيارة، فعندما تجلس خلف مقود السيارة لأول مرة لن تكون قادرًا على القيادة بسلاسة على الفور، بالطبع! تذكَّر كيف تبدأ آنذاك باستكشاف أجزاء السيارة كالفرامل ودواسة البنزين وناقل الحركة، ثم التعرف على المفاهيم والمصطلحات الأساسية المرتبطة بالقيادة، وتلقي الكثير من التعليمات والملاحظات النظرية حول آلية القيادة أكثر من التركيز على القيادة بحد ذاتها. وبعدها تبدأ عملية التدريب على تنفيذ أوامر بسيطة مثل تشغيل السيارة وتحريكها رويدًا رويدًا في مكان مفتوح إلى أن تزداد التعليمات تعقيدًا وتصبح قادرًا على التحكم بالسيارة وقيادتها في كافة الظروف والطرق. بنفس الطريقة ستتعلم البرمجة، حيث عليك أن تتعلم بداية أساسيات البرمجة النظرية، ثم تكتب برامج باستخدام تعليمات بسيطة، ثم تتعلم كيف تكتب التعليمات بطريقة أكثر احترافية، ومع الممارسة والتطبيق ستتمكن من احتراف البرمجة وتطوير برامج متقدمة. وقد شرح مقال كيف تتعلم البرمجة: نصائح وأدوات لرحلتك في عالم البرمجة رحلة تعلم البرمجة بالتفصيل وقدم نصائح مهمة وأجاب على أسئلة شائعة حول تعلم البرمجة فارجع إليه للاستزدادة في هذا الموضوع. احصل على موقع إلكتروني مخصص لأعمالك أبهر زوارك بموقع احترافي ومميز بالاستعانة بأفضل خدمات تطوير وتحسين المواقع على خمسات أنشئ موقعك الآن أدوات مهمة لتعلم أساسيات البرمجة بعد أن تحدد اللغة التي ستتعلمها، تحتاج كخطوة أولى إلى إعداد بيئة التطوير لديك حتى تتمكن من كتابة شيفرة برمجية وتنفيذها كي تتواصل مع الحاسوب بتلك اللغة، والأدوات اللازمة لتعلم أساسيات البرمجة في البداية هي أداتين يحتاج إليهما كل مبرمج: محرر الشيفرة البرمجية أداة تحويل الشيفرة وتنفيذها محرر الشيفرة البرمجية تعتمد معظم لغات البرمجة على أوامر نصية، لذا ستحتاج إلى محرر أكواد لكتابتها، ومحرر الكود هو برنامج لتحرير النصوص مصمم خصيصًا لكتابة وتحرير الشيفرة المصدرية للبرامج، وتتميز بعض المحررات بأنها تتضمن ميزات تسهل كتابة الكود كتمييز الكلمات حسب بناء الجملة، ووضع مسافة بادئة لأسطر التعليمات البرمجية بشكل صحيح. ومن الأمثلة على محررات أكواد Notepad++ لنظام تشغيل ويندوز و gedit أو kate لنظام التشغيل لينكس. ملاحظة: بعض لغات البرمجة الموجهة للمبتدئين تعتمد على واجهات رسومية ولا تحتاج لمحررات نصية مثل لغة سكراتش والتي تدعى أحيانًا لغات برمجة رسومية، وللمزيد يمكنك الرجوع إلى مقال البرمجة باستخدام سكراتش. أداة تحويل الشيفرة وتنفيذها نكتب الكود المصدري عادة بلغة برمجة لا يفهمها جهاز الحاسوب مباشرة كما أشرنا، لذا يجب تثبيت برنامجًا يُحوِّل الشيفرة المصدرية للغة البرمجة بأكملها إلى لغة آلة Machine Code يفهمها الحاسوب ثم ينفذها، ويختلف هذا المُحول من لغة برمجة إلى أخرى ويُسمى إما مُصرِّف Compiler أو مُفسِّر Interpreter وبعض اللغات تحتاج إلى تصريف وآخر إلى تفسير وبعضها يحتاج إلى كلا العمليتين لتحويلها إلى لغة الآلة ثم تنفيذها. لتفهم الفرق بين المُصرِّف والمُفسِّر تخيل أن لديك وصفة مكتوبة باللغة التركية وأنت لا تعرف التركية وتريد أن تحضّرها. في هذه الحالة يمكن أن تطلب من أحدهم أن يترجم لك الوصفة بالكامل للغة العربية ويعطيها لك لتعدها متى ما أردت مستعينًا بهذه النسخة المترجمة Compiled، أو يمكنك أن تكلمه في كل مرة تريد فيها أن تحضر هذه الوصفة وتطلب منه أن يقرأها ويفسرها لك خطوة بخطوة Interpreted. بيئة التطوير المتكاملة IDE يمكنك أن تحصل على المحرر وأداة التحويل والتنفيذ على حدة وتثبتهما على جهازك، أو يمكنك بشكل بديل أن تعتمد على بيئة تطوير متكاملة IDE وهي اختصار العبارة Integrated Development Environment تتضمن كافة الأدوات اللازمة للتعامل مع لغة البرمجة. أمثلة على بيئات تطوير متكاملة: Microsoft Visual Studio NetBeans IntelliJ IDEA يمكنك في بيئة التطوير المتكاملة كتابة التعليمات البرمجية وتعديلها وتصحيحها وتحويلها ثم تنفيذها بسرعة وسهولة كل ذلك من مكان واحد، إذ توفر لك كافة الأدوات اللازمة لتكتب وتنفذ برامج بلغة معينة، كما توفر ميزات تساعدك في تطوير البرامج مثل تصحيح الأخطاء البرمجية، والإكمال التلقائي للتعليمات، وللتعرف أكثر على بيئة التطوير المتكاملة، يمكنك الرجوع إلى مقال مدخل إلى بيئة التطوير المتكاملة IDE. ملاحظة: يمكنك الاعتماد على مترجمات أو بيئات عمل برمجية متوفرة على الإنترنت، حيث توفر العديد من المنصات إمكانية كتابة وتنفيذ البرامج على متصفح الويب بدلًا من تثبيت وإعداد البرامج على الحاسوب المحلي. أساسيات البرمجة للمبتدئين تتنوع لغات البرمجة وتعدد استخداماتها إلا أنها تشترك في مجموعة من الأساسيات والمفاهيم، وتعلم هذه المفاهيم يمكّنك من التآلف من أي لغة برمجة، وإنجاز البرامج باستخدامها بمرونة أكبر، وأهم هذه الأساسيات: المتغيرات Variables الثوابت Constants أنواع البيانات Data types الكلمات المفتاحية Keywords التعليقات Comments بنى التحكم Control Structures الدوال Functions هياكل البيانات Data structure التكرار Iteration التعاود Recursion الكائنات Objects والأصناف Classes الوحدات Modules والمكتبات Libraries نشرح في الفقرات التالية كلًا من هذه الأساسيات البرمجية بمزيد من التفصيل، ونرفق بعض الأمثلة التوضيحية بلغات برمجة مختلفة. المتغيرات تستخدم المتغيرات Variables في البرمجة بشكل مشابه لاستخدامها في الرياضيات، فهي تخزن قيم البيانات من نوع محدد، ويمكن للمتغير احتواء قيمة واحدة في المرة الواحدة، فمتى ما وضعت فيه قيمة جديدة فإن القيمة السابقة المخزنة فيه سوف تحذف تلقائيًا. يمكن تشبيه المتغير بصندوق مفتوح في ذاكرة الحاسوب له اسم وعنوان خاص به، حيث يمكن إدخال القيم وإخراجها من هذا الصندوق حسب الطلب. وتسمى عملية وضع قيمة في المتغير بشكل مباشر الإدخال Input أو الإسناد Assignment أو أحيانًا الضبط Set، كما تسمى عملية الحصول على هذه القيمة وعرضها الإخراج Output أو الجلب Get. وتجدر الإشارة لأن بعض أنواع المتغيرات تكون محدودة الوصول، بمعنى أنها لا تسمح لك بالوصول المباشر لها سواء لتخزين البيانات ضمنها أو الحصول على القيم المخزنة فيها إلا عبر وسيط ويُسمى هذا الوسيط باسم ضابط setter وجالب getter على التوالي، والغرض من هذه العملية حماية المتغيرات من تعديلات غير مرغوبة كما سنوضح لاحقًا في فقرة الكائنات والأصناف التي أكثر ما تُستخدم فيها. لتعريف متغير في لغة البرمجة C++ عليك ذكر اسم المتغير ونوع البيانات التي تريد تخزينها في هذا المتغير وإسناد قيمة أولية فيه، على سبيل المثال لتعريف متغير باسم a لتخزين العدد الصحيح 10 بداخله نكتب ما يلي: int a = 10; كما يمكنك تعريف المتغير دون إسناد القيمة له في البداية وإسنادها لاحقًا بالشكل التالي: int a; a = 10; في حين لا تملك لغة بايثون أمرًا محددًا لتعريف المتغيرات، كل ما عليك هو كتابة اسم المتغير واستخدام علامة مساواة متبوعة بقيمة المتغير، وسوف تكتشف اللغة تلقائيًا نوع المتغير وحجم الذاكرة المناسب له كما يلي: a = 10 الثوابت تشير الثوابت Constants إلى قيمة أو كمية ثابتة لا نحتاج لأن نغيرها أو نعدلها أبدًا أثناء تنفيذ البرنامج، مثل سرعة الضوء، وعدد الدقائق في الساعة، والعدد Pi الذي يمثل نسبة محيط الدائرة إلى قطرها، وتسارع الجاذبية الأرضية، ومعدل نجاح الطالب وما إلى ذلك. فالثوابت البرمجية بمثابة صندوق تغلقه بإحكام بعد وضع قيمة فيه ولا يسمح لك بتغييرها في كود البرنامج، فبعد تحديد قيمة الثابت يسمح لك فقط بالوصول إلى قيمته، بخلاف المتغير الذي يمكنك الوصول إلى قيمته وإعادة تعيينها وتعديلها حسب حاجتك. لتعريف الثوابت في لغة C++ نستخدم الكلمة المفتاحية const ثم نكتب نوع البيانات واسم الثابت وقيمته كما يلي: const float PI = 3.14; const float GRAVITY = 9.8; const float SUCC_RATE = 0.5; في حين لا تميز بعض اللغات مثل لغة بايثون بين تعريف الثوابت والمتغيرات، حيث يمكنك تعريف الثوابت والتعامل معها كما تعرّف أي متغير، وتلتزم أنت بعدم تغيير قيمتها في سياق البرنامج، كما يمكنك التصريح الثوابت في ملف مختلف واستيرادها في برنامجك لتمييزها عن المتغيرات. PI = 3.14 GRAVITY = 9.8 ملاحظة: يشيع في أوساط المبرمجين تسمية الثوابت بحروف أجنبية كبيرة لتمييزها عن المتغيرات كما فعلنا في الأمثلة السابقة. أنواع البيانات أنواع البيانات Data types في لغات البرمجة هي عملية تحديد نوع وحجم القيمة التي يمكن أن تخزن في المتغير والتي يترتب عليها تحديد العمليات التي يمكن تطبيقها على هذه المتغير من طرف لغة البرمجة مثلًا السماح بتطبيق عملية الجمع والطرح على نوع الأعداد والسماح بعملية البحث والاستبدال على النصوص وهكذا. توفر لغات البرمجة العديد من أنواع البيانات مثل: الأعداد التي تنقسم إلى أعداد صحيحة integer numbers وأعداد عشرية floating point numbers، والمحارف Characters، والسلاسل النصية Strings، والقيم المنطقية Boolean …إلخ. على سبيل المثال في لغة البرمجة C++"" إذا كنت تحتاج في برنامجك إلى تخزين العمر، ستحتاج لمتغير من نوع بيانات عدد صحيح، ويمكنك تعريف هذا المتغير أو التصريح عنه باستعمال الكلمة المفتاحية int كما يلي: int age; فعندما استخدمنا الكلمة int هنا أخبرنا مترجم اللغة أن هذا المتغير مخصص لتخزين أعداد صحيحة فقط، ليحجز الحجم المناسب له في ذاكرة الحاسوب وينتظر منا إدخال قيم صحيحة فيه فقط، فإذا جربت تخزين نص أو عدد عشري فيه فستحصل على خطأ من أداة التحويل أثناء تحويل البرنامج إلى لغة الآلة وهذا ينطبق على الأمثلة الآتية أيضًا. وإذا احتجت لمتغير مخصص لتخزين قيمة عشرية مثل متوسط درجات الطالب، أو مساحة دائرة استخدم نوع البيانات float لهذا المتغير كما يلي: float avg; ولتعريف متغير مخصص لتخزين محارف مفردة يمكنك أن تستخدم نوع البيانات char كما يلي: char x; x = 'A'; أما لتخزين السلاسل النصية المكونة من عدة محارف فاستخدم نوع البيانات string كما يلي: string str = "This is a C++ string"; ولتخزين القيم المنطقية التي يمكنها أن تحتوي القيمة صواب true أو خطأ false والتي تفيد في اختبار الشروط، استخدم نوع البيانات bool كما يلي: bool con1 = false; bool con1 = true; إن التعامل مع أنواع البيانات أبسط في لغات أخرى مثل لغة بايثون، فأنت لا تحتاج لتحديد نوع بيانات للمتغير قبل استخدامه، لكون اللغة قادرة على استنباط وتعيين نوع بيانات المتغير تلقائيًا بمجرد أن تسند له قيمة ما، فبحسب نوع القيمة التي تسندها تحدد اللغة نوع البيانات المناسب له. إليك بعض الأمثلة على تعريف متغيرات من أنواع بيانات مختلفة في بايثون: v1 = "This is a Python string" #string v2 = 10 #int v3 = 10.33 #float v4 = True #bool لمزيد من المعلومات حول أنواع البيانات في لغات البرمجة، اطلع على مقال دليلك الشامل إلى أنواع البيانات. الكلمات المفتاحية تتضمن أي لغة برمجة مجموعة من الكلمات المفتاحية Keywords أو الكلمات المحجوزة Reserved Words، وهذه الكلمات لها معنى خاص ولا يمكن للمبرمج استخدامها لتعريف المتغيرات مثلًا. ولعلك انتبهت إلى قولنا كلمة مفتاحية على const وعلى int في الأمثلة السابقة في لغة C++ التي كانت كلمات محجوزة مخصصة لتعريف الثوابت البرمجية وأنواع البيانات، كما تعد الكلمتان True و False محجوزتين في بايثون لتمثيل القيمتين المنطقيتين صواب وخطأ على التوالي وقس على ذلك في أي لغة برمجة. وعليك أن تطلع على الكلمات المفتاحية ودلالة كل كلمة وطريقة استخدامها في اللغة التي تريد تعلمها ويكون عادة عددها محدود وبسيطة وقد تتكون من كلمة إنجليزية واضحة أو اختصار لها مثل الاختصار const لكلمة constants ثابت والاختصار init لكلمة integer عدد صحيح ومعرفة مما يتشكل الاختصار يُسهل عليك حفظ الكلمة خصوصًا وبما أن عددها محدود وبسيطة فلا تخف إن كانت لغتك الإنجليزية ضعيفة. التعليقات تعد التعليقات Comments من أساسيات البرمجة، والتعليقات هي عبارة عن نصوص وصفية تضاف للكود البرمجي لتسهيل فهمه وقراءته ويمكن أن تكون بأي لغة مثل اللغة العربية، وهي لا تنفذ في البرنامج حيث أن مترجم اللغة يتجاهلها ويعتبرها فراغات، لكنها مفيدة للمبرمج نفسه ليتذكر ما كتبه عند العودة للبرنامج لاحقًا، كما أنها تساعد أي شخص يقرأ الكود الذي كتبه المبرمج في فهم سير عمل البرنامج والهدف من كتابة تعليمات معينة فيه. تستخدم لغات البرمجة المختلفة أساليب مختلفة لكتابة التعليقات تنحصر عادة بالرموز الثلاثة # أو // أو /* */، على سبيل المثال في لغة C++ يمكنك كتابة التعليقات على سطر واحد بعد الرمز // وكتابة التعليقات متعددة الأسطر بين الرمزين /* */ كما يلي: /* هذا تعليق مكون من عدة أسطر */ //هذا تعليق مكون من سطر واحد أما في لغة بايثون فيمكنك كتابة التعليق أحادي السطر بعد الرمز # وكتابة التعليقات متعددة الأسطر بعد علامتي اقتباس أو ثلاث علامات اقتباس مفردة كما يلي: ''' هذا تعليق مكون من عدة أسطر ''' #هذا تعليق مكون من سطر واحد بنى التحكم تنفذ البرامج عادة بشكل متتابع من بداية الشيفرة إلى نهايتها تعليمة تلو الأخرى، لكن قد تحتاج في بعض الحالات لتغيير مسار التنفيذ وتجاوز بعض التعليمات أو تكرارها، وهنا يأتي دور بنى التحكم Control Structures التي تعتبر من أساسيات البرمجة لكونها تفيد المبرمجين في تحديد الاتجاه أو المسار الذي يجب الانتقال له بناء على عوامل معينة. بالعودة إلى مثال تعلم القيادة الذي ذكرناه بداية، تخيل أنك تسير في طريقك نحو مقر عملك، وصادفت إشارة حمراء أو اعترضتك سيارة إسعاف، ألن تحتاج عندها للتوقف لحين عودة الإشارة إلى اللون الأخضر أو التنحي لجانب الطريق لحين مرور الإسعاف ثم تتابع طريقك المعتاد. بنفس الطريقة تعمل بنى التحكم في الكود البرمجي، فهي تسمح للمبرمج بالتحكم في تدفق تنفيذ البرامج وفق حالات معينة، ومن أهم بنى التحكم البنى الشرطية if statement والبنى التكرارية loop statement. البنى الشرطية أما البنى الشرطية فتمكنك من اختبار شروط محددة قبل تنفيذ الكود البرمجي وتقوم بتنفيذه فقط عند تحقق هذه الشروط، مثلًا إذا كان لديك تعليمات برمجية تتضمن عملية قسمة، يمكنك اشتراط عدم تنفيذ هذه التعليمات عند محاولة القسمة على صفر. على سبيل المثال يقوم البرنامج التالي بلغة C++ بقسمة عددين عشريين ويختبر شرط القسمة على صفر: #include <iostream> using namespace std; int main() { float num1, num2, result; num1=18; num2=0; if (num2 == 0) { cout << "خطأ رياضي أنت تحاول القسمة على صفر"<<endl; } else { result=num1/num2; cout << "The result is "<< result << endl; } return 0; } تختبر التعليمة الشرطية if في الكود أعلاه إن كان المقسوم عليه num2 مساويًا للصفر (الذي يمكن أن يأتي من مواضع مختلفة مثل الطلب من المستخدم تزويدنا بقيمته)، وفي هذه الحالة تعرض العبارة "خطأ رياضي أنت تحاول القسمة على صفر" ولا تنفذ عملية القسمة num1/num2. الكود التالي كود مكافئ للكود السابق لكنه مكتوب بلغة بايثون: num1 = 18 num2 = 3 if num2 == 0: print("خطأ رياضي أنت تحاول القسمة على صفر") else: result = num1/num2 print(result) الأمثلة أعلاه كانت لشروط بسيطة، وستجد في لغات البرمجة أنواعًا عديدة من التعليمات الشرطية مثل if-else التي تمكنك من اختبار الشرط وعكسه، وتعليمة if المتداخلة التي تتضمن شرطًا فرعيًا داخل شرط رئيسي، وتعليمة switch التي تختبر شروط معتمدة على قيمة واحدة. كما ستتمكن من اختبار شروط مركبة من خلال المعاملات المنطقية مثل and و or و not. البنى التكرارية وأما البنى التكرارية أو حلقات التكرار فتمكنك من تكرار تنفيذ تعليمات معينة لعدد محدد أو مشروط من المرات، وتوفر على المبرمجين الكثير من الوقت في كتابة الكود. ستجد في أي لغة برمجة أنواعًا مختلفة من الحلقات مثل حلقات for التي تستخدم عندما تعرف عدد المرات التي تريد فيها تكرار التعليمات قبل التوقف، وحلقات while أو repeat التي تتشابه مع حلقات for لكنها تكرر مجموعة من التعليمات بعدد غير محدد من المرات يعتمد على استيفاء شرط معين. على سبيل المثال، إذا طلب منك أن تكتب برنامج لعرض ناتج ضرب العدد 5 بالأعداد من 1 إلى 10 فلا حاجة لأن تضرب العدد 5 في العدد 1 ثم في العدد 2 وهكذا وصولًا للعدد 10، يمكنك ببساطة كتابة حلقة تكرارية for كما في المثالين التاليين: حلقة for بلغة C++: int num=5; for (int i = 1; i < 11 ;i++) cout << num <<"X" << i << "="<< num*i << "\n"; حلقة for بلغة بايثون: num = 5 for i in range(1, 10): print(num, 'x', i, '=', num*i) الدوال الدوال Functions هي أجزاء مستقلة من الكود البرمجي لها اسم خاص بها وتشبه المصنع في عملها فتأخذ ممن يستخدمها دخلًا (إن وُجد) ثم تجري عمليات معالجة وتعيد إليه الناتج، ويدعى ما يُمرَّر إليها باسم المعاملات Parameters. تُكتب الدالة أو تعرّف مرة واحدة وتصبح بعدها قابلة لإعادة الاستخدام، حيث يمكن للمبرمج استدعاء أو مناداة الدالة في أي موضع في البرنامج مع تمرير قيم بيانات لها أو بدون، على سبيل المثال في حال أردت كتابة كود برمجي يعرض ناتج الضرب لعدد ما في الأعداد من 1 إلى 10 يمكنك تحويل الكود إلى دالة باسم displayMul وسيطها هو العدد المراد ضربه كما يلي: #include <iostream> using namespace std; // تعريف دالة لحساب نانج ضرب أي عدد في الأعداد من واحد لعشرة void displayMul(int num){ for (int i = 1; i < 11 ;i++) cout << num <<"X" << i << "="<< num*i << "\n"; } //استدعاء الدالة في البرنامج الرئيسي int main() { int num1 = 5; displayMul(num1); int num2 = 9; displayMul(num2); return 0; } عرفنا الدالة displayMul في المثال السابق بلغة C++ بكتابة نوع البيانات الذي تعيده الدالة وهو void أي لا شيء لأن الدالة تطبع القيمة ولا تعيد شيئًا، ثم اسمها ثم المعاملات الخاصة بها بين قوسين ()، ثم كتبنا التعليمات التي تقوم بها بين قوسين { }، ولاحظ أن الدالة لا تعيد شيئًا فلا يُشترط أن تأخذ أو تعيد شيئًا بل المهم أن تُنفِّذ عمليةً ما منوطة بها عند استدعائها. إليك أيضًا تعريف الدالة displayMul السابقة نفسها ولكن بلغة بايثون: def displayMul(num): for i in range(1, 10): print(num, 'x', i, '=', num*i) num = 5 displayMul(num) displayMul(9) ملاحظة: لا يمكنك استدعاء أو مناداة دالة في برنامجك إذا لم تقم بتعريفها أولًا، لأنك تحاول استخدام شيء غير موجود، لكن بعض الدوال تكون مضمنة ومعرفة مسبقًا في اللغة Built-in functions، ويمكنك استخدام هذه الدوال فورًا دون الحاجة لتعريفها بنفسك، على سبيل المثال الدالة "getline()"هي دالة جاهزة معرفة في لغة C++ تستخدم لإدخال السلاسل النصية من لوحة المفاتيح، والدالة print() هي دالة جاهزة في لغة بايثون تستخدم لطباعة قيم المتغيرات على الشاشة. هياكل البيانات هياكل البيانات Data Structures هي بنى برمجية مصممة لتضم مجموعة من البيانات أو المتغيرات، وقد تكون هياكل أولية كالأعداد الصحيحة والأعداد العشرية والمحارف كما شرحنا في أنواع البيانات، أو هياكل مركبة يمكن تشبيهها بمجموعة صناديق متلاصقة في ذاكرة الحاسوب باستطاعتها تخزين عناصر أو متغيرات متعددة من نفس نوع البيانات ويمكن لبعض هياكل البيانات أن تتضمن مزيجًا من أنواع بيانات مختلفة. فالمصفوفة Array، والقاموس Dictionary والكائن Object وغيرها أحد أنواع هياكل البيانات الشهيرة، على سبيل المثال يمكنك استخدام المصفوفات عندما تحتاج إلى تخزين مجموعة مكونة من عدة قيم لها نفس النوع في متغير واحد بدلًا من تخزين كل قيمة في متغير منفصل، ويمكنك بعدها تحديد أي عنصر من العناصر الموجودة في المصفوفة والوصول له من خلال موقعه أو فهرسه داخل هذه المصفوفة، وإليك مثال على تعريف مصفوفة لتخزين 5 أعداد صحيحة: في لغة C++: int marks[5] = {50,99,78,66,59}; في لغة بايثون: marks=[50,99,78,66,59] ملاحظة: قد تختلف أسماء هياكل البيانات من لغة برمجة إلى أخرى ففي لغة بايثون لا يُطلق عليها اسم مصفوفة array كما في لغة C++ بل اسم قائمة list حيث تختلف التسميات والمعنى واحد. هنالك العديد من هياكل البيانات التي لا يتسع المقال الحالي لذكرها، لذا ارجع إلى مقال هياكل البيانات لمزيد من التفاصيل. التكرار يعتبر مفهوم التكرار Iteration أحد أهم مفاهيم أساسيات البرمجة، وستحتاج له لاسيما عند التعامل مع هياكل بيانات مركبة في شيفراتك البرمجية مثل المصفوفات، فالتكرار يعني المرور على كل عنصر من عناصر البيانات المركبة على حدة وعلى التوالي لتنفيذ عملية أو مهام محددة عليه، وستجد أن التكرار صفة أيضًا تُسمى iterable تُطلق على أي متغير أو نوع بيانات يمكن المرور عليه وستراها غالبًا في التوثيقات. يمكنك تنفيذ التكرار في لغات البرمجة بطرق مختلفة، لكنه يعتمد بشكل أساسي على استخدام الحلقات التكرارية بأنواعها المختلفة، كما توفر بعض اللغات مكررات Iterators وهي عبارة عن دوال أو عمليات مخصصة تمكنك من المرور على جميع عناصر هياكل البيانات بطريقة منهجية وسهلة. على سبيل المثال للمرور عبر عناصر المصفوفة marks التي عرفناها في الفقرة السابقة وطباعتها في لغة C++ يمكن أن نكتب حلقة for مع استخدام متغير i يمثل تعدادًا نستخدمه كفهرس للوصول إلى كل عنصر من عناصر المصفوفة كما يلي: #include <iostream> using namespace std; int main () { int marks[5] = {50,99,78,66,59}; cout << "The marks are:"; for (int i = 0; i < 5; ++i) { cout << marks[i] << " "; } } أما في لغة بايثون يمكنك المرور عبر عناصر المصفوفة وطباعتها كما يلي: marks=[50,99,78,66,59] for m in marks: print(m) التعاود يعتبر التعاود Recursion أحد المفاهيم البرمجية الأساسية، وهو يعتمد على تقسيم المشكلات البرمجية إلى مشكلات أصغر يمكن حلها بسهولة، ويرتبط هذا المفهوم بالدوال البرمجية، حيث أن الدالة التي تكرر استدعاء نفسها حتى تصل لحالة حدية أو أساسية Base case تجعلها تتوقف عن عملية استدعاء نفسها وتعيد نتيجة معروفة عند هذه القيمة تعرف باسم الدالة التعاودية Recursive Function، وإذا لم تكن هناك حالة حدية تصل لها الدالة فهذا يعني أن الدالة ستكرر استدعاء نفسها إلى مالا نهاية. هذا الأسلوب البرمجي يصلح لحل المسائل التي تملك نمطًا هرميًا والتي يمكن حلها بسهولة عن طريق تحويلها لمسائل فرعية مشابهة أصغر. لكن في حال كان بإمكانك حل مسألة معينة عن طريق الحلقات التكرارية بسهولة فلا توجد ضرورة لاستخدام أسلوب التعاود في هذه الحالة، ولا تقلق إن لم تفهم شيئًا فقد أضفنا مثالًا مع مخطط يوضح لك المفهوم تاليًا. على سبيل المثال مسألة حساب عاملي أو مضروب عدد ما "n!" هي أشهر مسألة تعاودية بطبيعتها، فكما تعرف مضروب العدد 0 هو قيمة معروفة تساوي 1، وبالتالي يمكن اعتبار n=0 هو الحالة الحدية التي يمكن من خلالها حل مسألة المضروب لأي عدد بناء على القاعدة التالية: n! = n * (n - 1) عندما تبلغ قيمة العدد n=0 فسوف يعيد القيمة 1 للدالة وينتهي الاستدعاء المتكرر أو التعاودي لها. إليك مثال على إيجاد مضروب أو عاملي العدد n: بلغة C++: #include <iostream> using namespace std; int factorial(int n) { if (n < 0) { return 0; } else if (n == 0) { return 1; } else { return factorial(n - 1) * n; } } // استدعاء الدالة في البرنامج الرئيسي int main() { cout<< factorial(4); } بلغة بايثون: def factorial(n): if n < 0: return 0 elif n == 1: return 1 else: return n * factorial(n-1) print (factorial(4)) المخطط التالي يوضح طريقة استدعاء الدالة التعاودية وإعادتها للقيمة عند وصولها للحالة الحدية لا تقلق مرة أخرى إن لم تفهمه فهو من المفاهيم المعقدة والمرعبة للمبرمجين المبتدئين، وستفهمه تدريجيًا ولا يمكن أن يتضح بالكامل إلا إن طبقته وحتى رسمته على ورقة أو مخطط كما المخطط السابق. الكائنات والأصناف تعتبر الكائنات Objects والأصناف Classes أحد أساسيات البرمجة كائنية التوجه "OOP" حيث أن الكائنات تعتبر وحدات تتضمن مجموعة من المتغيرات ومجموعة الدوال البرمجية. والصنف Class هو بمثابة نموذج أو مخطط عام لتمثيل الكائنات، يمكن تعريفه واستخدامه لاشتقاق العديد من الأمثلة أو الحالات المختلفة من هذه الكائنات، ولهذا السبب يسمى الكائن نسخة من الصنف "instance". لنأخذ مثالًا من الواقع، يمكنك تعريف صنف يسمى Car لتمثيل السيارة، سيكون لهذه السيارة خصائص مختلفة تميزها كاللون والنوع والطراز وسنة التصنيع والسعر …إلخ. كما سيكون لها أفعال أو سلوكيات تقوم بها كفعل التشغيل وزيادة السرعة وتغيير الاتجاه والتوقف …إلخ. لذا نعرف صنفًا خاصًا يمثل السيارة ونشتق منه نسخ لسيارات مختلفة. برمجيًا يعرف الصنف بداخله متغيرات ودوال، وتحدد المتغيرات الخاصة بالصنف مميزات هذا الصنف بينما تحدد دوال الصنف "class functions" ما الذي يمكن للكائنات القيام به كما يحوي الصنف على دوال خاصة منها دالة تُدعى الدالة البانية "constructor" التي تُستدعى تلقائيًا عند إنشاء واستنساخ كائن من الصنف المُعرَّف ويمكن عبرها تمرير قيم تضبط الكائن الجديد الناتج مثلًا تضبط متغيراته وإليك مثال لتوضيح ذلك. على سبيل المثال، يمكن تعريف صنف يمثل هيكل دائرة، سنعرف لهذا الصنف متغير خاص به أو خاصية تمثل قيمة نصف قطر الدائرة، ودالة بناء تضبط قيمة نصف القطر أثناء إنشاء كل دائرة، ودالة لحساب مساحة الدائرة، ودالة أخرى لحساب محيط الدائرة يمكن استدعاءهما بعد إنشاء كل كائن من الصنف دائرة. المثال التالي يعرف صنف يمثل دائرة بلغة البرمجة C++ ويشتق نسختين أو كائنين مختلفين من هذا الصنف لكل كائن نصف قطر مختلف: #include<iostream> using namespace std; class Circle { const float PI = 3.14; // data members float radius; public: // contractor Circle(float radius) { this->radius = radius; } // member function float Area() { return radius*radius*PI; } float Perimeter() { return 2*radius*PI; } }; int main() { Circle circle1(3); cout << circle1.Area() << endl; cout << circle1.Perimeter() << endl; Circle circle2(4); cout << circle2.Area() << endl; cout << circle2.Perimeter() << endl; return 0; } والمثال المكافئ التالي بلغة بايثون يعرف صنف دائرة ويشتق كائنين منه: #تعريف صنف يمثل دائرة class Circle(): def __init__(self, radius): self.radius = radius def get_area(self): return (self.radius ** 2) * pi def get_perimeter(self): return self.radius * 2 * pi # إنشاء كائنات من الصنف Circle pi = 3.14 circle1 = Circle(3) print(circle1.get_area()) print(circle1.get_perimeter()) circle2 = Circle(4) print(circle2.get_area()) print(circle2.get_perimeter()) لا تقلق إن لم تفهم شيئًا مما سبق فمهوم الأصناف والكائنات مفهوم دسم معقد على المبتدئين، ولكن حاول إعادة قراءة الفقرة وتطبيق الأمثلة أو يمكنك تخطيه ببساطة فالمهم أنك تعرفت على المفهوم، أما إن أردت المزيد من التفاصيل، فارجع إلى مقال البرمجة كائنية التوجه من سلسلة تعلم البرمجة. الوحدات والمكتبات لعلك لاحظت عبارات تبدأ بالكلمة using أو include أو import في الأمثلة البرمجية السابقة وتساءلت عن أهمية وجودها! هذه العبارات ليست سوى أمثلة على استخدام وحدات ومكتبات جاهزة مختلفة في لغات البرمجة. تعتبر الوحدات Modules والمكتبات Libraries أحد مفاهيم أساسيات البرمجة التي من الضروري أن تعيها جيدًا، والهدف الأساسي من وجودها تسهيل كتابة التعليمات البرمجية وتمكين المبرمج من إعادة استخدامها دون الحاجة إلى كتابة التعليمات البرمجية الخاصة بها في الكود من جديد. فالمكتبات والوحدات توفر على المبرمجين إعادة اختراع العجلة وتمكنهم من التركيز على حل المشكلة بسهولة ومرونة أكبر. توفر كل لغة برمجة العديد من المكتبات التي تضم مجموعة من الدوال والأصناف والوحدات التي يمكنك استخدامها مرارًا وتكرارًا في التعليمات البرمجية الخاصة بك لأداء مجموعة من الوظائف المفيدة دون الحاجة لإنشائها من البداية، كما يمكنك تعريف الوحدات الخاصة بك. هناك العديد من الوحدات المضمنة في لغة بايثون مثلًا والتي يمكنك استيرادها بكتابة التعليمة import ولنضرب مثلًا باستيراد الوحدة math للاستفادة من الدوال الرياضية التي توفرها بالشكل التالي: import math print (math.sqrt(25)) print (math.pi) print (math.degrees(2)) print (math.radians(90)) print (math.sin(2)) print (math.cos(0.5)) إلى هنا نكون قد انتهينا من شرح أساسيات البرمجة للمبتدئين والتي تناولنا فيها أهم المفاهيم التي ستتعرف عليها بالتفصيل في أي لغة برمجية تنوي تعلمها قبل أن تتمكن من تطوير برامجك وتطبيقاتك بهذه اللغة. ونختم مقالنا بأهم النصائح والتوصيات التي تساعدك على تعلم هذه الأساسيات. 10 نصائح لتعلم أساسيات البرمجة إليك مجموعة نصائح سريعة تساعدك في رحلة تعلم البرمجة: حدد هدفك من تعلم البرمجة، ثم تعلم ما يلزمك من تقنيات لتحققه. لا تشتت نفسك بكثرة اللغات والتنقل بينها وركز على المفاهيم وطبقها بلغة واحدة بإتقان وتركيز. ضع خطة للتعلم والتزم بها دون تسويف. لا تضيع وقتك في البحث عن أفضل المصادر التعليمية والتنقل بينها بل اختر واحدًا فقط والتزم به للنهاية. طور مهارات البحث الفعال فهذا سيوفر عليك وقتًا كبيرًا ويساعدك في إيجاد حلول لمشاكلك البرمجية. رافق المجدين ومن يشاركونك الهدف والاهتمام نفسه فإن الصاحب ساحب كما يُقال. لا تتوقف عن التعلم وطور نفسك باستمرار. تحلَّ بالصبر والأناة فإن العلم بالتعلّم والحلم بالتحلّم. تقبل الفشل والخطأ فالفشل هو وسيلة للنجاح. طبق ثم طبق ثم طبق ما تتعلمه. الخلاصة تطرقنا في مقال اليوم لشرح أساسيات البرمجة للمبتدئين وتعرفنا على أهم المفاهيم البرمجية التي ستصادفك عند تعلم أي لغة من لغات البرمجة وذكرنا في الختام أهم الأسس والنصائح التي تساعد أي مبرمج لتعلم أساسيات البرمجة من الصفر حتى الاحتراف. قد لا تتمكن من هضم جميع المفاهيم مرة واحدة خصوصًا إن كنت مبتدئًا، لذا ارجع للمقال مرة ومرتين حتى تتأكد من استيعابك لتلك المفاهيم وضعه ضمن قائمتك المفضلة وطبق الأمثلة بلغة البرمجة التي تتعلمها أو تريد تعلمها. وإذا كان لديك أي تساؤلات حول أي شيء مر معك في المقال أو كنت قد بدأت فعلا بتعلم إحدى لغات البرمجة ولديك نصائح مفيدة تود أن توجهها للمبتدئين في تعلم البرمجة، نرحب بأن تشاركنا بها في التعليقات أسفل المقال. اقرأ أيضًا أسهل لغات البرمجة البرمجة كائنية التوجه دليلك الشامل إلى: برمجة التطبيقات فوائد تعلم البرمجة1 نقطة