٩ مشاريع برمجية ستجعل منك مطوراً أفضل

TThe Coding Koala
Computing/SoftwareAdult EducationInternet Technology

Transcript

00:00:00هل تعرف ما هو الأكثر إحباطاً من بناء مشروع ما؟ ألا تعرف ماذا تبني.
00:00:04في مرحلة ما من رحلتك كمطور، ستصل إلى هذه المرحلة الغريبة.
00:00:08بناء تطبيق CRUD آخر باستخدام إطار عمل JavaScript يبدو مملاً،
00:00:11لكن بناء نظام تشغيل من الصفر يبدو مستحيلاً. أنت عالق في المنتصف.
00:00:16لا تريد شيئاً سهلاً، ولا تريد المستحيل. تريد فقط شيئاً ذا معنى.
00:00:21شيء يمثل تحدياً كافياً ليرتقي بمستواك، ولكن ليس ساحقاً لدرجة أن تستسلم في منتصف الطريق.
00:00:26صدقني، لقد مررت بذلك. لذا في هذا الفيديو، سأعطيك بعض أفكار المشاريع الرائعة حقاً.
00:00:32لقد قسمت هذه المشاريع إلى ثلاثة مستويات. المستوى الأول: بناء أسسك. المستوى الثاني: التخزين،
00:00:38قواعد البيانات، وأنظمة البيانات. والمستوى الثالث: الأنظمة المتقدمة والبنية الداخلية.
00:00:44إذا قمت ببناء هذه المشاريع، فلن تصبح أفضل في البرمجة فحسب، بل ستبدأ بالتفكير
00:00:49مثل المهندسين. لنبدأ بالمستوى الأول. المشروع الأول هو بناء خادم HTTP الخاص بك من الصفر.
00:00:55إذا كنت تشاهد هذا، فمن المحتمل أنك تعرف ما هو خادم HTTP. في كل مرة تفتح فيها
00:01:01موقعاً إلكترونياً أو تستدعي واجهة برمجة تطبيقات (API)، هناك طلب واستجابة يحدثان خلف الكواليس.
00:01:06ولكن حتى الآن، لم تتعامل مع الأمر إلا من خلال أطر عمل مثل Express. إن بناء
00:01:12خادم HTTP مصغر خاص بك يجبرك على فهم ما يحدث حقاً في الأسفل. ستتعلم كيف تقوم
00:01:19مقابس TCP بإرسال واستقبال البيانات، وكيفية تحليل طلبات HTTP، وتنسيق الاستجابات، والتعامل مع طلبات متعددة
00:01:25بشكل متزامن. إذا كنت تشعر بالفعل بالارتباك حول كيفية البدء في هذه المشاريع،
00:01:30فلدي حل صغير لك في نهاية هذا الفيديو. تأكد من عدم تفويت ذلك. والآن لننتقل إلى المشروع الثاني.
00:01:35بناء "الصدفة" (Shell) الخاصة بك. لقد استخدمت أوامر مثل cd و ls و pwd مئات المرات.
00:01:40لكن هل فكرت يوماً فيما يعالج تلك الأوامر بالفعل؟ عندما تبني الـ Shell الخاصة بك،
00:01:46فإنك تنشئ ذلك النظام بنفسك. ستتعلم أشياء مثل قراءة وتحليل مدخلات المستخدم،
00:01:52وتنفيذ العمليات والتعامل مع استدعاءات النظام، وفهم مفاهيم مستوى نظام التشغيل مثل العمليات والأوامر.
00:01:58من خلال بناء الـ Shell الخاصة بك من الصفر، ستفهم أجهزة الكمبيوتر من مستوى عميق.
00:02:04الآن تبدأ الأمور في أن تصبح ممتعة. سنرى ما هي المشاريع في المستوى الثاني.
00:02:09المشروع الأول هنا هو بناء نظام Redis الخاص بك. Redis هو مخزن بيانات
00:02:15في الذاكرة يستخدم كذاكرة تخزين مؤقت، وقاعدة بيانات، ووسيط رسائل، وأكثر من ذلك. إنه سريع بشكل لا يصدق.
00:02:21لكن حتى تبني واحداً بنفسك، لن تفهم حقاً السبب. عندما تنفذ نسخة Redis الخاصة بك،
00:02:26ستتعلم كيف تعمل هياكل البيانات في الذاكرة. ستنفذ أوامر Redis الأساسية.
00:02:32ستفهم بروتوكول Redis. وستقوم بإدارة اتصالات عملاء متعددة بكفاءة باستخدام حلقات الأحداث (event loops).
00:02:38هذه مجرد بعض النقاط البارزة. لا يزال هناك العديد من الأشياء التي ستتعلمها بمجرد البدء
00:02:43في العمل على هذا. ستدرك أن هندسة البرمجيات هي أكثر من مجرد بناء تطبيقات CRUD.
00:02:48المشروع التالي هو بناء نظام GIT الخاص بك. أنت تستخدم GIT كل يوم، ولكن هل تعرف حقاً كيف يعمل؟
00:02:54عندما تبني نظاماً مبسطاً للتحكم في الإصدارات بنفسك، سيتضح لك كل شيء. ستفهم
00:03:00كيف يتم تخزين التعديلات (commits) داخلياً. ستنفذ التجزئة (hashing) وتخزين المحتوى القابل للعنونة.
00:03:05ستنظم لقطات الملفات في أشجار التعديلات. وهناك الكثير مما ستتعلمه وتنفذه.
00:03:11والشيء الرائع في البناء من الصفر هو أنه يمكنك تعديله ليعمل كما تشاء.
00:03:16أخيراً، مشروعنا الثالث هو بناء قاعدة بيانات SQLite الخاصة بك. SQLite هو محرك
00:03:22قاعدة بيانات لا يحتاج لخادم ويقوم بتخزين كل شيء في ملف واحد. على عكس MySQL أو Postgres،
00:03:29لا توجد عملية خادم منفصلة. إنه خفيف ولكنه قوي بشكل لا يصدق. عندما تبني نسختك الخاصة،
00:03:34ستفهم كيف يتم تنظيم البيانات باستخدام هياكل مثل B-trees. ستقوم بتحليل وتنفيذ
00:03:39استعلامات بسيطة. ستنفذ الفهرسة لاسترجاع البيانات بشكل أسرع. كمطور، لا يمكنك الهروب
00:03:45من قواعد البيانات. ولكن بمجرد أن تفهم كيف يعمل أحدها داخلياً، ستكون من بين القلة من المطورين المتميزين.
00:03:52الآن في المستوى الثالث، نذهب إلى عمق أكبر. المشروع الأول هنا هو بناء لغة برمجة مصغرة خاصة بك.
00:03:58نعم، لغتك الخاصة. ستنشئ شيئاً يقرأ الكود ويفهمه وينفذ التعليمات.
00:04:04ورغم أن ذلك يبدو مخيفاً، إلا أنه أحد أكثر المشاريع إجزاءً التي يمكنك بناؤها.
00:04:10ستتعلم وتنفذ أشياء مثل Lexer و Parser و Abstract Syntax Tree. والأهم من ذلك،
00:04:17ستفهم كيف تعمل المفسرات (interpreters) والمترجمات (compilers) فعلياً. هذا مشروع رائع لأنك ستفهم
00:04:22أخيراً كيف نتواصل فعلياً مع أجهزة الكمبيوتر. ويمكنك أيضاً التباهي بأنك أنشأت
00:04:27لغة برمجة وتسميتها بما تريد. المشروع الثاني هو بناء عميل BitTorrent الخاص بك.
00:04:32هنا يأتي دور الأنظمة الموزعة. BitTorrent هو نظام مشاركة ملفات من نظير إلى نظير
00:04:38حيث يقوم المستخدمون بتنزيل أجزاء الملف من عدة أقران بدلاً من خادم واحد.
00:04:44عندما تبني هذا، ستنفذ ميزة اكتشاف الأقران، وتدير الاتصالات بين العقد، وتقسم الملفات إلى
00:04:50أجزاء، وتضمن سلامة الملفات، وتتعامل مع الاتصالات الموزعة. هذا ليس مشروعاً سهلاً.
00:04:57أنا متأكد من أنك لم تفهم حتى نصف الأشياء التي قلتها للتو. لكنه يعلمك كيف تعمل
00:05:02الأنظمة الموزعة واسعة النطاق فعلياً. وأخيراً، مشروعنا الأخير هو بناء مساعدك البرمجي الخاص.
00:05:08شيء مشابه لـ Claude Code. أدوات الذكاء الاصطناعي الحديثة تبدو رائعة، ولكن في جوهرها،
00:05:14هي أنظمة تدمج نماذج لغوية كبيرة مع بنية البرمجيات التقليدية. عندما تبني
00:05:20واحداً بنفسك، ستقوم بدمج واجهة برمجة تطبيقات LLM في تطبيق ما. ستقوم بتحليل وفهرسة ملفات المشروع
00:05:27لتوفير السياق. ستدير المطالبات (prompts) وتتحكم في الاستجابات. ستصمم نظاماً
00:05:32يمزج الذكاء الاصطناعي مع مبادئ الهندسة الحقيقية. وبعد أن تبدأ العمل على هذا، ستفهم
00:05:38كيف تعمل أدوات البرمجة بالذكاء الاصطناعي الشهيرة هذه فعلياً. وليس هذا فحسب، فبما أن الذكاء الاصطناعي
00:05:44يحظى بضجة كبيرة اليوم، فهذا مشروع رائع ومليء بالتحديات يمكن أن يجعلك متميزاً. الآن لنكن صادقين.
00:05:50بعض هذه المشاريع صعبة. بناء نسخة من Redis أو Git أو عميل BitTorrent ليس
00:05:55شيئاً تنهيه ببساطة خلال عطلة نهاية الأسبوع. سوف تتعثر. سوف تشك في نفسك. وأحياناً
00:06:01لن تعرف حتى ما إذا كنت تنفذ الأمر بشكل صحيح. وهذا هو المكان الذي يستسلم فيه معظم الناس عادةً.
00:06:05للتعامل مع هذا، هناك منصة تسمى CodeCrafters. إنها منصة تعليمية قائمة على المشاريع
00:06:11حيث تعيد بناء أدوات مثل Redis و SQLite وخوادم DNS وخوادم HTTP خطوة بخطوة. هم لا
00:06:19يعطونك الحل، بل يقدمون لك اختبارات ومعالم منظمة. وأنت تقوم بتنفيذ كل شيء بنفسك.
00:06:23لقد استخدمتها شخصياً عند العمل على هذه المشاريع. وبصراحة، فإن وجود ذلك الاتجاه
00:06:29المنظم صنع الفرق بين الاستسلام والإنجاز. لذا إذا أعجبتك أفكار المشاريع هذه ولكن
00:06:34أردت توجيهاً بينما لا تزال تقوم بالعمل الحقيقي، سأترك رابطاً في الوصف. ولكن سواء استخدمت
00:06:39منصة أو عملت بمفردك تماماً، فإن الشيء المهم هو أن تبني بنفسك. إذا كنت قد قضيت وقتاً
00:06:45طويلاً في البحث عبر الإنترنت عن المشروع التالي لتبنيه، آمل أن يكون هذا قد أعطاك الوضوح.
00:06:51قد يبدو الأمر مخيفاً في البداية، لكن الماء البارد لا يصبح دافئاً حتى تقفز فيه. إذا أعجبك هذا
00:06:57النوع من الفيديوهات، تأكد من الإعجاب والاشتراك، وأخبرني بأي مشروع ستنوي البدء به.
00:07:02سأراكم في الفيديو القادم.

