السلام عليكم يا جماعة الخير، معكم أخوكم أبو عمر.
خليني أحكي لكم قصة صارت معي أول ما تخرجت. كنت وقتها شاب صغير، مليان حماس وطاقة، وشايف حالي “أبو العُرّيف” في البرمجة. جهزت سيرة ذاتية (CV) “مفنتكة” على قولة أهل الشام، حطيت فيها كل لغات البرمجة اللي سمعت فيها، من الـ C++ اللي أكلت راسنا بالجامعة للـ Python اللي كنت يا دوب أكتب فيها “Hello World”.
وبلشت رحلة التقديم على الوظائف. كنت أصحى الصبح، أفتح فنجان القهوة، وأقضي ساعات أبعت سيرتي الذاتية لكل إيميل بلاقيه قدامي. كنت أتخيل حالي بعد كل إيميل ببعته، إنه في مدير توظيف على الطرف الثاني رح يندهش من مهاراتي الخارقة ويحكي: “هذا هو الشخص اللي بدنا إياه!”.
لكن الواقع كان صفعة قوية. أفضل سيناريو كان يوصلني إيميل رفض تلقائي بعد دقيقتين، من نوع “شكراً لاهتمامك، ولكن…”. والأسوأ؟ الصمت. فراغ مهول كانت تصرخ فيه سيرتي الذاتية بدون ما حدا يسمعها. حسيت كأني صياد برمي شبكته في صحراء، كل مهاراتي وخبراتي المكتوبة على الورق كانت بلا قيمة حقيقية في نظر الشركات. كانت مجرد ادعاءات لا دليل عليها.
في ليلة من ليالي الإحباط، وأنا بقلّب في موقع GitHub، لفت انتباهي مصطلح “Open Source”. قرأت عنه أكتر، وفجأة، وكأن لمبة نورت فوق راسي. أدركت إني كنت ماشي في الطريق الغلط تماماً. ليش أضل أحاول أقنع الناس إني بعرف أسبح، وأنا بقدر أنط في المسبح وأورجيهم سباحتي؟
ومن هنا، بدأت رحلتي الحقيقية التي أنقذت مسيرتي المهنية من الضياع.
لماذا كانت سيرتي الذاتية في ورطة؟ (المشكلة الحقيقية)
المشكلة ما كانت فيّ أنا أو في مهاراتي بالضرورة، المشكلة كانت في طبيعة السيرة الذاتية التقليدية للمبرمجين. هي عبارة عن وثيقة جامدة، قائمة من الادعاءات:
- “خبير في لغة Python”
- “يتقن التعامل مع Git”
- “مهارات ممتازة في حل المشكلات”
طيب، ممتاز. لكن وين الدليل؟ الآلاف غيرك يكتبون نفس الكلام بالضبط. بالنسبة لمسؤول التوظيف الذي يرى مئات السير الذاتية يومياً، تصبح كل هذه الكلمات مجرد ضجيج. أنت تدخل في معضلة “الدجاجة والبيضة” الشهيرة: تحتاج خبرة لتحصل على وظيفة، وتحتاج وظيفة لتحصل على خبرة. سيرتك الذاتية الفارغة من المشاريع الحقيقية كانت تصرخ: “مبتدئ يبحث عن فرصة”، والشركات كانت ترد بهدوء: “نريد خبراء”.
المشاريع المفتوحة المصدر: طوق النجاة 🚀
المشاريع المفتوحة المصدر (Open Source Projects) كانت الحل الأمثل لهذه المعضلة. هي حرفياً الحل السحري الذي يحول ادعاءاتك إلى حقائق مثبتة.
ما هي المشاريع المفتوحة المصدر، يا أبو عمر؟
ببساطة شديدة، هي برامج ومشاريع الكود المصدري تبعها متاح للجميع. أي شخص في العالم بيقدر يشوف الكود، يستخدمه، يعدل عليه، ويساهم في تطويره. تخيلها مثل مطبخ عام ضخم، كل شخص بجيب مكوناته وخبرته، وبنطبخ كلنا مع بعض وجبة عالمية الكل بستفيد منها. مشاريع مثل نظام التشغيل Linux، متصفح Firefox، لغة Python نفسها، وملايين المكتبات والأدوات التي نستخدمها يومياً هي مشاريع مفتوحة المصدر.
كيف غيرت اللعبة بالنسبة لي؟
بمجرد ما بدأت أساهم في هذه المشاريع، حتى لو كانت مساهمات بسيطة، انقلبت الآية تماماً:
- الدليل القاطع (Proof of Work): حسابي على GitHub لم يعد مجرد مستودع لمشاريع الجامعة المنسية. أصبح معرضاً حياً لأعمالي. كل مساهمة، كل سطر كود، كل نقاش تقني، كان دليلاً ملموساً على مهاراتي.
- التعلم على أصوله: تركت عالم الدروس التعليمية “Tutorial Hell” ودخلت عالم التطبيق الحقيقي. بدلاً من بناء “تطبيق قائمة مهام” للمرة المليون، كنت أصلح أخطاءً حقيقية في مكتبات يستخدمها آلاف المطورين، أو أضيف ميزات جديدة لها قيمة فعلية.
- بناء شبكة علاقات حقيقية: تعرفت على مطورين من كل أنحاء العالم. تعلمت منهم كيف تتم مراجعة الكود (Code Review) بشكل احترافي، كيف أقبل النقد البناء، وكيف أناقش الحلول التقنية بوضوح. هذه المهارات لا تُدرس في الجامعات.
- صناعة هوية رقمية: حسابي على GitHub أصبح هويتي التقنية. أي شخص يزوره يرى اهتماماتي (مثلاً، الذكاء الاصطناعي، معالجة اللغات الطبيعية)، يرى مستوى جودة الكود الذي أكتبه، ويرى مدى التزامي ونشاطي.
دليلك العملي للبدء: من وين أبلّش؟
حاسس فيك وأنت بتسأل هالسؤال. الموضوع أبسط مما تتخيل. خلينا نمشي خطوة بخطوة.
الخطوة الأولى: تجهيز العدّة
قبل ما تنزل على البحر، لازم يكون معك عدة الصيد. وعدتنا هنا هي:
- حساب GitHub احترافي: مش مجرد اسم مستخدم غريب. ضع صورة شخصية واضحة أو لوجو بسيط، واكتب نبذة تعريفية (Bio) قصيرة توضح مين أنت وشو اهتماماتك (مثلاً: “طالب هندسة حاسوب مهتم بالذكاء الاصطناعي والتعلم الآلي”).
- تعلم أساسيات Git: هذه ما فيها مزح. لازم تكون بتعرف الأوامر الأساسية مثل
git clone,git branch,git add,git commit,git push. في مليون مصدر على يوتيوب وكورسيرا بيعلموك إياها في كم ساعة.
الخطوة الثانية: العثور على المشروع المناسب
نصيحة من الخِتْيار (أبو عمر): لا تبدأ بمشروع ضخم مثل React أو TensorFlow مباشرة. ستشعر بالضياع والإحباط. ابدأ صغيراً، مع مشروع له مجتمع نشط وداعم.
كيف تجد هذه المشاريع؟
- ابدأ بما تستخدمه: هل تستخدم مكتبة معينة في مشاريعك الشخصية؟ ادخل على صفحتها في GitHub. قد تجد خطأ بسيطاً في التوثيق أو bug صغير يمكنك إصلاحه.
- استخدم محرك بحث GitHub: هذه أداة قوية جداً. ابحث عن الوسوم (Labels) التي تستخدمها المشاريع لجذب المبتدئين. جرب البحث عن:
is:open is:issue label:"good first issue"(لإيجاد مشاكل مناسبة للمساهمة الأولى)is:open is:issue label:documentation(لإيجاد مهام تتعلق بتحسين التوثيق، وهي أسهل بداية)- يمكنك إضافة لغة البرمجة التي تفضلها:
is:open is:issue label:"good first issue" language:python
- مواقع متخصصة: مواقع مثل Good First Issue و Up For Grabs تجمع لك هذه الفرص في مكان واحد.
الخطوة الثالثة: المساهمة الأولى… لا تخاف!
أكبر حاجز هو الخوف من أن تكون مساهمتك “غبية” أو “غير مهمة”. هذا كلام فاضي. أي مساهمة، مهما كانت صغيرة، هي مساهمة قيمة.
- البداية الأسهل: التوثيق (Documentation): هل قرأت ملف README ووجدت فيه خطأ إملائي؟ أو جملة غير واضحة؟ إصلاحها يعتبر مساهمة ممتازة! هذه كانت أول مساهمة لي في حياتي، وكانت في توثيق مكتبة لمعالجة الصور.
- إصلاح خطأ بسيط: ابحث عن مشكلة (Issue) تحمل وسم “bug” و “good first issue”. اقرأ الوصف جيداً، وحاول إعادة إنتاج الخطأ على جهازك. إذا فهمت المشكلة، يمكنك البدء في محاولة حلها.
مثال عملي: إصلاح خطأ بسيط في دالة Python
لنفترض أنك وجدت مكتبة صغيرة فيها دالة لحساب متوسط قائمة أرقام، لكنها تفشل عند إعطائها قائمة فارغة.
الكود الحالي قد يبدو هكذا:
def calculate_average(numbers):
# This will crash if the numbers list is empty!
return sum(numbers) / len(numbers)
هذا الكود سيُطلق خطأ ZeroDivisionError إذا كانت القائمة numbers فارغة. مساهمتك يمكن أن تكون بسيطة جداً، وهي إضافة تحقق للتعامل مع هذه الحالة.
العملية خطوة بخطوة:
- Fork the repository: اعمل نسخة من المشروع على حسابك الخاص في GitHub.
- Clone your fork: نزل المشروع على جهازك المحلي.
git clone https://github.com/YourUsername/TheProject.git - Create a new branch: أنشئ فرعاً جديداً لعملك.
git checkout -b fix-empty-list-bug - Make the change: قم بتعديل الكود.
def calculate_average(numbers):
if not numbers:
# Handle the edge case of an empty list
return 0
return sum(numbers) / len(numbers)
- Commit your changes: احفظ التغييرات مع رسالة واضحة.
git commit -m "Fix: Handle empty list in calculate_average to prevent ZeroDivisionError" - Push to your fork: ارفع التغييرات إلى نسختك على GitHub.
git push origin fix-empty-list-bug - Create a Pull Request (PR): من صفحة مشروعك على GitHub، اضغط على زر “New pull request”. اكتب عنواناً واضحاً ووصفاً يشرح المشكلة وكيف قمت بحلها.
مبروك! لقد قمت بأول مساهمة حقيقية لك.
الخطوة الرابعة: ما بعد المساهمة الأولى
الرحلة لا تنتهي هنا. استمر في المساهمة، تفاعل مع المجتمع في قنوات Discord أو Slack الخاصة بالمشروع، حاول مراجعة مساهمات الآخرين (ستتعلم من هذا كثيراً)، وكن صبوراً ومحترماً. أحياناً قد يطلب منك القائمون على المشروع إجراء تعديلات على مساهمتك. لا تأخذ الأمر بشكل شخصي، هذه هي طبيعة العمل الجماعي وهي فرصة ذهبية للتعلم.
كيف تحولت سيرتي الذاتية؟
بعد ستة أشهر من المساهمات المتقطعة، لم تعد سيرتي الذاتية مجرد ورقة. أضفت قسماً جديداً بعنوان “مساهمات في المشاريع المفتوحة المصدر” ووضعت فيه رابط حسابي على GitHub.
النتيجة؟
- بدأت أتلقى ردوداً من مسؤولي التوظيف.
- المقابلات تغيرت طبيعتها. بدلاً من أسئلة “هل تعرف…؟”، أصبحت الأسئلة “رأينا مساهمتك في مشروع X، اشرح لنا كيف حللت تلك المشكلة؟”.
- شعرت بثقة أكبر بنفسي وبقدراتي، لأنها لم تعد مجرد ادعاءات، بل أصبحت حقائق موثقة بالكود.
في النهاية، الوظيفة التي حصلت عليها لم تكن بسبب قائمة المهارات في سيرتي الذاتية، بل لأن المدير التقني دخل على حسابي في GitHub ورأى مساهماتي وقال: “هذا الشخص لا يكتب الكود فقط، بل يفهم كيف يتعاون ويعمل ضمن فريق”.
الخلاصة ونصيحة أخيرة 💪
إذا كانت سيرتك الذاتية تصرخ في فراغ، فالحل ليس في الصراخ بصوت أعلى، بل في تغيير اللغة التي تتحدث بها. المشاريع المفتوحة المصدر هي اللغة التي يفهمها عالم التكنولوجيا.
لا تنتظر الحصول على وظيفة لتبدأ في اكتساب الخبرة. الخبرة موجودة هناك، متاحة للجميع، في آلاف المشاريع التي تنتظر مساهمتك. ابدأ اليوم، ابدأ صغيراً، كن صبوراً، وشاهد كيف يتحول ملفك الشخصي على GitHub إلى أقوى سيرة ذاتية يمكن أن تملكها.
لا تدع الكود الذي تكتبه يموت على جهازك. أطلقه للعالم، ودعه يتحدث عنك.
بالتوفيق يا أبطال.