🟣 Alin Li لخدمات الحاسوب — السلسلة الاحترافية

The Complete Professional Guide to
إتقان المصادر المفتوحة

From your very first git clone to getting paid as a maintainer — a detailed, step-by-step guide with real commands, real platforms, real tools, and honest career advice. Built for professionals who want depth, not fluff.

Begin the Deep Dive ↓
📖 الفصل 1

ما المصادر المفتوحة بالضبط؟

Before you contribute, you need to deeply understand what open source actually means — legally, technically, and culturally.

📜 التعريف

البرمجيات مفتوحة المصدر (OSS) هي برمجيات يكون source code is publicly available for anyone to view, modify, and distribute. This is governed by a license that defines the rules. The term was coined in 1998, but the movement started with Richard Stallman's GNU Project in 1983 and the Free Software Foundation in 1985.

Key distinction: «حر» تعني الحرية، لا السعر. You can charge money for open source software. The "free" refers to the freedom to read, modify, and share the code.

🏛️ Who Governs Open Source?

There is no single authority. Key organizations include:

  • Open Source Initiative (OSI) — maintains the official Open Source Definition and approves licenses
  • Linux Foundation — hosts 100+ projects including Linux, Kubernetes, Node.js, and CNCF
  • Apache Software Foundation — governs 350+ projects including Apache HTTP Server, Kafka, Spark
  • Free Software Foundation (FSF) — advocates for user freedom, maintains GNU licenses
  • Eclipse Foundation — hosts Jakarta EE, Eclipse IDE, and IoT projects

📊 المصادر المفتوحة بالأرقام

Understanding the scale helps you see the opportunity:

  • 96% of all codebases contain open source components (Synopsys 2024 OSSRA Report)
  • 86% of organizations use open source in their products and services (Linux Foundation)
  • 100M+ developers on GitHub worldwide
  • 420M+ open source repositories on GitHub
  • فقط 53% of organizations contribute back — a huge gap you can fill
  • The open source software market is valued at $41.83 مليار (2024) وينمو بمعدل نمو سنوي مركّب يبلغ 16.2%

🌍 Open Source You Already Use

كل شيء على الإنترنت تقريبًا يعمل بالمصادر المفتوحة:

  • Linux — powers 96.3% of the world's top 1 million web servers
  • Android — based on the Linux kernel, used by 71% of mobile devices
  • WordPress — powers 43% of all websites on the internet
  • PostgreSQL / MySQL — databases behind most web applications
  • Kubernetes — orchestrates containers at Google, Amazon, Netflix
  • TensorFlow / PyTorch — AI frameworks behind ChatGPT, self-driving cars
  • Firefox, VS Code, VLC, Blender, GIMP — daily-use tools

لماذا ينضم المحترف إلى المصادر المفتوحة؟

This isn't charity work — contributing to open source is one of the highest-ROI career moves you can make. Here's exactly why.

🧠 1. تعلّم من أفضل الشيفرات في العالم

When you read the source code of Kubernetes (Go), React (JavaScript), or the Linux kernel (C), you're studying code written and reviewed by the best engineers at Google, Meta, and Red Hat. This is an education no bootcamp can provide.

Specific example: Reading how React implements its reconciliation algorithm teaches you tree diffing, fiber architecture, and concurrent rendering — concepts that transfer to any UI framework.

💼 2. ابنِ ملف أعمال عامًا يثبت مهاراتك

Unlike a resume that claims "5 years of Python experience," your GitHub profile shows exactly what you can do. يراجع مسؤولو التوظيف في شركات مثل GitLab وCanonical وRed Hat سجل مساهمات المرشحين بانتظام.

Real-world example: Dan Abramov (creator of Redux) was hired by Facebook's React team based entirely on his open source contributions. He had never worked at a major tech company before.

🤝 3. ابنِ علاقات مع قادة القطاع

When you submit a PR to a major project, the person reviewing your code might be a senior engineer at Google or a CTO at a startup. These connections are formed naturally through genuine collaboration — no awkward networking events.

🔧 4. أتقن ممارسات الهندسة الاحترافية

تدفعك المصادر المفتوحة إلى تعلّم مسارات CI/CD، والاختبارات الآلية، وثقافة مراجعة الشيفرة، والإصدارات الدلالية، وكتابة الوثائق، ومعالجة تعارضات الدمج، وإدارة الإصدارات، وكتابة رسائل تثبيت تغييرات واضحة. وهذه بالضبط المهارات التي يدفع أصحاب العمل مقابلها أجورًا مرتفعة.

🌐 5. Impact Millions of Users

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

📈 6. سرّع تقدّمك المهني

Hiring managers consistently report that candidates with open source experience demonstrate stronger communication, collaboration, and technical depth. Many companies explicitly list "open source contributions" as a bonus in job descriptions.

🌟 Real Stories

أشخاص حقيقيون بنوا مسارات مهنية من المصادر المفتوحة

These aren't myths — these are real people whose open source contributions transformed their careers. Study their paths.

🔥 Linus Torvalds — مبتكر Linux وGit

Started: As a university student in Helsinki, Finland (1991), he wrote the Linux kernel "just as a hobby." Today Linux powers 96.3% of the world's top web servers, all Android phones, and most cloud infrastructure.

What you can learn: He famously posted on Usenet: «أطوّر نظام تشغيل (حرًا) — مجرد هواية، لن يكون كبيرًا واحترافيًا.» He also created Git in 2005 because he was frustrated with existing version control. Two side projects that changed the world.

Reference: github.com/torvalds

🎯 Dan Abramov — Co-creator of Redux, hired by Meta

Started: Created Redux (a JavaScript state management library) as an open source project in 2015 while working as a freelancer. Redux became the most popular state management tool in the React ecosystem.

Career impact: Facebook (Meta) hired him to join the React core team based entirely on his open source contributions. He had never worked at a major tech company before. He later co-authored the new React documentation at react.dev.

Reference: github.com/gaearon

💚 Evan You — Creator of Vue.js

Started: While working at Google Creative Labs, he built Vue.js as a side project in 2014 — a simpler alternative to Angular. He left Google to work on Vue full-time, funded entirely by community sponsorship.

