أخر الاخبار

خارطة الطريق لتعلم لغة بايثون في عام 2024 | دليل شامل للمبتدئين والمحترفين في الأساسيات

 

خارطة الطريق لتعلم لغة بايثون  دليل المبتدئين والمحترفين في عام 2023

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

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

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

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

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


تنويه:  

تغطي خارطة الطريق هذه لغة Python وبيئة النظام المحيطة بها على وجه التحديد، وستلاحظ أن الخارطة تفتقد لأشياء مثل: التحكم في الإصدار وقواعد البيانات وتصميم البرامج وهندسة البرامج وأشياء أخرى لا تتعلق مباشرة ببايثون؛ وهذا مقصود، حيث سنخصص مقالة منفصلة وشاملة للبنية التحتية للواجهة الخلفية (Backend) والأدوات والمفاهيم المرتبطة بها.


ما هي لغة البرمجة بايثون؟


لغة البرمجة Python هي إحدى لغات البرمجة القوية والمعروفة ببساطتها وسهولة تعلمها وفهمها، تم تطوير بايثون في أوائل التسعينيات من قبل Guido van Rossum، ومنذ ذلك الحين أصبحت واحدة من أشهر وأكثر لغات البرمجة انتشارًا في العالم.

وتمتاز لغة بايثون بعدة ميزات رئيسية، وهي كالتالي:

 1.   سهولة القراءة والكتابة: 

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

 2.   متعددة الاستخدامات:  

يمكن استخدام بايثون في مجموعة متنوعة من التطبيقات، بما في ذلك تطوير تطبيقات الويب، وعلوم البيانات، والذكاء الاصطناعي، وتطبيقات الألعاب، والتطوير الشبكي، والمزيد.

 3.   المرونة:

بايثون لغة برمجة مرنة وقابلة للتخصيص، فهي تسمح للمبرمجين بإنشاء حلول برمجية مخصصة لاحتياجاتهم الخاصة.

 4.   مجتمع المطورين النشط:  

بايثون لديها مجتمع نشط من المطورين حول العالم، مما يوفر مجموعة واسعة من الموارد التعليمية والدعم، فمن خلال التعاون مع مطورين آخرين والاستفادة من المصادر المجانية والمنتديات عبر الإنترنت تجعل عملية تعلم بايثون تجربة ممتعة.

 5.   مفتوحة المصدر:  

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

 6.   المستقبل الواعد:  

تزداد شعبية لغة البرمجة بايثون باستمرار، مما يجعلها مهارة مطلوبة في سوق العمل.


لماذا يجب أن تتعلم بايثون؟


تعلم لغة البرمجة بايثون يأتي مع العديد من الفوائد والأسباب التي تجعلها خيارًا مثاليًا، فيما يلي سنناقش تلك الأسباب:

 1.   سهولة التعلم:  

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

 2.   فرص العمل الواسعة:  

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

 3.   إمكانية تطوير تطبيقات الويب:  

بايثون تُستخدم على نطاق واسع في تطوير تطبيقات الويب باستخدام إطارات عمل، مثل: Django و Flask، فإذا كنت تحلم ببناء موقع ويب أو تطبيق على الإنترنت، فإن بايثون هي الخيار الأمثل.

 4.   علم البيانات والذكاء الاصطناعي:  

بايثون تعتبر لغة برمجة ممتازة لعلم البيانات وتطبيقات الذكاء الاصطناعي، فمكتبات مثل: NumPy و Pandas و TensorFlow تجعل من السهل تحليل البيانات وبناء نماذج ذكاء اصطناعي.

 5.   تطبيقات سطح المكتب: 

يمكنك استخدام بايثون لتطوير تطبيقات سطح المكتب عبر مكتبات مثل: PyQt و Tkinter، هذا يتيح لك إنشاء برامج سطح المكتب التي تُستخدم على أنظمة تشغيل مختلفة مثل: Windows و macOS و Linux.

 6.   الألعاب:

بايثون تُستخدم أيضًا في تطوير الألعاب، سواء كانت ألعاب الكمبيوتر البسيطة أو الألعاب عبر الإنترنت متعددة اللاعبين، فهناك مكتبات وإطارات عمل مثل: Pygame التي تسهل تطوير الألعاب باستخدام لغة البرمجة Python.

 7.   الأتمتة (Automation): 

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


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


