מה זה קוד פתוח ואיך תורמים לפרויקט ראשון¶
"אני עוד לא ברמה שאוכל לתרום לקוד פתוח". שמעתי את המשפט הזה בערך אלף פעם, ותמיד מאותם אנשים שדווקא כבר יש להם את היכולת הטכנית - מה שחסר להם זה רק האומץ להתחיל. אז בואו נדבר על זה בכנות.
מה זה בעצם קוד פתוח¶
קוד פתוח (open source) הוא קוד שכל אחד יכול לראות, להשתמש בו, לשנות אותו, ולתרום לו - בניגוד לתוכנה סגורה שרק החברה שכתבה אותה יכולה לגעת בה. הרבה מהתשתית שבנוי עליה כמעט כל דבר בעולם הדיגיטלי - Linux, Python, React, ואפילו VS Code - היא קוד פתוח, נכתבה ומתוחזקת בחלקה על ידי אלפי מתנדבים מכל העולם.
כשאתם משתמשים בספרייה כלשהי בפרויקט שלכם, כמעט תמיד יש איפשהו repo פומבי שבו כל השינויים, הדיונים, וההחלטות שקוריים גלויים לחלוטין. וזה בדיוק מה שהופך תרומה לקוד פתוח לאפשרית - הכל שם, פתוח לכולם, כולל לכם.
למה בכלל כדאי לתרום, ובמיוחד כמתחיל¶
- לומדים לקרוא קוד של אחרים. רוב הלימוד עוסק בכתיבת קוד משלכם. בקוד פתוח אתם לומדים לקרוא ולהבין קוד שאנשים אחרים כתבו, מיומנות שקריטית בכל עבודה אמיתית.
- מתרגלים את זרימת העבודה האמיתית. fork, branch, Pull Request, סקירת קוד - זה בדיוק התהליך שתעברו כל יום בעבודה בהייטק, ותרומה לקוד פתוח היא הדרך הכי טובה לתרגל אותו בלי סיכון.
- בונים פורטפוליו אמיתי. תרומות מוצלחות ל-repo מוכר הן הוכחה חזקה יותר מכל פרויקט אישי, כי הן עברו סקירה של אנשים שלא מכירים אתכם.
- נהיים חלק מקהילה. תרומה טובה יוצרת קשר עם מתחזקי הפרויקט, ולפעמים אפילו עם מעסיקים עתידיים שרואים את העבודה שלכם.
אבל אני לא מספיק טוב, נכון?¶
זו בדיוק המחשבה שעוצרת את רוב האנשים, וזה כמעט תמיד לא נכון. פרויקטי קוד פתוח לא צריכים רק תוספות פיצ'רים מורכבות. הם צריכים תיקוני שגיאות כתיב בתיעוד, שיפור דוגמאות קוד, תרגום, תיקוני באגים קטנים, וכתיבת בדיקות. כל אלה תרומות אמיתיות וחשובות, וכולן בהישג יד של מתחיל.
בפועל, פרויקטים גדולים מסמנים במפורש issues שמתאימים למתחילים, עם תגית שנקראת good first issue. זה בדיוק המקום להתחיל - תיוג שאומר במילים "זה מספיק פשוט בשביל תרומה ראשונה".
איך מוצאים פרויקט ראשון¶
לא חייבים לחפש רחוק. אתם כבר משתמשים בכלים ובספריות שונות בקוד שלכם - התחילו משם. מצאתם באג בספרייה שאתם משתמשים בה? חיפשתם בתיעוד ולא היה ברור מספיק? אלה בדיוק ההזדמנויות הכי טבעיות לתרום, כי כבר יש לכם הקשר אמיתי מדוע השינוי חשוב.
חוץ מזה, אתרים כמו GitHub עצמו מאפשרים לחפש issues מתויגים כ-good first issue על פני כל הפלטפורמה, וזה מקום נהדר להתחיל לחפש בו.
איך זרימת התרומה נראית בפועל¶
- מוצאים issue שמתאים לרמה שלכם, ומוודאים שאף אחד אחר לא כבר עובד עליו.
- מגיבים על ה-issue שאתם רוצים לקחת אותו, כדי שלא תעבדו על משהו במקביל למישהו אחר.
- עושים fork ל-repo, ומורידים אותו למחשב שלכם.
- יוצרים branch חדש ופותרים את הבעיה.
- פותחים Pull Request עם הסבר ברור על מה שינית ולמה.
- מגיבים לסקירה בסבלנות, ומתקנים לפי ההערות.
זה בדיוק אותו תהליך שתעבדו בו בכל עבודה בהייטק, רק שכאן אין לחץ של דדליין ואף אחד לא מצפה מכם לשלמות.
מה עושים אם דוחים את התרומה¶
זה קורה, וזה בסדר. מתחזקי פרויקטים לפעמים דוחים תרומות כי הכיוון לא מתאים לפרויקט, גם אם הקוד עצמו תקין. זה לא שיפוט על היכולות שלכם. תגובה בוגרת היא לשאול בנימוס למה, ללמוד מזה, ולנסות שוב על issue אחר. אף אחד לא זוכר תרומה אחת שנדחתה, וכולם זוכרים מי שהתמיד.
לפני שקופצים לתרום לפרויקטים חיצוניים, כדאי שיהיה לכם בסיס יציב בתכנות ובגיט.
התחילו את קורס התכנות הבסיסי כאן
לסיכום¶
קוד פתוח לא שמור למתכנתים מנוסים בלבד. תרומה ראשונה, גם קטנה, היא אחת הדרכים הכי טובות ללמוד לעבוד בצורה אמיתית, ולבנות ביטחון עצמי אמיתי כמתכנתים.
מחפשים issue ראשון ולא בטוחים מאיפה להתחיל? שתפו בדיסקורד, יש שם אנשים שעברו את זה בדיוק ויכולים לכוון אתכם.