Career impact: Vue.js now has 200K+ GitHub stars, is used by companies like Alibaba, Nintendo, and GitLab. Evan earns $200K+/year through Patreon and GitHub Sponsors — making him one of the highest-earning individual open source developers.

Reference: github.com/yyx990803 · vuejs.org

⚡ Ryan Dahl — Creator of Node.js and Deno

Started: Created Node.js in 2009, which brought JavaScript to server-side development and sparked a revolution in web development. Later created Deno in 2018 to fix Node.js's design mistakes.

Career impact: Founded Deno Land Inc, raised $26M in venture capital. Node.js is now used by Netflix, PayPal, LinkedIn, NASA, and millions of developers worldwide.

Reference: github.com/ry · deno.com

🎨 Sindre Sorhus — Full-time Open Sourcerer

Started: يصون أكثر من 1,100 حزمة npm وقوائم "Awesome Lists" الشهيرة على GitHub. يعمل بدوام كامل على المصدر المفتوح، بتمويل كامل من GitHub Sponsors وتبرعات المجتمع.

Career impact: Ranked as one of the top open source contributors globally by SignalFire. Proves that you can build an entire career maintaining open source without working at a company.

Reference: github.com/sindresorhus · Sponsor page

🏢 Salvatore Sanfilippo — Creator of Redis

Started: Built Redis (in-memory database) as an open source project from Sicily, Italy. The project quickly grew, and companies like GitHub started using it for their infrastructure.

Career impact: VMware hired him to work on Redis full-time while he stayed in Sicily. Redis eventually became a company (Redis Labs) now valued at $2B+ and powers Twitter, GitHub, StackOverflow, and millions of applications.

Reference: github.com/antirez · redis.io

📊 من مستخدم إلى مدير تقني — Jesse White (OpenNMS)

Started: As a network analyst in Montreal, he selected OpenNMS (open source network monitoring) for his company. He attended a community DevJam, started contributing, and was hired as a full-stack developer by OpenNMS.

Career impact: Rose from contributor to Chief Technology Officer of The OpenNMS Group, leading 50+ people — all because he started contributing to the tool he used at work.

Reference: Full story on Opensource.com

🔧 Michael DeHaan — مبتكر Ansible

Started: After working at Red Hat's R&D; and growing frustrated with existing infrastructure tools, he created Ansible as an open source project — a simple, agentless automation tool.

Career impact: Built a company around Ansible, which was acquired by Red Hat for $150M in 2015. Ansible is now the most popular IT automation platform in the world.

Reference: github.com/ansible/ansible · ansible.com

💡 The Pattern: Every story above follows the same formula: Use open source → Notice a problem → Build or improve something → Share it openly → Build reputation → Career transforms. Your story starts with a single contribution.
📊 الفصل 3

المستويات الـ 5 للمساهمة في المصادر المفتوحة

Every maintainer started as a user. Here's the detailed progression with specific actions, expected timelines, and skills to build at each level.

1
Beginner — 0 to 2 months

🔍 المستوى 1 — المراقب

You use open source software and begin to peek behind the curtain. You read README files, explore project structures, and learn how the community communicates.

What to do specifically:

  • Create a GitHub account and configure your profile (bio, photo, location)
  • Star 10-20 repositories that match your interests
  • Watch 3-5 repositories to receive notifications about discussions
  • Read the README.md, CONTRIBUTING.md, and CODE_OF_CONDUCT.md of your favorite projects
  • Browse the Issues tab — read both open and closed issues to understand project priorities
  • Read 20+ closed Pull Requests to see how contributions look, how reviews work, and what gets accepted
  • Join the project's communication channel: Discord, Slack, IRC, Zulip, or mailing list
GitHub navigationReading codeUnderstanding issuesCommunity norms
2
متعلّم — من 2 إلى 6 أشهر

🐛 Level 2 — The Reporter & Helper

You make your first non-code contributions. These are extremely valuable — many maintainers say good bug reports and documentation improvements are their most needed help.

What to do specifically:

  • Report bugs — include: steps to reproduce, expected vs actual behavior, your environment (OS, version, browser), screenshots/logs
  • Fix documentation — correct typos, improve unclear instructions, add missing examples
  • Answer questions — help other users in Discussions, Stack Overflow, or community forums
  • Translate — translate documentation or UI strings into other languages
  • Triage issues — try to reproduce bugs others reported and add your findings
  • Test pre-release versions — install beta/RC versions and report issues before release
💡 Why non-code contributions matter: وفقًا لاستطلاع GitHub للمصادر المفتوحة، documentation is the #1 most valued type of contribution by both users and maintainers, yet it's the most frequently overlooked.
Bug reportingTechnical writingTranslationTestingCommunity support
3
Contributor — 3 to 12 months

💻 المستوى 3 — المساهم البرمجي

You submit your first Pull Requests. This is where real growth happens. You learn the project's conventions, coding style, test framework, and review culture.

What to do specifically:

  • Start with issues labeled good-first-issue, help-wanted, beginner-friendly، أو easy
  • Comment on the issue before working: "I'd like to work on this. Here's my proposed approach: …"
  • Fork the repo, create a branch, implement the fix, write tests, submit a PR
  • Write clear commit messages following the project's conventions (e.g., Conventional Commits)
  • Respond to code review feedback promptly and professionally
  • Start reviewing other contributors' PRs — you'll learn faster by reading others' code
  • Work on progressively harder issues: bug fixes → small features → refactoring → new features
# مثال: صيغة Conventional Commits المستخدمة في مشاريع كثيرة git commit -m "fix(auth): validate email format before sending reset link" git commit -m "feat(api): add pagination to /users endpoint" git commit -m "docs(readme): add installation instructions for macOS" git commit -m "test(auth): add unit tests for password validation"
Git workflowsPull requestsCode reviewUnit testingCI/CDConventional Commitsفحص الشيفرة
4
متقدم — من سنة إلى 3 سنوات

🏗️ Level 4 — The Trusted Contributor / Maintainer

You've earned trust through consistent, high-quality contributions. You now help shape the project's direction and mentor newcomers.

