Last updated on July 9, 2019
تعلم البرمجة وتعلم تطوير البرامج هما نقطتان مختلفتان يجب فهم الفرق بينهما. من بين الأسئلة الأساسية التي تتبادر إلى ذهن الطالب عند بداية مشروع تعلمه تطوير البرامج، بأي لغة يجب عليَ البدء؟ فيذهب ليوتيوب أو مقال هنا أو كتاب هناك، فنرى بعضهم يقترح البدء بالتعلم مع لغة سي أو سي بلس بلس، أو جافا، وبعضهم مع بايثون، وغيرهم مع روبي وهكذا. فكل يقترح عليك لغة هو يحبها ويستعملها بشكل يومي لحل مشاكل تواجهه هو، مشاكل خاصة به هو، لا أنت أيها الطالب. يجب أن نعيد صياغة السؤال المطروح سابقا، كي يصبح كيف يمكن أن نحل مشكلة تُواجهنا عبر استخدام البرمجة؟ بدل أن يكون كيف أتعلم البرمجة؟
تعتبر البرمجة جزء مهم وكبير من تطوير البرامج ولكنها لا تمثل كل شيء. أغلب البرامج الموجودة حاليا هي حلول لأتمتة عمليات كانت تتم يدويا وبشكل ممل. فهنا كان يوجد مشكلة تواجه مستخدم فأتت البرمجة لتحل له هذه المشكلة.
لدينا أحمد، رجل في الثلاثينيات من عمره، موظف في دائرة حكومية، في محافظة بعيدة عن العاصمة. تتلخص أعمال أحمد اليومية في الأمور التالية:
- ملئ استمارة لمواطن.
- تغيير بعض المعلومات الشخصية لمواطن مسجل سابقا في المصلحة.
- تأكد من جهوزية أوراق المواطن قبل ملئ الاستمارة.
فيقضي أحمد نهاره بملئ استمارات وأعمال يدوية مجهدة، مثلا هناك حقل داخل الاستمارة يتطلب وضع عمر الشخص زيادة عن تاريخ ميلاده. فيجب على أحمد أن يحسب عمر كل مواطن يأتيه بشكل دقيق يعني مثلا المواطن رامي عمره ٣٤ سنة وشهرين و ١٥ يوم. فهذا العمل مجهد للموظف أحمد على مدار النهار، سمع أحمد في أحمد الأيام من أحد أولاد أخته عن موضوع البرمجة وتطوير برامج الكومبيوتر وغيره. فقرر أن يستعلم عن الموضوع، وبدون ذكر التفاصيل، حاليا، قرر أن يجد حل لمشكلته من خلال البرمجة. ويكمن الحل بالنسبة لأحمد، مبدئيا، أن يقوم بعمل برنامج يحسب له العمر بضغطة زر وبدون مجهود. بداية يجب أنن ننبه أن أحمد يعرف تحديدا ما المشكلة التي يساعى لحلها، ما المعلومات التي يريد الحصول عليها كنتيجة وما المعلومات التي يريد إدخالها. كتب أحمد كل هذه التفاصيل على ورقة، حدد ما الموارد المتاحة لديه، كمبيوتر في مكتبه، تاريخ ميلاد المواطن، وتاريخ اليوم، والنتيجة هي العمر بشكل مفصل.
بعد أن ذهب أحمد واستفسر عن لغات البرمجة التي تناسب هذه المشكلة، اقترح عليه ابن أخته، لغة بايثون. اشترى أحمد كتاب عن البايثون وبدأ بتعلم الأساسيات وفهم المتغيرات وكيف تعمل لغة البايثون وماذا تحتاج حتى تعمل على الكمبيوتر.
بعد مرور شهر تقريبا، في هذا المشوار، تمكن أحمد من فهم أساسيات لغة البايثون وكيفية عملها، فكتب أول سكريبت له بحيث يدخل له تاريخ ميلاد المواطن ويخرج له الرقم المطلوب بضغطة زر. نجح أحمد في تخفيف الضغط عليه وتسريع عملية ملئ الاستمارة للمواطن وبالتالي توفير الوقت على المواطن. فرح أحمد بإنجازه هذا فرحا عظيما، فقد حُلت مشكلة لطالما عانى منها لسنين طوال بشكل شبه يومي.
الخلاصة من هذه القصة أن أحمد لم يطلب تعلم لغة برمجة لمجرد الفضول أو حب التعلم أو التعرف على هذا العالم، بل دخله بهدف إيجاد حل لمشكلة تهمه ويفهم تفاصيلها بشكل دقيق. لذلك أحمد تعلم كيفية إيجاد حل لمشكلة عبر تفكيك عناصر المشكلة وعبر تحديد النتيجة المرجوة من البرنامج، وكيفية كتابة مخطط لبرنامجه قبل البدء حتى بتعلم اللغة. وهنا يكمن الفرق بين تعلم البرمجة وبين تطوير البرامج.
Be First to Comment