الفصل الأول: مقدمة في البرمجة ولماذا بايثون؟و ماهو السر كي تتعلم البرمجة؟
في هذا الفصل، ستبدأ رحلتك خطوة بخطوة لاستكشاف عالم البرمجة، وستفهم لماذا تُعد بايثون خيارك الأفضل على الإطلاق لتبدأ هذه المغامرة. سوف تتعلم ماهو السر الحقيقي الذي يجعلك تتعلم البرمجة و إتقانها و ستكتشف أن البرمجة ليست مجرد مهارة تقنية فقط، بل هي طريقة جديدة للتفكير، تفتح لك أبواباً واسعة للإبداع وحل المشاكل في العالم الواقعي و في نفس الوقت تقدم لك أفضل الأجور بالمقارنة مع التخصصات الأخرى.
كما انها توفر لك الإمكانية لإنشاء تطبيقات و منتجات رقمية تغنيك عن العمل مع الشركات خصوصا بعد أن تكتسب التجربة الكافية.
هل تعلم أن المبرمج لديه الإمكانية للعمل بطرق كثيرة ليس فقط العمل مع شركة بأجر تابث بل يمكنك العمل كمستقل مع عدة شركات أو عملاء في مختلف بقاع العالم، كذلك لديك الإمكانية لبيع منتجات رقمية مثل الأكواد الجاهزة، الكتب و حتى تطبيقات و برامج كاملة.
إذا كان هدفك هو المال، فعالم البرمجة يوفر إمكانيات كبيرة لتحقيق الربح المادي والحرية المالية بدون الإلتزام بالطرق التقليدية فقط، لكن هذا لا يعني أن العمل في شركة هو أمر سيء بل قد يكون مفيد لك في مسيرتك.
شيء أخر يجب أن تعلمه. الحصول على شهادات ليس شيئا مهما في هذا المجال، بل ما تستطيع إنجازه و اتقانه. أكبر الشركات في العالم مثل جوجل لا تفرض عليك الحصول على شهادة للعمل لديها إذا كنت متمكنا جيدا من المجال.
لكن طبعا إذا كانت لديك الإمكانية للحصول على الشهادة فهو أمر جيد خصوصا في العالم العربي حيث لا يتم الاعتراف بالكفاءات بل فقط بالشواهد.
أما إذا كان هدفك أكثر من المال، فالبرمجة هو الطريق الأول للمساهمة في بناء عالم أفضل للبشرية لأنه يتحكم في كل شيء تقريبا من السيارات إلى الطب والابحاث الجارية للقضاء على الأمراض و محاربة الشيخوخة خصوصا مع بداية ثورة الذكاء الإصطناعي.
ما هي البرمجة؟
هل سبق لك أن فكرت كيف تعمل البرامج والتطبيقات التي نستخدمها يومياً؟
أجهزة الكمبيوتر والهواتف الذكية هي مجرد آلات جامدة، فاقدة للحياة. ما الذي يمنحها الذكاء ويجعلها مفيدة وقادرة على تنفيذ مهام مذهلة؟ بأختصار إنها البرمجة!
البرمجة هي المحرك الذي يبعث الحياة في هذه الآلات، ويحوّلها من مجرد قطع جامدة إلى أدوات قوية بين أيدينا.
تخيل أنك تتحدث مع جهاز الكمبيوتر، ولكن ليس بلغتنا اليومية البشرية، بل بلغته الخاصة حيث بإمكانك أن تعطي للكمبيوتر تعليمات دقيقة ومفصلة، خطوة بخطوة، لإنجاز مهمة معينة. عندما “تكتب برنامجًا”، فأنت ببساطة تكتب للكمبيوتر بالضبط ما يجب عليه أن يفعله.
كما قلت، البرمجة هي الأساس وراء كل التقنيات التي تستخدمها يومياً. فكر في التطبيقات الموجودة على هاتفك الذكي، والمواقع الإلكترونية التي تتصفحها، وحتى الأنظمة التي تدير حساباتك البنكية. البرمجة هي ما يجعل الألعاب الإلكترونية تعمل، وهي السر وراء السيارات ذاتية القيادة، وأيضاً وراء تطبيقات الذكاء الاصطناعي المتطورة مثل ChatGPT.
لهذا السبب، لم تعد البرمجة مهارة مقتصرة على المتخصصين فقط، بل أصبحت لغة العصر ومهارة أساسية تفتح الأبواب أمام الإبداع وحل المشاكل بطرق لم تتخيلها من قبل.
هل البرمجة مجرد كتابة تعليمات؟
هذا سؤال مهم جدا وسوف يضعك على الطريق الصحيح من البداية. يجب أن تدرك هذا الشيء: في جوهرها، البرمجة ليست فقط كتابة أوامر، بل هي مزيج قوي بين مفهومين أساسيين:
- هياكل البيانات أو مايسمى بالانجليزيةData Structures
- و الخوارزميات (Algorithms).
فهمك لهذين المفهومين هو المفتاح السري لإتقان البرمجة والتحول من مجرد كاتب تعليمات إلى مهندس يقدم حلولا عملية.
السر لتعلم البرمجة: إذا أردت فعلا تعلم البرمجة بالشكل الصحيح منذ البداية، لا يجب أن تتعلم فقط كيفية كتابة الأوامر بلغة معينة. الأهم هو أن تتعلم كيف تفكر في حل المشاكل، كيف تنظم بياناتك (باستخدام هياكل البيانات)، وكيف تضع خطة خطوة بخطوة لحل هذه المشكلات (عبر الخوارزميات). اللغة (مثل بايثون) هي فقط الأداة التي تستخدمها لكي تصف للكمبيوتر كيف يحل المشكلة بإستعمال هياكل البيانات المناسبة و الخوارزميات.
هياكل البيانات (Data Structures):
تخيل أن لديك الكثير من المعلومات (بيانات) وتحتاج إلى تنظيمها بطريقة ذكية لتتمكن من الوصول إليها واستخدامها بكفاءة. هذا هو دور هياكل البيانات.
هياكل البيانات هي طرق لتخزين وتنظيم البيانات في ذاكرة الأجهزة لتسهيل الوصول إليها وتعديلها. فكر فيها كأنواع مختلفة من الحاويات أو الصناديق؛ بعضها يسهل عليك تخزين أشياء مرتبة، وبعضها يسهل عليك البحث السريع.
مثلاً، قائمة الأصدقاء على فيسبوك، أو أرقام الهواتف في جهات الاتصال، كلها منظمة باستخدام هياكل بيانات معينة. كلما كانت البيانات منظمة بشكل أفضل، كان من الأسهل والأسرع للبرنامج التعامل معها.
الخوارزميات (Algorithms):
بعد أن تصبح بياناتك منظمة في ذاكرة الجهاز، كيف ستعالجها أو تحل مشكلة ما باستخدامها؟ هنا يأتي دور الخوارزميات.
الخوارزمية هي مجموعة من الخطوات المنطقية والمتسلسلة لحل مشكلة معينة أو لإنجاز مهمة محددة.
تمامًا مثل وصفة الطبخ التي تخبرك بالخطوات الدقيقة لإعداد طبق ما، الخوارزمية تخبر الكمبيوتر بالخطوات الدقيقة التي يجب عليه اتباعها لإنجاز المهمة.
البحث عن اسم في قائمة طويلة، ترتيب مجموعة من الأرقام، أو إيجاد أقصر طريق بين نقطتين على الخريطة كلها أمثلة على مشاكل تُحل باستخدام الخوارزميات.
هل تعلم؟ أن كلمة “خوارزمية” مشتقة من اسم العالم المسلم العظيم محمد بن موسى الخوارزمي! هذا العالم الفذ، الذي عاش في القرن التاسع الميلادي، كان له دور محوري في تطوير علم الجبر ونشر نظام الأرقام الهندية (التي نعرفها اليوم بالأرقام العربية) في العالم الغربي. كتابه “الجبر والمقابلة” كان عملاً رائدًا، وأساليبه المنهجية لحل المشكلات هي الأساس لمفهوم “الخوارزمية” الذي نستخدمه اليوم.
هل يهم حقاً اللغة التي تبدأ بها؟
حسنا بما اننا إتفقنا أن البرمجة == حل المشاكل عن طريق الخوارزميات و هياكل البيانات. السؤال المنطقي الآن هو: هل يهم حقًا أي لغة برمجة أبدأ بها؟ والإجابة هي: نعم، إلى حد ما، ولكن ليس بالقدر الذي تعتقده!
في بداية رحلتك، الأهم هو أن تبدأ بلغة تساعدك على إستيعاب المفاهيم الأساسية للبرمجة دون أن تغرق في التفاصيل المعقدة. الهدف هو أن تتعلم كيف تفكر كمبرمج، ومنطق تفكيك و حل مشاكل العالم الواقعي عن طريق كتابة الأكواد خطوة بخطوة.
هل تعلم؟ أن أغلب المبرمجين المحترفين لا يتقنون لغة واحدة فقط، بل يتعلمون عدة لغات برمجة مع الوقت. هذا لأن كل لغة لها نقاط قوة وتستخدم لأغراض معينة و في مجالات معينة لكن من حسن الحظ يتصادف أن بايثون تستعمل و مطلوبة بشدة في مجالات كثيرة و قد لا تحتاج إلى تعلم لغة أخرى بعدها إلا إذا كنت ترغب بذلك.
تعلمك للمفاهيم الأساسية بلغة واحدة يسهل عليك بشكل كبير تعلم لغات أخرى في المستقبل.
ولهذا السبب، تُعد بايثون خياراً ممتازاً للمبتدئين، فهي تسمح لك بالتركيز على الجوهر: حل المشكلات والتفكير المنطقي، بدلاً من التعقيدات اللغوية التي هي أساسا و في بعض الحالات ترتبط بفشل مصمم اللغة وليس لأن اللغة يجب أن تكون صعبة.
لماذا تختار بايثون تحديداً؟
إذا كنت تريد المزيد من الأسباب التي تقنعك بتعلم بايثون أولا قبل أي لغات برمجة أخرى، دعني أساعدك:
بين مئات لغات البرمجة المتاحة، قد يبدو الاختيار محيراً لكن بايثون تبرز كواحدة من أكثر اللغات شعبية ونمواً في العالم، وهي الخيار الأمثل لك كمبتدئ لعدة أسباب جوهرية:
أ. سهولة التعلم والقراءة: فلسفة البساطة
أحد أروع الأشياء في بايثون هو مدى قرب تركيبها من اللغة الإنجليزية العادية. على عكس بعض اللغات الأخرى التي قد تبدو معقدة برموزها، فإن كود بايثون نظيف وسهل القراءة للغاية. هذا يعني أنك ستقضي وقتاً أقل في فهم و تذكر طريقة الكتابة ووقتًا أكثر في التركيز على منطق حل المشكلة نفسها وهذا هو ما يجعلك مبرمجا بالأساس تتجاوز حدود اللغات.
هذه البساطة هي جزء أساسي من فلسفة لغة بايثون، والتي صاغها مبتكرها غيدو فان روسم (Guido van Rossum). لقد سعى غيدو إلى إنشاء لغة برمجية تكون واضحة، مقروءة، وسهلة الفهم للمبتدئين وللخبراء على حد سواء. هذه الفلسفة تظهر في المقولة الشهيرة لألبرت أينشتاين: “العبقرية هي تبسيط المعقد لا تعقيد البسيط.” وهذا بالضبط ما حققته بايثون: جعلت البرمجة المعقدة أكثر بساطة ويسراً.
لكن من لا تفهم الأمر خطأً؛ فبايثون، على الرغم من سهولتها، أولا هي لا تغنيك عن تعلم حل المشاكل البرمجية وهو الشيء الصعب الحقيقي في البرمجة. كذلك هي لغة قوية رغم سهولتها من حيث كتابة الأكواد وهي واحدة من أكثر لغات البرمجة شعبية وطلبًا في العالم حاليًا، وتوفر فرص عمل برواتب كبيرة. والأهم من ذلك كله، أنها لغة الذكاء الاصطناعي، وهو المجال الذي يُعد الثورة القادمة في الحضارة البشرية!
ب. مجالات استخدام واسعة
بايثون هي لغة متعددة الاستخدامات بشكل مذهل. إتقانك لها سيمكنك من العمل في مجالات متنوعة ومطلوبة بشدة:
- تطوير الويب: باستخدام أطر عمل قوية مثل Django و Flask، يمكنك بناء مواقع وتطبيقات ويب ديناميكية.
- علم البيانات وتحليلها: باستخدام مكتبات مثل Pandas و NumPy، يمكنك تحليل كميات هائلة من البيانات واستخلاص الرؤى منها.
- الذكاء الاصطناعي وتعلم الآلة: بايثون هي اللغة الأولى في هذا المجال بفضل مكتبات مثل TensorFlow و PyTorch التي تمكّنك من بناء أنظمة ذكاء اصطناعي معقدة.
- الأمن السيبراني وأتمتة المهام: يمكن استخدام بايثون لكتابة سكربتات لأتمتة المهام المتكررة أو أدوات لاختبار الثغرات الأمنية.
- تطوير الألعاب والتطبيقات المكتبية.
هل تعلم؟ الكثير من الأدوات التي يستخدمها العلماء في وكالة ناسا لتحليل البيانات الفضائية والصور المأخوذة من التلسكوبات الفضائية مكتوبة بلغة بايثون!
ج. مجتمع ضخم وداعم
يستخدم الملايين من المبرمجين حول العالم لغة بايثون، وهذا يعني وجود مجتمع عالمي ضخم ونشط للغاية. أي مشكلة أو تحدٍ تواجهه، ستجد غالبًا أن شخصًا ما قد واجهه قبلك وشارك الحل في منصات مثل Stack Overflow و GitHub. هذا الدعم الهائل يجعل رحلة تعلمك أسهل بكثير.
د. مكتبات قوية وجاهزة
تأتي بايثون مع “بطاريات مدمجة”، وهذا يعني أنها تحتوي على مكتبة مبرمجة سابقا وضخمة وكذلك مجموعة هائلة من المكتبات الخارجية (يجب تحميلها قبل إستعمالها) التي توفر لك أدوات جاهزة لأداء مهام معقدة. هذا يعني أنك لست بحاجة إلى بناء كل شيء من الصفر، بل يمكنك الاستفادة من عمل آلاف المطورين الآخرين لتسريع عملك والتركيز على إيجاد حل للمشكلة بين يديك بدل تضييع الوقت في أمور تمت برمجتها من قبل.
هل تعلم؟ أن الشركات الكبرى مثل Google، وInstagram، وNetflix تعتمد بشكل كبير على بايثون في بنيتها التحتية الأساسية وفي تطوير ميزات ومنتجات رئيسية، وذلك بفضل قوة هذه المكتبات والمرونة التي توفرها.
خلاصة الفصل
- البرمجة هي المحرك الذي يمنح أجهزة الكمبيوتر الذكاء والفائدة، وتعتمد بشكل أساسي على هياكل البيانات والخوارزميات.
- بايثون هي لغة برمجة قوية تتميز بسهولة تعلمها، وتعدد استخداماتها، والدعم الكبير من مجتمعها ومكتباتها الغنية، وكل ذلك يرجع لفلسفة البساطة التي وضعها مبتكرها غيدو فان روسم.
- فهمك لهياكل البيانات والخوارزميات هو المفتاح لإتقان البرمجة.
- تعلمك لبايثون يضعك على الطريق الصحيح لدخول مجالات تقنية متقدمة ومطلوبة بشدة في سوق العمل.
أول تمرين بسيط لك!
افتح محرر الأكواد (يمكنك فتحه من الزر في الأسفل على اليمين) وجرب هذا الكود الآن:
print("خطوتي الأولى في عالم بايثون!")
إنتظر قليلا حتى يتم إعداد بايثون ثم إضغط على زر تشغيل في محرر الأكواد، ستظهر لك عبارة خطوتي الأولى في عالم بايثون!.
يمكنك إعتبار هذا اول برنامج لك بلغة بايثون. في لغات برمجة أخرى سوف تحتاج إلى أكثر من سطر واحد فقط لطباعة شيء بسيط على الشاشة لكن ليس في بايثون!
يمكنك تجربة معظم الأكواد البسيطة في هذا الكتاب من المحرر المدمج في هذا الكتاب، لكن إذا كنت تفضل العمل على حاسوبك الخاص وتجهيز بيئة مناسبة للبرمجة، في الفصل القادم، سوف تتعلم كيف تثبّت بايثون على حاسوبك!