Responsibilities at this level:

  • Review PRs — evaluate code quality, suggest improvements, approve changes
  • Triage issues — label, prioritize, assign, and close stale issues
  • أرشِد القادمين الجدد — guide first-time contributors through the process
  • شارك في نقاشات التصميم — help make architectural decisions via RFCs or design docs
  • إدارة الإصدارات — create changelogs, tag versions, publish packages
  • Write RFCs (Request for Comments) — propose and document major changes
  • تمنحك مشاريع كثيرة في هذه المرحلة commit access (صلاحية الكتابة في المستودع)
Architecture decisionsRFC writingRelease managementالإرشادIssue triageCommunity leadership
5
Leader — 3+ years

🌟 Level 5 — The Community Leader / Project Founder

You lead projects, speak at conferences, create your own tools, and shape the direction of technology. You're now a recognized voice in the ecosystem.

What this looks like:

  • Lead a Technical Steering Committee (TSC) or governance board
  • Speak at conferences like FOSDEM, KubeCon, PyCon, or LinuxCon
  • Create and maintain your own widely-used open source project
  • Write technical blog posts and tutorials that become reference material
  • Define project governance, Code of Conduct enforcement, and community standards
  • Secure funding through grants, sponsorships, or foundation backing
  • فرصة للعمل لدى مؤسسات (Linux Foundation وApache وCNCF) أو شركات كبرى
Project governancePublic speakingTechnical writingFundraisingStrategic visionCommunity building

كيفية اختيار المشروع المناسب — إطار لاتخاذ القرار

Don't pick randomly. Use this systematic approach to find a project that matches your skills, interests, and career goals.

Step 1: Evaluate Projects Using These 8 Criteria

CriteriaWhat to Check🟢 علامة جيدة🔴 علامة تحذير
نشاطLast commit date, PR merge frequencyCommits within past weekلا إيداعات منذ أكثر من 6 أشهر
CommunityIssue responses, PR reviews, toneFriendly, helpful responses within daysIgnored issues, hostile reviewers
DocumentationREADME, CONTRIBUTING.md, wikiClear setup guide, contribution docsلا CONTRIBUTING.md وملف README ضعيف
Beginner LabelsIssue labels for newcomers«مسألة أولى مناسبة»، «مساعدة مطلوبة»لا وسوم مناسبة للمبتدئين
CI/CDAutomated tests, linting, buildsGitHub Actions / Travis passingلا فحوص آلية
الترخيصLICENSE file in repo rootترخيص معتمد من OSI ‏(MIT وApache وGPL)لا ترخيص أو ترخيص مخصّص
Code of ConductCODE_OF_CONDUCT.mdClearly defined, enforcedمفقود أو مُهمَل
Your InterestDo you use or care about this?Daily user of the toolلم يستخدمه قط، يريد «مساهمة» فقط

Step 2: Where to Discover Projects

🔍 GitHub Explore

github.com/explore — curated collections, trending repositories, and topics. Filter by language, stars, and recent activity. The "Collections" section groups projects by theme.

🏷️ Good First Issues

goodfirstissues.com — aggregates "good first issue" labels from thousands of popular repos. Filter by language (Python, JavaScript, Go, Rust, etc.).

🆙 Up For Grabs

up-for-grabs.net — curated list of projects with tasks specifically for new contributors. Projects are tagged by language and difficulty.

📧 CodeTriage

codetriage.com — subscribe to repos and receive one open issue per day in your email. Great for building the habit of contributing regularly.

🎓 First Timers Only

firsttimersonly.com — specifically designed for people who have never contributed. Links to repositories and guides that are extra welcoming to absolute beginners.

🏛️ Foundation Projects

Browse projects at apache.org, cncf.io, linuxfoundation.org، و eclipse.org. تميل المشروعات المدعومة من مؤسسات إلى امتلاك حوكمة وإرشاد وتوثيق أفضل.

💡 Pro Strategy: The best project to start with is software you already use every day. Found a bug? That's your first issue. The documentation confused you? That's your first PR. You'll be more motivated and your contributions will be more genuine.

Step 3: Real Beginner-Friendly Projects by Language

اللغةProjectWhy It's Great for BeginnersGitHub Stars
Pythonscikit-learnExcellent docs, active mentors, many "good first issue" tags60K+
PythonCPythonPython itself! devguide.python.org is a stellar contributor guide64K+
JavaScriptfreeCodeCampFamously welcoming community, extensive contributor guide, 419 top contributors in 2023410K+
JavaScriptReactVery organized issues, clear contributing guide, huge community230K+
TypeScriptVS CodeExcellent labels, responsive maintainers, you probably use it daily165K+
GoKubernetesDedicated contributor guide، ومجموعات SIG للوافدين الجدد112K+
RustRust compilerالوسم «E-easy» للمبتدئين، ووسوم تشير إلى توفر الإرشاد100K+
Anyfirst-contributionsPractice repo — make your first PR in 5 minutes (safe sandbox)45K+
DocsMDN Web Docsلا تحتاج برمجة! أصلح وثائق ويب يستخدمها كل مطوّر9K+
🔧 الفصل 5

أوامر Git التي عليك إتقانها

You cannot contribute to open source without solid Git skills. Here are the exact commands you'll use in your contribution workflow.

