mirror of
https://github.com/LucasVbr/first-contributions.git
synced 2026-05-13 17:21:50 +00:00
165 lines
12 KiB
Markdown
165 lines
12 KiB
Markdown
# حاجات ممكن اللي مش مبرمج يعملها
|
|
## اسمع الأول
|
|
|
|
كل حاجة في الـ Open Source بتعتمد على الناس اللي شغالة فيها.
|
|
إنت عايز تنضم لفريق، وده معناه إنك تفهم المجتمع شغال إزاي.
|
|
لو دخلت على مشروع وقلت "هاي، أنا شايف إن المشروع المفروض يعمل كذا" غالبًا ده مش هيكون مقبول.
|
|
ممكن مشاريع معينة تكون بتحب الأسلوب ده، لكن لو المشروع ليه فترة شغال، نسبة إن الناس تتقبل الكلام ده قليلة.
|
|
**أحسن حاجة تعملها في الأول إنك تسمع وتشوف الناس شغالة إزاي.**
|
|
|
|
1. **اشترك في Mailing List**: في مشاريع كتير، الـ mailing list هي وسيلة التواصل الرئيسية بين الناس اللي بتطور المشروع.
|
|
في المشاريع الكبيرة، هتلاقي كذا mailing list.
|
|
مثلاً، مشروع PostgreSQL عنده أكتر من 12 mailing list للمستخدمين و6 للمطورين.
|
|
ابدأ بمتابعة الـ list الأساسية للمستخدمين وواحدة من بتوع المطورين علشان تفهم اللي بيحصل.
|
|
|
|
2. **تابع Blog**: المطورين الكبار غالبًا بيكتبوا تدوينات بيشرحوا فيها اللي هيحصل في النسخ الجاية،
|
|
وبيتكلموا عن اللي اتعمل علشان نوصل للمرحلة دي.
|
|
في مواقع اسمها Planet بتجمع التدوينات والأخبار من كذا مصدر عن المشروع.
|
|
لو فيه planet زي planet.gnome.org أو planet.mysql.com، يبقى ده مكان كويس تبدأ منه.
|
|
اكتب في جوجل "planet <اسم المشروع>".
|
|
|
|
3. **ادخل على قناة IRC**: معظم مشاريع الـ Open Source عندها قنوات IRC الناس بتدخل تتكلم فيها عن المشاكل والتطوير.
|
|
ادخل على موقع المشروع وشوف اسم القناة على أي شبكة IRC.
|
|
|
|
**اشتغل على التذاكر**
|
|
الكود هو الأساس في أي مشروع مفتوح المصدر، بس ده مش معناه إن الكود هو الطريقة الوحيدة اللي ممكن تساهم بيها.
|
|
فيه حاجات تانية كتير الناس بتكسل تعملها، زي صيانة النظام أو متابعة المشاكل.
|
|
ابدأ من هنا وهتلاقي نفسك بقيت جزء من الفريق.
|
|
|
|
معظم المشاريع عندها نظام تذاكر على الموقع الرسمي.
|
|
ده بيكون وسيلة تواصل بين الناس اللي بتستخدم البرنامج والمطورين.
|
|
تنضيف التذاكر دي وتحديثها بيساعد الفريق جدًا.
|
|
|
|
ممكن تحتاج صلاحيات علشان تعدل على التذاكر، بس صدقني، أول ما تقول إنك عايز تساعد، هيدوك الصلاحيات دي على طول.
|
|
|
|
4. **حلل مشكلة (Bug)**: ساعات الناس بتبلّغ عن مشاكل بشكل مش واضح.
|
|
لو حد قال "البرنامج بيهنّج لما بعمل كذا"، خد وقتك وحاول تعرف المشكلة دي بتحصل إزاي.
|
|
هل بتتكرر؟ تقدر تكتب خطوات تثبت بيها إنها بتحصل؟ بتحصل على متصفح معين؟ ولا في نظام تشغيل معين؟
|
|
|
|
حتى لو معرفتش تحلها، إنك توضّح المشكلة أكتر بيسهّل على حد تاني ييجي يحلها.
|
|
وكل اللي تكتشفه، اكتبه في التذكرة علشان غيرك يستفيد.
|
|
|
|
5. **اقفل التذاكر القديمة**: كتير من المشاكل بتكون اتحلت، بس التذاكر لسه مفتوحة.
|
|
البحث في التذاكر القديمة وتنضيفها حاجة مهمة جدًا.
|
|
|
|
ابدأ بدور على تذاكر بقالها أكتر من سنة وشوف هل المشكلة لسه موجودة ولا اتصلحت.
|
|
راجع سجل التغييرات في الإصدارات وشوف لو فيه ذكر للمشكلة.
|
|
لو اتحلت، اكتب رقم النسخة في التذكرة واقفلها.
|
|
|
|
جرّب تعيد المشكلة في آخر نسخة من البرنامج.
|
|
لو مشتغلتش، اكتب ده في التذكرة واقفلها.
|
|
لو لسه موجودة، اكتبه برضو وسيب التذكرة مفتوحة.
|
|
|
|
## الشغل على الكود
|
|
الناس اللي عندها خبرة مختلفة في البرمجة تقدر تساعد في الكود.
|
|
مش لازم تكون مبرمج جامد علشان تساهم.
|
|
|
|
لو ناوي تعدل على الكود، اعرف الأول المشروع بيشتغل إزاي في موضوع استلام التعديلات.
|
|
كل مشروع ليه طريقة معينة، فاسأل الأول.
|
|
|
|
مثلاً، PostgreSQL بيستقبل التعديلات على شكل Patch في mailing list، والمطورين بيراجعوها كويس جدًا.
|
|
لكن في مشروع زي Parrot، ممكن تاخد صلاحيات التعديل بسهولة.
|
|
لو المشروع على GitHub، غالبًا بيستخدموا Pull Requests.
|
|
كل مشروع وليه طريقته.
|
|
|
|
لما تعدل حاجة، خليك محترم مع باقي الفريق وحافظ على تنسيق الكود زي ما هو.
|
|
ما تحاولش تفرض أسلوبك.
|
|
الكود اللي بتكتبه لازم يشبه اللي موجود، حتى لو مش عاجبك.
|
|
|
|
6. **اختبر نسخة Beta أو Release Candidate**:
|
|
المشاريع اللي بتشتغل على كذا نظام تشغيل ساعات بيكون فيها مشاكل توافق.
|
|
قبل الإصدارات، المطورين بينزلوا نسخ تجريبية علشان الناس تجربها.
|
|
لو شغّلت البرنامج على نظام تشغيل مختلف واشتغل، ده بيساعدهم يعرفوا إن النسخة كويسة.
|
|
|
|
مش لازم تعمل حاجة غير إنك تبني البرنامج وتفتحه وتجربه.
|
|
لو شغال، بلغهم.
|
|
ده بيفرق كتير جدًا مع المطورين.
|
|
|
|
7. **صلّح Bug**: ده غالبًا أول حاجة الناس بتعملها لما تبدأ تشتغل في الكود.
|
|
دور على Bug شكله بسيط، وجرب تصلحه.
|
|
اكتب ملاحظاتك جوه الكود، ولو في Test يوضح إن المشكلة اتحلت، ضيفه.
|
|
لو معرفتش تصلحها، اكتب اللي وصلتله في التذكرة.
|
|
|
|
8. **اكتب Test**:
|
|
معظم المشاريع عندها Tests، بس دايمًا فيه مكان لإضافة تانية.
|
|
استخدم أدوات بتقيس مدى التغطية، زي `gcov` أو `Devel::Cover`.
|
|
وشوف أجزاء الكود اللي مش متغطية، وضيف لها Test.
|
|
|
|
9. **اسكت تحذير من الكومبايلر**:
|
|
لما تبني برامج C، ممكن يطلعلك تحذيرات.
|
|
مش دايمًا معناها إن فيه مشكلة، بس بتشوّش.
|
|
لو شفت تحذير، شوف هل فعلاً فيه مشكلة؟
|
|
لو لأ، عدل الكود علشان تسكت التحذير.
|
|
|
|
10. **ضيف تعليق**:
|
|
لو لقيت جزء في الكود مش مفهوم، اكتبه تعليق.
|
|
أكيد في ناس غيرك هتتلخبط برضو.
|
|
ابعت تعديل فيه التعليقات دي.
|
|
|
|
## الشغل على التوثيق
|
|
المستندات دايمًا بتتاخد بشكل بسيط.
|
|
وساعات بتكون مكتوبة كأن اللي بيقراها أصلاً فاهم المشروع.
|
|
لو حسيت إن التوثيق مش واضح، قول.
|
|
اللي عنيهم جديدة بيشوفوا حاجات الناس اللي شغالة عليها مش شايفاها.
|
|
|
|
11. **اعمل مثال**:
|
|
مفيش مشروع عنده أمثلة كتير كفاية.
|
|
لو فيه API، أو مكتبة، أو برنامج GUI زي Gimp، أو حتى أداة سطر أوامر – اعمل مثال عملي بيشرح ازاي تستخدمه.
|
|
|
|
ممكن المثال يكون حاجة بسيطة من كود انت كتبته، أو حتى فيديو Screen Recording وانت بتستخدمه.
|
|
الناس بتحب تشوف التطبيق العملي أكتر من الكلام.
|
|
|
|
## اشتغل مع المجتمع
|
|
الـ Open Source مش بس كود. المجتمع هو اللي بيخلي المشاريع دي تعيش وتكبر.
|
|
فيه طرق كتير تقدر تساعد بيها في تقوية المجتمع حوالي المشروع.
|
|
|
|
12. **جاوب على سؤال**:
|
|
أحسن طريقة تساعد بيها المشروع والمجتمع هي إنك تساعد غيرك.
|
|
لما حد جديد يسأل سؤال، وحضرتك تجاوبه بدل ما تقول له "روح اقرأ الـ Manual"، كده إنت مش بس ساعدته،
|
|
إنت كمان شجّعته يكمل، ويمكن كمان يبقى عضو نشيط في المشروع بعد كده.
|
|
|
|
كلنا بدأنا من الصفر، والمشاريع محتاجة دايمًا ناس جديدة تدخل علشان تفضل عايشة.
|
|
|
|
13. **اكتب تدوينة (Blog Post)**:
|
|
لو عندك مدونة، احكي فيها عن تجربتك مع المشروع اللي بتستخدمه.
|
|
قول واجهت إيه مشاكل، وازاي حليتها.
|
|
كده بتساعد المشروع بطريقتين:
|
|
- إنك بتخلي الناس تفكر في المشروع وتسمع عنه.
|
|
- وإنك بتسيب أثر للي بعدك لو حد واجه نفس المشكلة وعمل بحث على جوجل.
|
|
|
|
(والتدوينة دي كمان ممكن تبقى وسيلة كويسة توري بيها خبرتك الحقيقة في الشغل لما تيجي تدور على شغل.)
|
|
|
|
14. **طوّر موقع المشروع**:
|
|
لو عندك خبرة في تصميم المواقع، وساعدت في تحسين الموقع أو شكله العام، ده وقتك مش بيضيع.
|
|
يمكن المشروع محتاج لوجو، أو ستايل أحسن، أو تنظيم أحسن للمحتوى.
|
|
الحاجات دي ساعات بتكون ناقصة عند المبرمجين، وساعتها أي حد عنده ذوق أو خبرة في التصميم بيفرق جامد.
|
|
أنا عن نفسي بتمنى ألاقي حد يساعدني في التصميم في مشاريعي!
|
|
|
|
15. **اكتب توثيق تقني (Documentation)**:
|
|
لو تقدر تشرح ازاي برنامج أو أداة شغالة، يبقى تقدر تكتب توثيق تقني عنها.
|
|
مشاريع Open Source كتير بتبقى محتاجة توثيق جديد، أو تطوير اللي موجود، أو تبسيطه للناس.
|
|
|
|
كل ما كانت كتابتك أبسط وأوضح، كل ما كانت أحسن.
|
|
وأجمل حاجة؟ مش لازم تكون مبرمج علشان تكتب Documentation.
|
|
|
|
والأهم من كل ده، اسمع الناس بتتكلم عن إيه.
|
|
حاول تلاحظ المشاكل اللي محتاجة حل.
|
|
مثلاً، في مرة على Mailing List لمشروع Parrot، قرروا ينقلوا من Trac لـ GitHub في نظام التذاكر.
|
|
ناس كتير كانوا ضد القرار علشان مفيش طريقة ينقلوا التذاكر القديمة.
|
|
دخلت وقلت "طب ما أكتب أنا برنامج يحوّل التذاكر؟" والناس فرحت جدًا.
|
|
فعلاً كتبت برنامج نقل أكتر من 450 تذكرة، واحتفظنا بتاريخهم.
|
|
نجاح جميل، وساعدت الفريق، والمطورين ركزوا في شغلهم بدل وجع الدماغ.
|
|
|
|
16. **علّم وساعد غيرك**:
|
|
أحسن طريقة تتعلم بيها أكتر، إنك تشرح اللي فهمته لحد تاني.
|
|
المدرّس الشاطر هو اللي يقدر يشرح حاجة معقدة بطريقة بسيطة.
|
|
|
|
لو علمت حد، أو ساعدته، مش بس هتحس إنك عملت حاجة كويسة،
|
|
ده كمان هيثبت المعلومة في دماغك، ويقوّي مهاراتك.
|
|
ولما حد يساعدك، ما تحتفظش بالمعلومة لنفسك.
|
|
شارك اللي عرفته، وخلّي الدنيا مكان أحسن.
|
|
|
|
والسلام عليكم ورحمة الله وبركاته.
|
|
|
|
|