قبل أن تبدأ


قبل أن تبدأ في رحلتك لتعلم لغة البرمجة بايثون، ستحتاج إلى تجهيز بعض الأدوات الأساسية لتسهيل عملية التطوير والتعلم، إليك قائمة بالأدوات التي ستحتاج إليها:

  • محرر النص (Text Editor) أو بيئة تطوير متكاملة (IDE):

يمكنك استخدام محرر نص بسيط مثل: Notepad على نظام التشغيل Windows أو Nano على نظام التشغيل Linux أو TextEdit على نظام التشغيل macOS، وذلك لكتابة الشيفرات البرمجية وتنفيذها من خلال سطر الأوامر.

وبالإضافة إلى ذلك، يمكنك استخدام بيئة تطوير متكاملة مثل: Visual Studio Code أو PyCharm أو Jupyter Notebook، فهذه البيئات توفر أدوات متقدمة لتطوير البرمجيات ببساطة وفعالية.

  • المُفَسِّر Python Interpreter:

يجب عليك تثبيت نسخة من لغة البرمجة بايثون على جهاز الكمبيوتر الخاص بك، ويمكنك عمل ذلك من خلال زيارة الموقع الرسمي لـ Python ثم تحميل أحدث إصدار منه.

وبعد انتهاء عملية التثبيت، تأكد من أن Python مضاف إلى متغيرات البيئة (PATH) حتى يمكنك تشغيله من سطر الأوامر.

خارطة الطريق لتعلم لغة بايثون في عام 2024 | دليل شامل للمبتدئين والمحترفين في الأساسيات



تعلم الأساسيات Basics


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

فيما يلي سنناقش أساسيات لغة البرمجة بايثون:


 1.   بناء الجملة (Syntax):

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

وفي مجال لغات البرمجة، يلعب بناء الجمل دورًا حاسمًا في تنظيم التعليمات البرمجية لإنشاء البرامج، فهو يحدد كيفية تعريف المتغيرات والدوال والهياكل البرمجية الأخرى، وكيفية استخدامها لأداء المهام المختلفة.

وهناك أنواع متعددة من بناء الجُمل في لغات البرمجة، فعلى سبيل المثال: 

بعض اللغات مثل: C و ++C و Java تستخدم بناء الجُملة الإمبراطوري، ففي هذا النوع من بناء الجملة يتم تحديد كُتَل التعليمات البرمجية باستخدام الأقواس المربعة أو المعقوفتان [ ] أو الأقواس الهلالية ( ) أو الأقواس المتعرجة أو الحاصرتان { }، وعلامات الترقيم الأخرى.

بناء الجملة في لغة البرمجة جافا


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

بناء الجملة في لغة البرمجة بايثون


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


ملاحظة:  

في المثالين السابقين، هل لاحظت مدى بساطة بناء الجُملة للكود البرمجي المستخدم في لغة بايثون مقابل بناء الجُملة للكود البرمجي المستخدم في لغة جافا؟


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


 2.   المتغيرات وأنواع البيانات (Variables & Data Types): 

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

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

المتغيرات وأنواع البيانت في لغة البرمجة بايثون


 4.   الشروط (Conditionals): 

الشروط في لغة البرمجة Python هي هياكل تحكم تسمح للبرنامج باتخاذ قرارات استنادًا إلى صحة أو خطأ عملية فحص القيم المحددة، فيمكننا استخدام عبارات شرطية لتحديد مسار البرنامج بناءً على حالة معينة، وإليك شرح للشروط في لغة بايثون:

عبارات الشرط: تُستخدم لفحص صحة قيمة أو خطأ معين.

   - مثال: `x > 5`

فهي تعتبر شرطًا يفحص ما إذا كانت قيمة x أكبر من العدد 5.


الجُمل الشرطية Conditional Statements: تُستخدم لتحديد تنفيذ شيفرة برمجية معينة إذا تحقق الشرط.

   - مثال:

الشروط في لغة البرمجة بايثون


التفريع Branching: يتيح للبرنامج اختيار مسار معين بناءً على الشرط.

   - مثال:

الشروط في لغة البرمجة بايثون


الشروط المتعددة Multiple Conditions: يمكن دمج عدة شروط باستخدام `and` و `or` لفحص صحة أو خطأ قيم متعددة.

   - مثال:

الشروط في لغة البرمجة بايثون


الشروط المتداخلة Nested Conditions: يمكنك من وضع شرط داخل شرط آخر.

   - مثال:

الشروط في لغة البرمجة بايثون


باستخدام هذه الهياكل، يمكن لمبرمجي بايثون تحديد تدفق البرنامج بناءً على حالات مختلفة وتحقيق التحكم الفعّال في تنفيذ الكود.


 5.   حلقات التكرار (Loops) : 

حلقات التكرار في لغة البرمجة بايثون هي هياكل تحكم تسمح للبرنامج بتنفيذ مجموعة من الأوامر مرارًا وتكرارًا حسب شرط محدد أو عدد محدد من المرات، وهناك نوعين رئيسيين من الحلقات في بايثون كما يلي:

حلقات تكرار While: تُستخدم حلقات while لتنفيذ مجموعة من الأوامر ما لم يتم تحقيق شرط معين.

   - مثال:

حلقات التكرار في بايثون (حلقة التكرار While)


في المثال السابق، سيتم طباعة العدد ما لم يتجاوز العدد الحالي القيمة 5.


حلقات تكرار For: تستخدم حلقات for لتكرار مجموعة محددة من الأوامر على عناصر معينة، مثل: عناصر قائمة أو سلسلة نصية.

   - مثال:

حلقات التكرار في بايثون (حلقة التكرار For)


في المثال السابق، ستُطبع الجملة "اللون الآن هو:" تبعًا لكل لون في القائمة.

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


 6.   تحويل نوع البيانات (Typecasting) : 

التحويل النوعي للبيانات في Python، أو ما يُعرف بـ Typecasting، يشير إلى عملية تغيير نوع البيانات من نوع إلى آخر، في العديد من الحالات يحدث التحويل النوعي تلقائيًا عند الضرورة، ولكن يمكن للمبرمج أيضاً أن يقوم بتحويل النوع يدويًا.

على سبيل المثال: إذا كنت تمتلك متغيرًا من نوع عددي صحيح (int)، يمكنك تحويله إلى نوع عددي عشري (float) باستخدام دالة `()float`، أو إلى نص (string) باستخدام دالة `()str`.

تحويل البيانات في لغة البرمجة بايثون


هذا يفيد في التعامل مع حالات مختلفة حيث يحتاج المبرمج إلى تعديل نوع البيانات لضمان توافق العمليات أو العمل بفعالية أكبر.

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


 7.   الدوال (Functions) : 

تعد الدوال في لغة البرمجة بايثون من العناصر الأساسية التي تسهم في ترتيب وتنظيم الشيفرة البرمجية، تُستخدم الدوال لتحديد مجموعة من التعليمات التي يمكن استدعاؤها باسم محدد، وإليك شرح أكثر تفصيلاً:

تعريف الدالة Function Definition: يمكن تعريف الدالة باستخدام الكلمة الرئيسية "def"، تليها اسم الدالة وقائمة المعاملات إذا كانت هناك، ويتم تحديد بداية الكود الخاص بالدالة بواسطة الأقواس المستدركة.

   - مثال:

الدوال في لغة البرمجة بايثون


جسم الدالة Function Body: يحتوي جسم الدالة على سلسلة من التعليمات التي يجب تنفيذها عند استدعاء الدالة، فيجب أن يتم تعيين هذه التعليمات بالنسبة للدالة لتحقيق الغرض المطلوب.

   - مثال:

الدوال في لغة البرمجة بايثون


استدعاء الدالة Function Call: يتم استدعاء الدالة باستخدام اسمها وتمرير القيم المطلوبة إليها.

   - مثال:

الدوال في لغة البرمجة بايثون


إرجاع القيمة Return Value: يمكن للدالة إرجاع قيمة باستخدام كلمة "return"، ويعني ذلك أن الدالة يمكنها إرجاع قيمة بعد اكتمال تنفيذها.

   - مثال:

الدوال في لغة البرمجة بايثون