Initial Setup (do once)
# اضبط هويتك (تُستخدم في كل تسجيل للتغييرات) git config --global user.name «اسمك الكامل» git config --global user.email "your.email@example.com" # اضبط اسم الفرع الافتراضي على 'main' git config --global init.defaultBranch main # فعّل المخرجات الملونة git config --global color.ui auto # اضبط محررك الافتراضي (اختر واحدًا) git config --global core.editor "code --wait" # VS Code git config --global core.editor "nano" # Nano git config --global core.editor "vim" # Vim # ولّد مفتاح SSH لـ GitHub (إن لم تفعل بعد) ssh-keygen -t ed25519 -C "your.email@example.com" # ثم أضف المفتاح العام إلى GitHub → الإعدادات → مفاتيح SSH
Standard Contribution Workflow
# 1. أنشئ تفرّعًا للمشروع على GitHub (انقر زر «Fork» في صفحة المستودع) # 2. استنسخ تفرّعك أنت، لا المستودع الأصلي git clone git@github.com:YOUR-USERNAME/project-name.git cd project-name # 3. أضف المستودع الأصلي كوجهة بعيدة باسم "upstream" git remote add upstream git@github.com:ORIGINAL-OWNER/project-name.git # 4. تحقّق من الوجهات البعيدة git remote -v # origin git@github.com:YOUR-USERNAME/project-name.git (fetch) # upstream git@github.com:ORIGINAL-OWNER/project-name.git (fetch) # 5. أنشئ فرع ميزة (ابدأ دائمًا من أحدث main) git checkout main git pull upstream main git checkout -b fix/issue-42-login-validation # 6. أجرِ التغييرات، ثم جهّزها وسجّلها git add src/auth/validator.js tests/auth/validator.test.js git commit -m "fix(auth): validate email format before reset (#42)" # 7. ادفع فرعك إلى تفرّعك أنت git push origin fix/issue-42-login-validation # 8. افتح GitHub وأنشئ طلب دمج من فرعك → upstream/main
عمليات متقدمة
# أعِد تأسيس فرعك على أحدث upstream (أرتب من الدمج) git fetch upstream git rebase upstream/main # إعادة تأسيس تفاعلية: اجمع عدة تسجيلات تغييرات في تسجيل واحد مرتب git rebase -i HEAD~3 # ادمج آخر 3 إيداعات في إيداع واحد # عدّل آخر تسجيل للتغييرات (لإصلاح الرسالة أو إضافة ملفات منسية) git commit --amend # انتقِ تسجيل تغييرات محددًا من فرع آخر git cherry-pick abc123f # خزّن عملك مؤقتًا باستخدام stash git stash git stash pop # استعده # اعرض سجل الإيداعات بصيغة مرئية git log --oneline --graph --all
Rescue Commands (when things go wrong)
# تراجع عن آخر إيداع مع إبقاء التغييرات مجهّزة git reset --soft HEAD~1 # تراجع عن آخر إيداع وأزل التغييرات من منطقة التجهيز git reset --mixed HEAD~1 # خطر: تراجع تمامًا عن آخر تسجيل للتغييرات وتخلّص من التعديلات git reset --hard HEAD~1 # تخلّص من كل التغييرات المحلية في ملف git checkout -- path/to/file.js # ادفع بالقوة بعد إعادة التأسيس (إلى فرع تفرّعك فقط، وليس إلى main أبدًا) git push --force-with-lease origin your-branch # اعثر على تسجيلات التغييرات المفقودة باستخدام reflog git reflog git checkout abc123f # استعد الحالة عند تلك النقطة
⚠️ Critical Rule: لا تستخدم force push أبدًا إلى main أوmaster أوأي فرع مشترك. استخدمه فقط لفروع ميزاتك أنت في نسختك المتفرعة بعد rebase.

How to Write Code That Gets Accepted — The Complete Process

تفشل معظم طلبات السحب المرفوضة في الإجراءات، لا في جودة الشيفرة. اتبع هذه الخطوات المفصّلة لزيادة فرصة القبول.

01

💬 الخطوة 1: تواصل قبل البرمجة

لا تقدّم أبدًا طلب سحب مفاجئًا. علّق دائمًا على المسألة أولًا:

«مرحبًا! أود العمل على هذه المسألة. إليك النهج الذي أقترحه: 1. إضافة تحقق من صيغة البريد في `src/auth/validator.js` 2. استخدام نمط التعبير النمطي الحالي من `utils/patterns.js` 3. إضافة اختبارات وحدات تغطي صيغ البريد الصحيحة وغير الصحيحة 4. تحديث استجابة خطأ API لتشمل رسالة توضيحية. هل يناسبكم هذا النهج؟ يسعدني تعديله بناءً على ملاحظاتكم.»

Wait for maintainer acknowledgment before starting. Some projects require assignment.

02

🔬 الخطوة 2: افهم قاعدة الشيفرة أولًا

  • Read the CONTRIBUTING.md completely — it tells you the coding style, test framework, PR template, and branch naming convention
  • Run the project locally: npm install && npm run dev أو pip install -e . && pytest
  • Run existing tests to make sure they pass before you change anything
  • Read 5-10 recently merged PRs to understand what "good" looks like in this project
  • Check for a .editorconfig, .eslintrc, .prettierrc، أو pyproject.toml — these define the project's code style
03

📏 الخطوة 3: اكتب شيفرة تتوافق مع المشروع

  • طابِق أسلوبهم تمامًا — tabs vs spaces, naming conventions, import ordering. If they use 2-space indent, don't use 4.
  • Keep changes minimal — fix only what the issue asks for. Don't refactor unrelated code.
  • Don't change formatting of untouched lines. Git diffs should only show your meaningful changes.
  • Run the linter before committing: npm run lint, flake8, cargo clippy
  • Run all tests: npm test, pytest, go test ./..., cargo test
04

🧪 الخطوة 4: اكتب اختبارات لتغييراتك

This is the single biggest differentiator between amateur and professional contributors:

  • If you fix a bug, write a test that would have caught that bug
  • If you add a feature, write tests for both the happy path and edge cases
  • التزم بإطار اختبارات المشروع (Jest وpytest وGo testing وRSpec وJUnit)
  • التزم بنمط الاختبارات الموجودة — التسمية والبنية والتوكيدات
💡 Fact: طلبات الدمج التي تتضمن اختبارات أكثر احتمالًا للدمج السريع بـ3 مرات. يثق المشرفون بالمساهمين الذين يختبرون شيفرتهم.
05

📝 الخطوة 5: اكتب وصفًا ممتازًا لطلب السحب

Your PR description is as important as your code. Use this template:

## ماذا يفعل طلب السحب هذا؟ يعالج #42 — يضيف التحقق من صيغة البريد الإلكتروني إلى مسار إعادة تعيين كلمة المرور. ## لماذا نحتاج إليه؟ كان بإمكان المستخدمين إدخال عناوين بريد بصيغ غير صالحة، مما يسبب إخفاقات صامتة في خدمة البريد ورسائل خطأ مربكة. ## كيف نُفّذ؟ - أُضيفت الدالة `validateEmail()` في `src/auth/validator.js` - أُعيد استخدام نمط التعبير النمطي الموجود في `utils/patterns.js` - يُرجع خطأ 422 وصفيًا يتضمن اسم الحقل والسبب ## طريقة الاختبار 1. أرسل POST /api/auth/reset مع `{"email": "invalid"}` 2. تحقّق من استجابة 422 بالرسالة: "Invalid email format" 3. أرسل POST ببريد صالح — تحقّق من استجابة 200 ## لقطات الشاشة (إن انطبق) [لقطات قبل/بعد هنا] ## قائمة التحقق - [x] أُضيفت/حُدّثت الاختبارات - [x] اجتاز فاحص الشيفرة - [x] حُدّثت الوثائق - [x] اختُبر محليًا
06

🔄 الخطوة 6: تعامل مع مراجعة الشيفرة باحتراف

  • Don't take it personally. Code review is about the code, not about you.
  • Respond to every comment — even if just to say "Done" or "Good point, fixed."
  • Ask clarifying questions if you don't understand feedback
  • Push updates as new commits so reviewers can see what changed
  • Squash commits only when the maintainer asks (usually before final merge)
  • Be patient. المشرفون متطوعون غالبًا. انتظر 1-2 أسبوع قبل التذكير بأدب.
  • If rejected: thank the reviewer, learn from the feedback, apply it to your next PR.
⚠️ Common Reasons PRs Get Rejected: Too many unrelated changes bundled together · No tests · Doesn't follow coding style · No issue linked · Ignores reviewer feedback · Changes files that shouldn't be changed (package-lock.json, IDE config) · PR description is empty or vague.
📅 الفصل 7

Your First 30 Days — A Detailed Day-by-Day Plan

📅 الأسبوع 1: الأساس (الأيام 1-7)

  • Day 1: Create GitHub account. Set up Git. Configure SSH keys. Set name/email.
  • Day 2: Learn Git basics — practice clone, branch, commit, push with a test repo.
  • Day 3: Browse GitHub Explore. Star 10 projects that interest you. Read their READMEs.
  • Day 4: اختر 3 مشاريع مرشحة. اقرأ ملفات CONTRIBUTING.md ومدونة قواعد السلوك الخاصة بها.
  • Day 5: Join communication channels (Discord/Slack) of your top 2 projects. Introduce yourself.
  • Day 6: Read 10 closed Pull Requests in your chosen project. Note the style, review comments, and merge patterns.
  • Day 7: Clone your chosen project. Build it locally. Run the test suite. Explore the folder structure.

📅 الأسبوع 2: التعمّق (الأيام 8-14)

  • Day 8-9: Read 10 more closed PRs. Try to understand the codebase architecture — what are the main modules? How does data flow?
  • Day 10: Find a documentation issue or typo. Fork the repo, fix it, submit your first PR.
  • Day 11-12: Browse open issues. Look for "good first issue" labels. Read the issue discussions.
  • Day 13: Try to reproduce 3 reported bugs. Comment your findings on each issue.
  • Day 14: Answer a question in the project's discussion forum or help another user.

📅 الأسبوع 3: المساهمة البرمجية الأولى (الأيام 15-21)

  • Day 15: Select a "good first issue" and comment your proposed approach. Wait for feedback.
  • Day 16-17: Implement the fix on a feature branch. Write code that matches project style exactly.
  • Day 18: Write tests for your changes. Run the full test suite. Run the linter.
  • Day 19: Write a detailed PR description. Link to the issue. Submit your Pull Request.
  • Day 20-21: Respond to review feedback. Make requested changes. Push updates.

📅 الأسبوع 4: الزخم (الأيام 22-30)

  • Day 22-23: While waiting for review, find your next issue. Continue learning the codebase.
  • Day 24-25: Review someone else's PR (even just a comment saying "I tested this and it works").
  • Day 26-27: Submit your second PR. This one should be slightly more complex.
  • Day 28: Write a blog post or social media thread about your experience. Share what you learned.
  • Day 29-30: Set up your ongoing routine: 3-5 hours/week on open source. Subscribe to project releases. Plan your next contributions.

أدوات الذكاء الاصطناعي للمساهمين في المصادر المفتوحة — دليل مفصل

قد تضاعف أدوات الذكاء الاصطناعي إنتاجيتك من 2 إلى 5 مرات عند استخدامها جيدًا. إليك الأدوات التي تستخدمها تحديدًا، ومتى وكيف — مع توضيح صريح لحدودها.

The AI Tools Landscape for Developers (2026)

ToolTypeBest ForCostمفتوح المصدر؟
Claude CodeTerminal agentإعادة هيكلة متعددة الملفات، وفهم قاعدة الشيفرة، وتوليد الاختباراتالدفع حسب الاستخدام (API)لا (Anthropic)
GitHub CopilotEditor assistantIn-editor autocomplete, code generation while typing$10-19/شهرلا (Microsoft)
Cursorبيئة تطوير متكاملة مبنية حول الذكاء الاصطناعيFull project understanding, cross-file edits, chat$20/شهر (Pro)جزئي
AiderTerminal CLIGit-native coding, automatic commits, pair programmingFree (BYOK)✅ Yes
ContinueIDE extensionمستقل عن النموذج، يعمل مع أي LLM ومع VS Code/JetBrainsFree✅ Yes
TabbySelf-hostedPrivate code completion, runs on your infrastructureFree✅ Yes
Cody (Sourcegraph)IDE extensionLarge codebase search and understandingFree tier✅ Yes
CodeGeeXIDE extensionتوليد شيفرة بلغات متعددة والترجمة بينهاFree✅ Yes

How to Use AI at Each Stage of Your Contribution

🔍 1. فهم قاعدة شيفرة جديدة

The problem: You join a project with 100,000 lines of code. Where do you even start?

نهج الذكاء الاصطناعي: Use Claude Code or Cursor to ask questions about the codebase:

«اشرح معمارية هذا المشروع. ما الوحدات الرئيسية وكيف تتفاعل؟» «ماذا تفعل الدالة `reconcileChildren` في src/fiber.js؟ اشرح لي المنطق خطوة بخطوة.» «ما إطار الاختبارات الذي يستخدمه هذا المشروع؟ أرِني مثالًا على بنية الاختبارات الحالية.»