Key Takeaway

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

Highlights

تجاوز مرحلة بناء تطبيقات CRUD التقليدية والانتقال إلى مشاريع هندسية عميقة.

تقسيم مسار التعلم إلى ثلاثة مستويات تبدأ من الأساسيات وتصل إلى الأنظمة الموزعة والذكاء الاصطناعي.

أهمية بناء الأدوات التي نستخدمها يومياً مثل Git و Redis و SQLite لفهم كواليس عملها.

التحديات البرمجية في بناء المترجمات (Compilers) والأنظمة الموزعة مثل BitTorrent.

دمج نماذج الذكاء الاصطناعي (LLM) مع هندسة البرمجيات التقليدية لبناء مساعد برمي متطور.

استخدام منصات تعليمية منظمة مثل CodeCrafters للتغلب على عقبات التنفيذ في المشاريع المعقدة.

Timeline

مقدمة: الخروج من منطقة الراحة البرمجية

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

المستوى الأول: بناء الأسس (خادم HTTP والصدفة)

يركز هذا القسم على فهم البروتوكولات والأنظمة الأساسية من خلال بناء خادم HTTP وصدفة (Shell) من الصفر. بناء خادم HTTP يجبر المطور على التعامل مع مقابس TCP وتحليل الطلبات وتنسيق الاستجابات بشكل يدوي بعيداً عن أطر العمل الجاهزة. أما بناء الـ Shell، فيكشف للمطور كيفية معالجة الأوامر مثل 'cd' و 'ls' وكيفية التفاعل مع استدعاءات نظام التشغيل. يهدف هذا المستوى إلى ترسيخ فهم كيفية تواصل البرامج مع الشبكة ومع نظام التشغيل في مستويات منخفضة. يعتبر المتحدث هذه الخطوات ضرورية لامتلاك أساس متين قبل الانتقال للمشاريع الأكثر تعقيداً.

