لمحة سريعة حول كتاب "Algorithms to Live By"
نُشر يوم 9 ديسمبر 2017 بواسطة يوغرطة بن علي (Youghourta Benali)
كتاب يتحدث عن الخوارزميات بشكل عام وعن الطريقة التي يُمكن فيها للبشر التّعلم من الخوارزميات التي تستخدمها البرامج و"الآلات” لإيجاد حلول لمشاكل في حياتنا اليومية بشكل خاص.
عنوان الكتاب مُضّلل بعض الشّيء، أو لأكون أكثر وضوحًا، العنوان يعبر بشكل جيد عن بعض فصول الكتاب لكن ليس كامل فصولها. لما شرعت في قراءة الكتاب (الفصل الأول) كان العنوان متوافقا مع ما كنت أتوقعه من الكتاب، أي أنه سيتحدث عن خوارزميات يمكنني أن أستخدمها في حياتي اليومية لأقلل من مقدار “التفكير الآني” الذي يجب القيام به أمام كل معضلة أو مشكلة تحتاج الحل. الأمثلة الأولى التي عرضها الكتاب مثل فكرة، “إن كنت ترغب في شراء بيت أو تأجيره فكم من الوقت يجب أن تقضيه في البحث قبل أن تختار البيت المُناسب” فعرض إجابة مثل “خصص 37 بالمئة من وقتك الذي تنوي قضاءه في البحث عن بيت للبحث فقط دون اتخاذ أي قرار، ثم اختر أول بيت يكون أفضل من البيوت التي سبق وأن زرتها بمجرد انقضاء تلك الفترة” سيكون مفيدًا لا محالة. الكتاب يشرح كيف توصلنا إلى قاعدة الـ 37 بالمئة هذه لكنك لن تحتاج إلى تذكر تلك التفاصيل بقدر ما تحتاج أن تتذكر هذه الخوارزمية وتطبقها كلما احتجتها.
لكن بعدها يستعرض الكتاب مفاهيم ومبادئ في الخوازميات، بعضها يصلح أن يكون كمقدمة “للعامّة” حول الخوازميات واستخداماتها، وبعضها يُمكن اعتباره “إعادة تقديم” لبعض المفاهيم المتقدمة حتى لم قضى سنوات من حياته في كتابة الخوارزميات والبرمجة.
من بين أجمل الأفكار التي خرجت بها من الكتاب هي أنه من المفيد جدًا معرفة الخوارزميات والحلول الخاصة بالمشاكل الشائعة (مثل مشكل البحث عن بيت آنف الذكر والذي يُعرف عادة بمشكل “البحث عن سكريتيرة”) رغم أن معرفة الخوارزمية لا يعني بالضرورة الوصول إلى أفضل نتيجة ممكنة، فهدف الخوارزمية هو توفير أفضل طريقة مُمكنة لحل المشكل وليس بالضرورة الطريقة التي توصلك إلى أفضل نتيجة كل مرة (لاحظ الفرق ما بين الطريقة والنتيجة). معرفة أفضل طريقة لحل المشكل رغم عدم ضمانها لأفضل نتيجة يفيدك في التخلص من الضغط والجهد اللازمين لحل كل مشكل (له حل معروف). فبدل أن تلوم نفسك إن لم تحصل على أفضل نتيجة ممكنة فعلى الأقل ستعرف بأن عدم الحصول على تلك النتيجة لم يكن بسبب خطأ ارتكتبه (لأنّك اتبعت أفضل حل ممكن) لكن بسبب استحالة الحصول على أفضل نتيجة ممكنة في كل مرة. بعبارة أخرى معرفتك لتلك الخوازميات والحلول الشهيرة سيعطيك راحة البال التي ينشدها الجميع.
فكرة أخرى جميلة (ربما لم يسبق لي أن نظرت إليها من هذه النظرة الجميلة) هو أنه ليس من الحكمة السعي وراء أفضل نتيجة ممكنة كل مرة. فعلى سبيل المثال هناك مشاكل نعرف (أو يمكننا أن نثبت رياضيا) وجود حل مثالي لها لكن السعي وراء هذا الحل قد يكلف مقدارا معينا من الجهد والوقت، لكن الوصول إلى حل شبه مثالي (ولنفرض أنه سيكون 90 بالمئة من الحل الأمثل) سيتطلب عُشُر ذلك الوقت أو أقل بذلك بكثير. بعبارة أخرى في الكثير من الحالات إيجاد حل جيد بما فيه الكفاية (وليس مثاليا) هو أمر جيد بما فيه الكفاية، والسعي وراء الكمال هنا هو ضرب من الجنون أو من قلّة الحكمة.
فكرة أخرى جميلة استخلصتها من الكتاب هو أن كثرة المعلومات لا تعني بالضرورة رؤية أوضح وفهما أفضل، بل في الكثير من الحالات تعني فهما أسوأ ورؤية أكثر ضبابية (وربما خاطئة بشكل كامل). سبق وأن صادفت هذه الفكرة في كتاب البجعة السوداء لنسيم طالب، لكن لم تكن بالوضوح التي ستجدها في أمثلة هذا الكتاب (فصل كامل يعالج هذه القضية). كما ستجد تلميحا (بل يُمكن اعتباره تصريحًا أيضا) بوجوب التقليل من استهلاك الأخبار اليومية.
الكتاب مفيد خاصة للمبرمجين. طويل نسبيًا لكّن محتواه دسم.
الكتاب متوفر على أمازون من هنا: http://amzn.to/2BoAVtC