Why it works: يمكن للذكاء الاصطناعي معالجة آلاف الأسطر وتلخيصها فورًا، ليمنحك خريطة ذهنية يستغرق بناؤها يدويًا أيامًا.

✍️ 2. Writing Code

The right way: Use AI to draft implementations, then review every line yourself. Don't copy-paste blindly.

«اكتب دالة تتحقق من صيغة البريد الإلكتروني باستخدام أسلوب الأنماط نفسه في الدالة الحالية `validatePhone` في utils/validators.js. أدرج تعليقات JSDoc تطابق أسلوب توثيق المشروع.»

Critical: تحقق دائمًا من أن الشيفرة المولّدة بالذكاء الاصطناعي تعالج الحالات الحدية، وتتبع أنماط معالجة الأخطاء في المشروع، ولا تضيف تبعيات لا يستخدمها المشروع.

🧪 3. كتابة الاختبارات

مجال تميّز الذكاء الاصطناعي: Test generation is one of the highest-value uses of AI. It excels at creating comprehensive test cases you might miss.

«ولّد اختبارات وحدات للدالة validateEmail التي كتبتها للتو. غطِّ: عناوين بريد صحيحة، وصيغًا غير صحيحة، ونصوصًا فارغة، ومدخل null، وعناوين بريد بأحرف خاصة، وعناوين طويلة جدًا، ومحاولات حقن SQL. استخدم إطار Jest بما يطابق أسلوب الاختبارات الحالي.»

📝 4. كتابة أوصاف طلبات السحب ورسائل الإيداع

نهج الذكاء الاصطناعي: Describe your changes in plain language and let AI format them professionally:

«أصلحت المسألة #42 بإضافة التحقق من البريد إلى نقطة نهاية إعادة تعيين كلمة المرور. أضفت فحصًا بتعبير نمطي، وأُرجع خطأ 422 للصيغ غير الصحيحة، وكتبت 8 اختبارات. اكتب وصف PR احترافيًا وفق الصيغة المتعارف عليها بأقسام ماذا/لماذا/كيف.»

🐛 5. Debugging

Extremely effective: الصق رسائل الأخطاء وتتبع المكدس والشيفرة ذات الصلة. أدوات الذكاء الاصطناعي ممتازة في تشخيص المشكلات الشائعة.

«يظهر لي هذا الخطأ عند تشغيل الاختبارات: TypeError: Cannot read properties of undefined (reading 'email') at validateUser (src/auth/validator.js:42:18) إليك الشيفرة ذات الصلة: [paste code] ما سبب ذلك وكيف أصلحه؟»

🌐 6. Learning New Languages/Frameworks

الذكاء الاصطناعي معلّمًا: Want to contribute to a Rust project but only know Python? AI can bridge the gap:

«أعرف Python جيدًا. اشرح نموذج الملكية في Rust باستخدام أمثلة مشابهة من Python. أرِني كيف تبدو دالة Python هذه بأسلوب Rust المعتاد: def filter_active_users(users: list[User]) -> list[User]: return [u for u in users if u.is_active and u.age >= 18]»
⚠️ AI Ethics in Open Source — Critical Rules: تطوّر مشاريع كثيرة سياسات رسمية للشيفرة المولّدة بالذكاء الاصطناعي. اصرح دائمًا بالمساعدة الكبيرة منه. بعض المشاريع (مثل Creative Commons) لا تقبل صراحةً مساهمات مولّدة به. تحقّق دائمًا من سياسة المشروع. عند الشك، استخدم الذكاء الاصطناعي لـ learn and understand، لكن اكتب الشيفرة النهائية بنفسك. يقدّر المجتمع الفهم أكثر من سرعة الإنتاج.
🚫 ما لا يستطيع الذكاء الاصطناعي فعله بدلًا منك: Understand project politics and culture · Make architectural decisions with full context · Know the project's history and why certain decisions were made · Build trust with maintainers · Replace deep understanding of algorithms · Guarantee security (AI can generate vulnerable code) · Know the latest API changes in the project.
🤔 الفصل 9

Do We Still Need to Learn Coding If We Have AI?

This is the most asked question in tech right now. Here's an honest, nuanced, data-driven answer.

🟢 لماذا أصبحت معرفة البرمجة أهم من أي وقت مضى

1 الذكاء الاصطناعي يولّد، والبشر يتحققون. وفقًا لدراسة METR ‏(2026)، تستطيع أدوات الذكاء الاصطناعي إنتاج الشيفرة أسرع، لكنها تحتاج مطورين مهرة للتحقق من صحتها. دون معرفة البرمجة، لا يمكنك تمييز ما إذا كانت مخرجاتها آمنة أو كفؤة أو حتى صحيحة.
2 Architecture remains deeply human. يمكن للذكاء الاصطناعي تنفيذ دالة، لكن اختيار الخدمات المصغرة أم البنية الأحادية، وSQL أم NoSQL، والبنية القائمة على الأحداث أم الطلب والاستجابة، يتطلب فهم مفاضلات لا يستطيع استيعابها بالكامل في سياقك المحدد.
3 Debugging is understanding. When AI-generated code fails in production, the person who fixes it needs to understand memory models, network protocols, race conditions, and system interactions at a fundamental level.
4 مجتمعات المصادر المفتوحة تتطلب الفهم. When you submit a PR, reviewers will ask "Why did you choose this approach?" If you can't explain your own code because AI wrote it, your contribution will be rejected and your reputation damaged.
5 The "Productivity Paradox". Research shows that AI-assisted code can be 19% slower for complex tasks due to debugging overhead. Speed without quality creates technical debt that someone must understand deeply to resolve.

🔵 كيف يغيّر الذكاء الاصطناعي معنى «البرمجة»