من خلال استخدام الدوال، يمكنك تنظيم وتجميع شيفرتك البرمجية بشكل أفضل، مما يسهم في جعل البرنامج أكثر فهمًا وصيانة.


الخوارزميات وهياكل البيانات


هياكل البيانات والخوارزميات من الأمور الأساسية في برمجة الحاسوب، حيث تلعب دورًا حاسمًا في تحسين أداء البرامج، تساهم هياكل البيانات في تنظيم البيانات بكفاءة بينما تقدم الخوارزميات الفعالة طرقًا منهجية لحل مشكلات مختلفة.

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

بشكل عام، تعتبر هذه المفاهيم أساسية لأي مبرمج يسعى لكتابة برامج فعالة ومستدامة، لذلك دعنا نتناول الأمر بشيء من التفصيل.


 1.   الخوارزميات (Algorithms) : 

الخوارزميات هي سلسلة من الخطوات البرمجية التي تحل مشكلة معينة أو تنفذ وظيفة معينة، وفي لغة البرمجة Python يمكنك تنفيذ العديد من الخوارزميات، مثل: خوارزميات الفرز (Sorting Algorithms) وخوارزميات البحث (Search Algorithms)، فهذه الخوارزميات تمثل الطرق التي يمكن من خلالها معالجة البيانات بشكل فعال.

   - مثال:

الخوارزميات في لغة البرمجة بايثون


في المثال السابق استخدمنا خوارزمية البحث الثنائي (Binary Search)، هذه الخوارزمية تُستخدم للبحث في قائمة مرتبة.

في البداية قمنا بتعيين متغيرين `low` و `high` لتحديد نطاق البحث، ثم استخدمنا حلقة التكرار while للبحث حتى يتم العثور على العنصر أو يتم استبعاد النصف الذي لا يحتوي على العنصر.

بعد ذلك نحسب المؤشر المتوسط `mid` ونقارن القيمة الموجودة في هذا المؤشر `guess` بالقيمة المستهدفة `target`، فإذا تم العثور على العنصر يتم إرجاع المؤشر، وإذا لم يتم العثور على العنصر يتم إرجاع القيمة -1.

الخوارزميات في لغة البرمجة بايثون


كان هذا مثالاً بسيطًا يوضح كيفية استخدام خوارزمية البحث الثنائي في بايثون، ويمكنك استكشاف المزيد من الخوارزميات لتعزيز فهمك وتطوير مهاراتك في البرمجة.


الاستدعاء الذاتي (Recursion): هو مفهوم برمجي يعني أن الدالة يمكنها استدعاء نفسها، وهذا يمكن أن يكون ذا فائدة كبيرة في حالات معينة، خاصة عند حل المشاكل التي يمكن تقسيمها إلى مشاكل أصغر ويمكن حلها بنفس الطريقة، أو كتابة خوارزميات فعالة، أو إنشاء هياكل بيانات معقدة.

   - مثال:

الخوارزميات في لغة البرمجة بايثون (الاستدعاء الذاتي)


في المثال السابق تقوم الدالة `calculate_sum` بفحص إذا كانت قيمة `n` تساوي 1، في هذه الحالة تعيد القيمة 1، أما إذا كانت قيمة `n` أكبر من 1، تقوم بإجراء استدعاء ذاتي باستخدام `calculate_sum(n - 1)` وتضيف قيمة `n` إليها.

فعند استدعاء الدالة مع القيمة 5 (`calculate_sum(5)`)، ستقوم بحساب مجموع الأعداد من 1 إلى 5 بشكل تتابعي باستخدام الاستدعاء الذاتي، لذلك يتطلب الاستدعاء الذاتي اهتمامًا بتحديد نقطة توقف (base case)، وهي الحالة التي يتوقف فيها الاستدعاء الذاتي.


 2.   هياكل البيانات (Data Structures) : 

هياكل البيانات في لغة البرمجة بايثون من الأساسيات الهامة لتنظيم وتخزين البيانات، فهذه الهياكل تسهم في تحسين أداء البرامج وجعلها أكثر فعالية، وهناك عدة أنواع من الهياكل البيانية المدمجة في بايثون، ومن بينها:

القوائم (Lists): القائمة هي هيكل بيانات مرن يمكن أن يحتوي على مجموعة مختلفة من أنواع البيانات، ويتم تعريف القائمة بين قوسين مربعين وتحتوي على عناصر منفصلة بفواصل.

   - مثال:

هياكل البيانات في لغة البرمجة بايثون (القوائم)



المجموعات الثابتة (Tuples): هي هيكل بيانات مشابه للقوائم ولكنه لا يمكن تعديله بعد إنشائه، ويتم تعريف المجموعات الثابتة بين قوسين هلاليين وتحتوي على عناصر منفصلة بفواصل.

   - مثال:

هياكل البيانات في لغة البرمجة بايثون (المجموعات الثابتة)



المجموعات (Sets): المجموعة هي هيكل بيانات يحتوي على مجموعة فريدة من أنواع البيانات، ويتم تعريف المجموعة بين قوسين متعرجين.

   - مثال:

هياكل البيانات في لغة البرمجة بايثون (المجموعات)



القواميس (Dictionaries): القاموس هو هيكل بيانات يتيح لك تخزين البيانات كزوج مفتاح وقيمة، ويتم تعريف القاموس بين قوسين متعرجين، حيث يكون لكل مفتاح قيمة مرتبطة به.

   - مثال:

هياكل البيانات في لغة البرمجة بايثون (القواميس)



المصفوفات (Arrays):  المصفوفة هي مجموعة من العناصر التي يمكن تخزينها تحت اسم واحد، ويتم الوصول إلى العناصر في المصفوفة باستخدام مؤشر يسمى "فهرس" أو "index".

فعلى سبيل المثال: إذا كان لدينا مصفوفة تحتوي على الأرقام: `[10, 20, 30, 40]`، فيمكننا الوصول إلى العنصر 30 باستخدام `my_array[2]`، حيث أن الفهرس يبدأ من العدد الصفر.

   - مثال:

هياكل البيانات في لغة البرمجة بايثون (المصفوفات)


القوائم المرتبطة (Linked Lists): القائمة المرتبطة هي هيكل بيانات يتيح لنا تخزين مجموعة من العناصر حيث يحتوي كل عنصر على رابط إلى العنصر التالي في القائمة.

فهي على عكس المصفوفات، لا يحتاج العنصر في القائمة المرتبطة إلى التواجد في مكان متتالٍ في الذاكرة، فكل عنصر يحتوي على معلومة (مثل قيمة) ورابط إلى العنصر التالي، ويبدأ الوصول إلى القائمة المرتبطة من "رأس" القائمة.

فعلى سبيل المثال: إذا كان لدينا قائمة مرتبطة بالأرقام: 1 -> 2 -> 3 -> 4، فإن الوصول إلى العنصر الثالث يتم عن طريق الانتقال من 1 إلى 2 ثم إلى 3.

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

   - مثال:

هياكل البيانات في لغة البرمجة بايثون (القوائم المرتبطة)


الكومة (Heaps): الكومة هي هيكل بيانات يتميز بأنه يحتفظ بالعناصر بحيث يكون لديك دائمًا عنصرًا بارزًا (العنصر الأقصى أو الأدنى) في القمة، وفي لغة البرمجة Python يمكننا استخدام مكتبة `heapq` لتنفيذ الكومة، حيث تتيح لنا تنظيم البيانات بشكل أفضل خاصة في حالة الأولويات، فيمكن استخدامها لترتيب قائمة من الأرقام حسب القيمة الأكبر.

   - مثال:

هياكل البيانات في لغة البرمجة بايثون (الأكوام)


في المثال السابق، قمنا بإنشاء كومة صغيرة (`Min Heap`) باستخدام `heapify`، ثم قمنا بإضافة قيمة جديدة باستخدام `heappush`، وأخيرًا قمنا باستخراج أقل قيمة باستخدام `heappop`، وستلاحظ أن الإخراج يُظهر كيف تظل الكومة مرتبة وتحتفظ بأقل قيمة في القمة.


المكدس (Stacks): المكدس هو هيكل بيانات يعمل بنظام "Last In, First Out" (الآخر دخولاً، الأول خروجًا)، وفي لغة البرمجة Python يمكنك استخدام قائمة لتنفيذ المكدس، حيث يتم إضافة العناصر في نهاية القائمة واستخراجها من نفس النهاية.