المستوى الثاني: أنظمة التخزين والبيانات (Redis, Git, SQLite)

ينتقل الفيديو إلى مشاريع المستوى الثاني التي تركز على تخزين وإدارة البيانات بكفاءة عالية. المشروع الأول هو بناء نسخة من Redis لفهم هياكل البيانات في الذاكرة وبروتوكولات الاستجابة السريعة وحلقات الأحداث. يتبعه مشروع بناء نظام Git لفهم التجزئة (hashing) وكيفية تخزين لقطات الملفات والتحكم في الإصدارات داخلياً. المشروع الثالث في هذا المستوى هو بناء SQLite، حيث يتعلم المطور كيفية تنظيم البيانات باستخدام هياكل B-trees وكيفية تنفيذ الفهرسة والاستعلامات. يوضح المتحدث أن فهم كواليس هذه الأدوات يجعل المطور من القلة المتميزة التي تدرك كيفية عمل قواعد البيانات والأنظمة الجوهرية.

المستوى الثالث: الأنظمة المتقدمة والذكاء الاصطناعي

يستعرض هذا القسم المشاريع الأكثر تعقيداً والتي تبدأ ببناء لغة برمجة مصغرة تشمل المفسرات والمترجمات وخرائط AST. المشروع الثاني هو بناء عميل BitTorrent، وهو مدخل ممتاز لفهم الأنظمة الموزعة، ومشاركة الملفات بين الأقران، وإدارة الاتصالات المتعددة. يختتم المتحدث المشاريع بفكرة بناء مساعد برمجي مدعوم بالذكاء الاصطناعي يدمج بين نماذج LLM وهندسة البرمجيات التقليدية. بناء هذا المساعد يتطلب فهرسة ملفات المشروع وإدارة المطالبات (prompts) وتوفير سياق دقيق للذكاء الاصطناعي. تعتبر هذه المشاريع قمة التحدي البرمجي لأنها تجمع بين المنطق المعقد والتقنيات الحديثة والأنظمة واسعة النطاق.

نصائح للتنفيذ والخاتمة

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

Community Posts

View all posts