1 انتهى عهد حفظ الصياغة البرمجية. You no longer need to remember exact function signatures or API parameters. AI handles that. Focus your brain on concepts, patterns, and problem-solving instead.
2 Productivity is genuinely higher. JetBrains reports that 93% of developers now regularly use AI coding tools. McKinsey research shows developers complete tasks up to 55% faster with AI assistance. This is real and significant.
3 The barrier to entry is lower. أصبح غير المبرمجين قادرين على بناء نماذج أولية وإصلاح أخطاء بسيطة والإسهام بالوثائق بمساعدة الذكاء الاصطناعي. هذا يتيح المشاركة في المصدر المفتوح للجميع.
4 تظهر مهارات جديدة. Prompt engineering, AI-assisted code review, understanding model limitations, and knowing when to trust (or override) AI are becoming essential professional skills.
5 The role is shifting from writer to director. Senior developers are becoming "AI orchestrators" — directing AI tools, reviewing output, and making strategic decisions. This requires MORE knowledge, not less.

🎯 The Alin Li Verdict

YES — you absolutely need to understand coding. But HOW you learn and use it is evolving fast.

Think of it like driving: self-driving cars exist, but you still need to understand how cars work to know when the autopilot is making a mistake, to take over in emergencies, and to give it the right destination. The developers who thrive will be those who combine deep conceptual understanding with إنتاجية مدعومة بالذكاء الاصطناعي.

Learn to code to THINK. Use AI to ACCELERATE. Understand deeply to VERIFY.

كسب المال وبناء مسيرة من المصدر المفتوح

المصادر المفتوحة ليست عملًا خيريًا — إنها من أقوى وسائل تسريع المسار المهني في التقنية. إليك 8 مسارات عملية ومثبتة لكسب المال.

🏢 Path 1: Get Hired by Open Source Companies

Hundreds of companies pay developers full-time to work on open source. Your contribution history serves as a live, verified portfolio that no resume can match.

Companies that hire from open source: Red Hat, Canonical, SUSE, GitLab, Hashicorp, Elastic, Grafana Labs, Supabase, Vercel, Cloudflare, Fastly, DigitalOcean, Mozilla, Automattic (WordPress), and many more.

How it works: Contribute consistently for 6-12 months. Maintainers and hiring managers notice. Many companies recruit directly from contributor pools.

💵 $80,000 – $250,000+ / سنة (بحسب الدور والموقع)

💛 Path 2: GitHub Sponsors & Individual Sponsorship

If you maintain useful projects, individuals and companies can sponsor you directly through GitHub Sponsors, Open Collective, Patreon, or Ko-fi.

How to qualify: تولَّ صيانة مشروع له أكثر من 500 نجمة، أو كن مساهمًا منتظمًا في مشروع شهير. أنشئ صفحة رعاية تشرح عملك وكيف ستُستخدم الأموال.

Examples: Sindre Sorhus (maintainer of 1,000+ npm packages), Caleb Porzio (creator of Livewire and Alpine.js) both earn substantial income through sponsorships.

💵 $500 – $15,000+ / شهر

🎯 Path 3: Bounty Programs

Companies and projects post cash rewards for fixing specific issues or adding specific features.

المنصات:

  • Bountysource — bounties on open source issues
  • IssueHunt — fund and solve GitHub issues
  • Gitcoin — bounties focused on web3/crypto projects
  • Bug bounty programs — HackerOne, Bugcrowd for security-focused work
💵 $50 – $10,000 لكل مكافأة

🎓 Path 4: Paid Mentorship Programs

Several organizations pay you a stipend to contribute to open source under mentorship. Great for students, career-changers, and anyone new to open source.

  • Google Summer of Code (GSoC) — now in its 22nd year (2026). Open to anyone 18+, not just students. 8-22 week projects. Stipends: Small ($750-$1,650), Medium ($1,500-$3,300), Large ($3,000-$6,600) adjusted by PPP. 1,000+ orgs participated. Apply: summerofcode.withgoogle.com
  • Outreachy — 3-month remote internship for underrepresented groups in tech. مكافأة قدرها $7,000 USD + بدل سفر بقيمة $500. يُقام من مايو إلى أغسطس ومن ديسمبر إلى مارس. المشروعات: البرمجة وتجربة المستخدم والتوثيق وعلوم البيانات. قدّم طلبك: outreachy.org
  • Linux Foundation Mentorship (LFX) — paid mentorships on CNCF, Linux kernel, Hyperledger, and other foundation projects. Stipends ~$3,000-$6,600 based on location. Apply: mentorship.lfx.linuxfoundation.org
  • MLH Fellowship — 12-week remote program. Open Source Track (Next.js, Flask, Julia). Up to $5,000 USD need-based stipend. Apply: fellowship.mlh.io
  • Season of KDE — contribute to KDE projects with mentorship. Non-stipend but excellent for portfolio.
  • GNOME Internships — partner with Outreachy for paid GNOME contributions
💵 $750 – $7,000 لكل دورة برنامج

🎤 Path 5: Speaking, Writing & Teaching