ويمكن استخدام المكدس لتخزين البيانات مؤقتًا، فعلى سبيل المثال: لنفترض أننا نريد تنفيذ نظام بسيط لتتبع تاريخ العمليات في حاسبة، سنستخدم المكدس لتخزين العمليات السابقة واسترجاعها عند الحاجة.

   - مثال:

هياكل البيانات في لغة البرمجة بايثون (االمكدس)


في المثال السابق، قمنا بتعريف المكدس (stack) باستخدام قائمة فارغة، ثم أضفنا عِدة عمليات إلى المكدس باستخدام `append`، وفي النهاية قمنا بطباعة تاريخ العمليات من المكدس، واستخدمنا `eval` لحساب النتيجة النهائية لآخر عملية تم إجراؤها.


الصف أو الطابور (Queues): الصف هو هيكل بيانات يعمل بنظام "First In, First Out" (الأول دخولاً، الأول خروجًا)، وفي لغة البرمجة Python يمكنك استخدام مكتبة `queue` لتنفيذ الصف، فتُضاف العناصر إلى نهاية الصف ويتم استخراجها من بدايته.

لنفترض أن لدينا مطعم ونريد تنظيم طلبات الزبائن باستخدام هيكل الصف، يمكننا استخدام هيكل الصف لضمان أن يتم تقديم الطلبات بترتيب الوصول.

   - مثال:

هياكل البيانات في لغة البرمجة بايثون (االصف أو الطابور)


جداول التجزئة (Hash Tables): جداول التجزئة هي هيكل بيانات مهم في لغة Python تسمح بتخزين البيانات بطريقة تجعل عمليات البحث والإدراج فعالة جداً، تقوم جداول التجزئة بتخزين البيانات بطريقة فريدة.

يتم تحويل المفتاح (Key) إلى مؤشر (Index) باستخدام وظيفة التجزئة (Hash Function)، وهذا المؤشر يحدد موقع تخزين القيمة المرتبطة بالمفتاح مما يُسهم في تحسين أداء البحث والإدراج في البيانات.

عند إنشاء جدول التجزئة يتم إنشاء جدول فارغ بحجم يتناسب مع الحجم المتوقع للبيانات، ثم يتم تحويل المفتاح إلى رقم معين باستخدام وظيفة التجزئة، وهذا الرقم يشير إلى الموقع في الجدول.

ثم يتم تخزين القيم في مواقع معينة في الجدول وفقًا للمؤشر الناتج من وظيفة التجزئة، وعند البحث عن قيمة يتم استخدام نفس وظيفة التجزئة للعثور على المؤشر المطابق، وعند إدراج قيمة جديدة يتم استخدام نفس العملية.

   - مثال:

هياكل البيانات في لغة البرمجة بايثون (جداول التجزئة)


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


أشجار البحث الثنائية (Binary Search Trees): هي هياكل بيانات تُستخدم لتخزين وتنظيم البيانات بشكل يتيح البحث بشكل فعال، ففي كل عقدة (node) يوجد قيمة ثم توجد عقدتان فرعيتان، عقدة يمينية وعقدة يسارية.

وتوجد قاعدة أساسية في الأشجار البحثية الثنائية وهي أن القيمة في العقدة اليمنى تكون أكبر من القيمة في العقدة الحالية، والقيمة في العقدة اليسرى تكون أصغر.

هياكل البيانات في لغة البرمجة بايثون (أشجار البحث الثنائية)


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

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

   - مثال:

هياكل البيانات في لغة البرمجة بايثون (أشجار البحث الثنائية)


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


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


مصادر تعلم أساسيات لغة البرمجة بايثون


أول ما سيتبادر إلى ذهنك بعد قرارك تعلم أساسيات لغة البرمجة بايثون هو من أين سأتعلم؟

لذلك سوف أقدم لك قائمة (سوف نعمل على تحديثها باستمرار) بالمنصات العالمية، والكتب، وقنوات اليوتيوب التي يمكنك تعلم الأساسيات من خلالها، وهم كالتالي:


نوع المصدرالمنصةالعنوانالمؤلفاللغة
دورةCourseraPython for BeginnersGoogleالإنجليزية
دورةUdemyPython Programming MasterclassJose Portillaالإنجليزية
دورةedXIntroduction to PythonHarvard Universityالإنجليزية
دورةKhan AcademyIntroduction to Python ProgrammingKhan Academyالإنجليزية
دورةCodecademyLearn PythonCodecademyالإنجليزية
قائمة فيديوهاتYouTubePython Tutorial for Absolute BeginnersFreeCodeCampالإنجليزية
قائمة فيديوهاتYouTubePython Programming TutorialFreeCodeCampالإنجليزية
قائمة فيديوهاتYouTubePython TutorialPython Tutorialالإنجليزية
قائمة فيديوهاتYouTubeLearn PythonLearn Pythonالإنجليزية
قائمة فيديوهاتYouTubeProgramming with MoshMosh Hamedaniالإنجليزية
كتابPython for BeginnersMark Lutzالإنجليزية
كتابLearn Python the Hard WayZed Shawالإنجليزية
كتابPython Crash CourseEric Matthesالإنجليزية
كتابThink PythonAllen B. Downeyالإنجليزية
كتابتعلم بايثون من الصفرعبد الرحمن جمالالعربية
كتاببايثون للمبتدئيننور حمصيالعربية
كتاببايثون: من البداية إلى الاحترافمحمد طهالعربية
كتاببايثون للأعمالأحمد خالدالعربية
كتاببايثون للمبرمجين العربمحمد رياضالعربية


مشاريع برمجية للتطبيق على أساسيات بايثون


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


    آلة حاسبة بسيطة:

        الفكرة: قم ببناء آلة حاسبة تقوم بأربع عمليات رياضية أساسية (جمع، طرح، ضرب، قسمة).

        التفاصيل: استخدم بايثون لإنشاء واجهة نصية بسيطة تسمح للمستخدم بإدخال الأرقام وتحديد العملية الحسابية.


    تطبيق تحويل درجات الحرارة:

        الفكرة: قم ببناء برنامج يقوم بتحويل درجات الحرارة بين مقياسين (مئوية وفهرنهايت).

        التفاصيل: استخدم المعادلات البسيطة للتحويل واعرض النتائج بشكل سهل للقراءة.


    محول العملات:

        الفكرة: قم ببناء برنامج يقوم بتحويل العملات بين عدة عملات مختلفة.

        التفاصيل: استخدم معدلات الصرف الحالية واعرض النتائج بطريقة بسيطة.


    تطبيق مسجل المهام:

        الفكرة: قم ببناء تطبيق يتيح للمستخدم إضافة وتعديل وحذف المهام اليومية.

        التفاصيل: استخدم قائمة بسيطة لعرض المهام واستخدم المفاهيم الأساسية لإدارة البيانات.


الآن حان الوقت لتحويل تلك الأفكار إلى واقع ملموس! دع هذه المشاريع تكون بداية رحلتك البرمجية الملهمة.

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

وإذا كنت تواجه أي تحديات تعوق تنفيذك لتلك المشروعات، فلا تتردد في التواصل معي عبر التعليقات أو قنوات التواصل في المدونة.

دعونا نجعل هذه الرحلة تحفيزًا متبادلاً نحو النجاح والإبداع!


خاتمة


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

وتمثل "خارطة الطريق لتعلم لغة بايثون في عام 2024" دليلك الشامل والموثوق، فهي ليست مجرد سلسلة من المقالات، بل هي رفيق دراستك وشريك رحلتك في تحقيق الاحترافية في عالم البرمجة.

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

نشكرك على رحلتك معنا، ونتطلع إلى مشاركتك المستقبلية في عالم البرمجة وابتكار التقنية.

دمتم ملهمين وملهمات، ولنلتقي في المستقبل بمزيد من المعرفة والتحديات.


مصطفى أمان
بواسطة : مصطفى أمان
صانع محتوى تعليمي تقني على مدونتي وعلى قناة اليوتيوب. وهدفي من هذا المحتوى هو محو الأمية المتعلقة بمجال تكنولوجيا المعلومات حتى نبدأ من حيث انتهى الأخرين.
تعليقات



    حجم الخط
    +
    16
    -
    تباعد السطور
    +
    2
    -