عندما أتعلم شيئا جديدا، لطالما كنت أقارنه بشيء أعلمه جيدا. هذه احدى طرقي لأتعلم وأفهم.
اكتسبت خبرةً في الطبخ قبل تعلمي البرمجة، لذلك كثيرا ما أحاول مقارنة البرمجة بالطبخ، خصوصا عند تعلم الأساسيات.
هذا ملخص بعض الأفكار التي احتفظت بها في مذكرتي.
مكان العمل
الطبخ: المطبخ
البرمجة: البيئة التطويرية
كلاهما يضم كل الادوات والمكونات. وتتم فيه العمليات.
التجربة
الطبخ: تذوق الطعام.
البرمجة: Debug.
و يتم في كل منهما التعديل بعد التجربة حسب الحاجة. هنا غالبا نجيب على هذا السؤال(هل هناك خطأ في طريقة العمل؟)
الاختبار
الطبخ: يتم اختبار الطعم وطريقة التقديم.
البرمجة: يتم اختبار التصميم و الكفاءة في الاداء.
يشتركان في إختبار المظهر (تصميم البرنامج/ طريقة تقديم الطبخة).
التحضير
الطبخ: تجهيز المكونات. (غسل، تقطيع، نقع...).
البرمجة: تعريف المتغيرات، استدعاء المكتبات...
ففي البرمجة ربط المتغيرات بطرق و ضمها في سياق كود لتؤدي الوظيفة المطلوبة. وهذا يشبه تجهيز المكونات لنحدد ما الذي سنقوم به ( نخلط المكونات الجافة- نسلق بعض المكونات- نخفق البعض الآخر).
التعلم
تبدأ بالأساسيات التي يتعلمها كل شخص ثم الانطلاق للاكمال بشكل ذاتي وابداع اطباق وبرامج جديدة.
قواعد مشتركة
(كل الطرق تودي إلى روما). هناك عدة كودات تقوم بعمل واحد. وهناك عدة وصفات تنتج نفس الطبخة.
( نجود بالموجود) نستخدم كل ما يتوفر في الطبخ لننتج افضل ما لدينا. هذا يشبه محاولتنا لتجنب ( code bloat)، حيث نقوم بكتابة الكود باكثر طريقة مختصرة ومرتبة.
( استخدم المساحات بذكاء) في البرمجة نحتاج لمراعاة الذاكرة بنفس الحاجة لمراعاة عدم استنفاذ كل الأواني في المطبخ!
في الواقع يبدو أني لست الوحيدة؛ فقد وجدت احدى المحاولات لتحويل وصفة طعام إلى كود!
هذه هي الوصفة:
وهذه محاولة التحويل:
هل تجدون روابط اخرى بين الطبخ و البرمجة؟ أم أنكم مازلتم ترون انه شتان ما بينهما؟
التعليقات