Become an expert in an open source technology and monetize your knowledge through content creation and consulting.

  • Conference speaking — many conferences pay $500-$5,000 per talk plus travel
  • دورات عبر الإنترنت — create courses on Udemy, Coursera, egghead.io, or your own platform
  • Technical blogging — write on Dev.to, Medium, Hashnode, or your own blog. Monetize through sponsorships.
  • Books — write books on specific technologies (O'Reilly, Packt, self-published)
  • YouTube/Twitch — create tutorial content, live-code in public
💵 متغيّر — من $1,000 إلى $100,000+/سنة

🏗️ Path 6: Consulting & Professional Services

Companies pay premium rates for experts who deeply understand the open source tools they rely on.

Examples: Kubernetes consultants, PostgreSQL DBAs, Linux system administrators, DevOps engineers specializing in open source stacks. If you're a known contributor, you command higher rates.

💵 $100 – $350 / ساعة

🚀 المسار 7: ابنِ منتجًا على المصادر المفتوحة

بدأت شركات تقنية ناجحة كثيرة كمشاريع مفتوحة المصدر، وبنت خدمات تجارية فوقها.

Business models: نواة مفتوحة (أساس مجاني وميزات مؤسسية مدفوعة)، وخدمات مستضافة أو مُدارة (SaaS)، واشتراكات دعم، ومتاجر وإضافات.

Success stories: WordPress → Automattic ($7.5B), MongoDB ($18B market cap), GitLab ($8B+), Redis, Elastic, Grafana, Supabase, Hashicorp.

💵 إمكانات شركة ناشئة — من $0 إلى المليارات

🏛️ Path 8: Foundation Grants

تقدم المؤسسات منحًا لتمويل أعمال تطوير المصادر المفتوحة.

  • Linux Foundation — funds critical infrastructure projects
  • Mozilla Foundation (MOSS) — grants for projects that benefit the internet
  • NLnet Foundation — funds open internet technologies in Europe
  • Sovereign Tech Fund — German government fund for open source infrastructure
  • GitHub — has given grants to contributors in multiple countries
💵 $5,000 – $500,000+ لكل منحة
⚖️ Chapter 11

Understanding Open Source Licenses — Essential Knowledge

Before you contribute, you need to understand what license the project uses — it determines your rights and obligations.

الترخيصTypeCan Use Commercially?هل يجب مشاركة المصدر؟Key Requirement
MITمتساهل✅ Yes❌ NoInclude copyright notice
Apache 2.0متساهل✅ Yes❌ NoInclude notice + state changes + patent grant
BSD 2/3-Clauseمتساهل✅ Yes❌ NoInclude copyright notice
GPL v3Copyleft✅ Yes✅ Yes (if distributed)Derivative works must also be GPL
LGPL v3Weak Copyleft✅ Yes⚠️ Partiallyيجب مشاركة تعديلات المكتبة؛ ويمكن أن تبقى شيفرتك احتكارية
AGPL v3Strong Copyleft✅ Yes✅ Yes (even SaaS)يجب مشاركة المصدر حتى عند الاستخدام على الخادم
MPL 2.0Weak Copyleft✅ Yes⚠️ File-levelيجب مشاركة الملفات المعدّلة؛ ويمكن أن تبقى الملفات الجديدة احتكارية
UnlicensePublic Domain✅ Yes❌ Noلا متطلبات مطلقًا
💡 Practical tip for contributors: When you contribute to a project, your code is typically covered by the same license as the project. Some projects require a Contributor License Agreement (CLA) — read it carefully before signing. It may grant the project additional rights over your contribution.
📚 الفصل 12

Essential Resources — Bookmarks You Need

Every link below is real, tested, and essential. Bookmark this entire section.

🔍 العثور على المشاريع والمشكلات

📖 أدلة التعلّم (الرسمية)

🏛️ Major Foundations & Organizations

💰 منصّات التمويل والرعاية

🎓 Paid Programs & Fellowships

🤖 أدوات برمجة بالذكاء الاصطناعي للمساهمين

  • GitHub Copilot — AI pair programmer in your editor
  • Cursor — AI-native code editor, full project understanding
  • Aider — open source, terminal-based, Git-native AI coding
  • Continue — open source, model-agnostic IDE extension
  • Tabby — self-hosted AI code completion
  • Cody by Sourcegraph — AI with codebase search
  • CodeGeeX — open source, multilingual code assistant

📊 تعلّم Git (موارد محددة)

📰 مواكبة المستجدات

🏢 Companies That Actively Hire from Open Source

These companies pay developers full-time to work on open source or heavily value OS contributions in hiring:

الشركةKnown Open Source ProjectsHiring from OS?
Red HatLinux, Ansible, OpenShift, Fedora, Podman✅ Core business is OS
CanonicalUbuntu, Juju, Multipass, snapd✅ All roles involve OS
GitLabGitLab (entire product is open source)✅ All-remote, OS first
Grafana LabsGrafana, Loki, Tempo, Mimir✅ Active contributor hiring
VercelNext.js, Turborepo, SWR✅ Hires from contributor base
SupabaseSupabase (open source Firebase alternative)✅ Community-first hiring
HashicorpTerraform, Vault, Consul, Nomad✅ OS expertise valued
ElasticElasticsearch, Kibana, Logstash✅ Core product is OS
SUSESUSE Linux, Rancher, Longhorn✅ Linux-focused employer
MozillaFirefox, Rust, MDN Web Docs✅ Mission-driven OS
AutomatticWordPress, WooCommerce, Jetpack✅ $7.5B company, OS core
MicrosoftVS Code, TypeScript, .NET, Azure✅ #1 GitHub contributor
GoogleKubernetes, TensorFlow, Go, Angular, Flutter✅ Runs GSoC since 2005

Complete Open Source Readiness Checklist

Track your progress through every phase of your open source journey. Click items to mark them complete.

🔧 الإعداد والأسس
☐GitHub account created with professional bio, photo, and location
☐Git installed and configured (name, email, SSH key, default editor)
☐إتقان أوامر Git الأساسية: clone وbranch وcommit وpush وpull وmerge وrebase
☐Practiced Git workflow in a personal test repository
☐Set up AI coding assistant (Claude Code, Cursor, Copilot, Aider, or Continue)
🔍 البحث والاختيار
☐Starred and explored 10+ projects matching your interests
☐Evaluated 3+ projects using the 8-criteria framework
☐Read CONTRIBUTING.md and CODE_OF_CONDUCT.md of your chosen project
☐Joined the project's communication channel (Discord/Slack/IRC)
☐Cloned the project and built it locally
☐Ran the existing test suite successfully
☐Read 20+ closed Pull Requests to understand the review process
🐛 First Non-Code Contributions
☐Filed a bug report with steps to reproduce, expected vs actual behavior
☐Fixed a documentation issue (typo, unclear instructions, missing example)
☐Helped another user in discussions or forums
☐Triaged an issue by reproducing a bug and adding your findings
💻 أولى المساهمات البرمجية
☐Selected a "good first issue" and communicated your approach
☐Implemented the fix following project coding style exactly
☐Wrote tests for your changes
☐Submitted your first PR with a clear, detailed description
☐Responded to review feedback and got your PR merged
☐Submitted your second PR (more complex than the first)
📈 بناء الزخم
☐Reviewed another contributor's PR
☐Written a blog post or social media thread about your experience
☐Established a regular schedule (3-5 hours/week minimum)
☐Subscribed to project releases and roadmap discussions
☐Identified your career path (employment, sponsorship, consulting, etc.)
☐Set up GitHub Sponsors profile (if maintaining a project)