מה עדיף לתהליך למידת קוד: השתתפות בפרוייקט קוד פתוח או כתיבת פרוייקט אישי?

דיון סוער מקבוצה אחרת שאני חברה בה לגבי הקושי של ג׳וניורים למצוא את המשרה הראשונה שלהם. היו כאלו שהציעו שכתיבת קוד עצמאי עוזרת לתת ניסיון ראשוני שיכול לקדם מישהו לתפקיד הראשון שלו יותר בקלות, אבל עלתה השאלה: מה עוזר יותר, כתיבת פרוייקט עצמאי (שמראה יכולת למידת טכנולוגיה ויכולת התאמה של הפרוייקט לשוק) או כתיבת קוד פתוח (שבו המתכנת עובד קוד רוויו, ולומד על דזיין ומתודולוגיות תכנות שונות.

מה דעתכם?
 

vinney

Well-known member
אני חייב להודות שמעולם לא הסתכלתי על הפרוייקטים האלה... היו לי כל מיני קו"ח, היה אחד שכתב שהוא CTO של סטארטאפ (סטארטאפ של אני, עצמי, ואנוכי, כמובן).

בסוף - עברו ראיונות? יש ממוצע טוב? את השאר אלמד אותם בעצמי.
 

user32

Well-known member
מנהל
בסוף - עברו ראיונות?
לא יודע מה אתה שואל בראיונות אבל מי שמגיע לראיון עם פרוייקט שאפשר לדבר עליו זה יתרון משמעותי מאשר ראיון שכולו סביב חידות, שאלות ליטקוד ותרגילים.
ומשתי האופציות שהציעו פה, מי שעבד על פרוייקט אמיתי מגיע לראיון עם אתגרים אמיתיים והתהליך שהוא עבר כדי לפתור אותם.
ההבדל המהותי הוא שבפרוייקט לימודי אתה בוחר את הדרך ואז מתאים לזה אפיון. בפרוייקט אמיתי המציאות מכתיבה לך דרישות ואתה צריך למצוא דרך למימוש.
 

דיברגנט חדש

Well-known member
לא יודע מה אתה שואל בראיונות אבל מי שמגיע לראיון עם פרוייקט שאפשר לדבר עליו זה יתרון משמעותי מאשר ראיון שכולו סביב חידות, שאלות ליטקוד ותרגילים.
ומשתי האופציות שהציעו פה, מי שעבד על פרוייקט אמיתי מגיע לראיון עם אתגרים אמיתיים והתהליך שהוא עבר כדי לפתור אותם.
ההבדל המהותי הוא שבפרוייקט לימודי אתה בוחר את הדרך ואז מתאים לזה אפיון. בפרוייקט אמיתי המציאות מכתיבה לך דרישות ואתה צריך למצוא דרך למימוש.
נכון, אך אם אין לך את הבסיס, תוכל מקסימום לעשות שינויים מינוריים בקוד ותו לא.
 

vinney

Well-known member
לא יודע מה אתה שואל בראיונות אבל מי שמגיע לראיון עם פרוייקט שאפשר לדבר עליו זה יתרון משמעותי מאשר ראיון שכולו סביב חידות, שאלות ליטקוד ותרגילים.
ומשתי האופציות שהציעו פה, מי שעבד על פרוייקט אמיתי מגיע לראיון עם אתגרים אמיתיים והתהליך שהוא עבר כדי לפתור אותם.
ההבדל המהותי הוא שבפרוייקט לימודי אתה בוחר את הדרך ואז מתאים לזה אפיון. בפרוייקט אמיתי המציאות מכתיבה לך דרישות ואתה צריך למצוא דרך למימוש.
יש ראיון התנהגותי, שם אולי ישאלו על הפרוייקטים. אני בדרך כלל מדבר עם המועמדים אחרי שהם כבר עברו ראיונות.
 
משעשע, כבר כשראיתי את הכותרת (עוד אתמול, כשקפצה לי בטלפון הנוטיפיקציה מהאימייל) תהיתי אם אנחנו מאותה הקבוצה... (אל חשש, אני גרוע בזיהוי לפי קישור רמזים שונים. הזיכרון שלי מוגבל למדי. אבל אין לי בעיה להזדהות אם תרצי, אם כי בטח כבר זיהית ממילא).

אני אחזור על עמדתי בעד השתלבות בפרויקט קוד פתוח משמעותי, כדי לקבל פידבק אמיתי, במקום לשחק מול מגרש ריק.
 

דיברגנט חדש

Well-known member
כתיבת קוד פתוח, כי בכל חברה תעבדי בצוות, תצטרכי לעשות קוד רוויו,
ייעשו לה קוד רוויו, לא היא תעשה.
ולדאוג שהקוד שלך יתממשק לקוד קיים. הסיכוי שיצא לך כמתכנתת בודדה לפתח מוצר מ0 ללא שת"פ עם מתכנתים אחרים שואף ל0.
ברור שלא ייתנו למתכנת מתחיל לכתוב קוד מאפס, זה בד"כ נותנים למתכנת מנוסה יותר, אך בכתיבת קוד עצמאית לומדים את הבסיס טוב יותר מאשר בתיקון או הוספה על קוד קיים.
מי שלא כתב מעולם קוד מההתחלה, לא יוכל להיות מתכנת טוב, מקסימום יוכל לעסוק בתמיכה טכנית ולא כמפתח.
 

user32

Well-known member
מנהל
יש בעיה שאני רואה בפרוייקטים עצמאיים שחוזרת על עצמה. הפרוייקטים תמיד נראים כמו פרוייקט סטודנטיאלי וההבדל העיקרי הוא שאין לפרוייקט משתמשים אמיתיים, אין דרישות חיצוניות ולכן למתכנת יש הרבה פחות אתגרים. בפרוייקט לימודי המתכנת נוטה להשתמש בכלים שהוא מכיר או רוצה ללמוד ולחפש להם יוז קייס כדי ליישם אותם. בפרוייקט בעולם האמיתי, גם בקוד פתוח כשיש צוות שמחליט על מטרות הפרוייקט והפיצ'רים, לא מעניין שבהכרח תשתמש בספריה X או פונקציית Y, אבל כן צריך לפתור בעיה מסויימת ובלי שהבעיה הזו תפתר, המשימה לא תצא לדרך.
לצורך ההמחשה אתן סתם דוגמא שכולם יכולים להבין. ראיתי פרוייקט CRM שאמור לנהל קשרי לקוחות. במסך הראשי רואים טבלה עם רשימת הלקוחות. אבל המתכנת לא חשב מה יקרה במצב הדי נפוץ שיש 30,000 שורות? או 200,000? יש לזה הרבה פתרונות: paging, טעינה דינאמית, בפרונט, בבק, תלוי בדרישות. זה הולך ומסתבך כשכל שורה מציגה preview, כשיש סינונים וחיפושים שכוללים קשרים בין טבלאות וכו'. לא מדובר בסקייל במובן של ביג דאטה אלא פיתוח סטנדרטי שכל מתכנת נתקל בו ביום יום.
יוצא שהמתכנת העצמאי מאוד מפוקס בשימוש בפרימוורק וחיבור החלקים אבל מפספס דברים מהותיים וזה גם ניכר בעבודה אצל ג'וניורים.
בפרוייקט אמיתי בחיים לא היו משחררים פיצ'ר במצב כזה.

אציין שפרוייקט עצמאי ללקוח אמיתי (כזה שמעלה דרישות ומשלם על הפיתוח) זה משהו אחר. אמנם חסרה הבקרה והרוויו אבל יש לזה ערך מוסף לא רע.
 

max256

Member
גם וגם...
כדאי גם להשתתף בפרוייקט קוד פתוח (או פרוייקט עם עוד כמה אנשים) וגם להתנסות בפרוייקט אישי.
מכל פרוייקט לומדים. כדאי גם לגוון מבחינת היקפי הפרוייקט וגם קצת לגוון בשפות / סביבות פיתוח.
|צב| |צב| |צב|
 
למעלה