איך להפיק את המירב מהאקתון

Updated: Aug 31, 2019

דריה אקרמן ונגה מן //


הפוסט מבוסס על הרצאת וידאו של דריה אקרמן ונגה מן, שפורסמה בקבוצת הסטודנטיות של QueenB בפייסבוק. מוזמנות להצטרף לקבוצה ולצפות בסרטון.

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

יש שיטענו שהאקתון הוא ניצול הזמן הטוב ביותר ללמידה טכנולוגית: בהשקעה מינימלית של בדרך כלל יום או יומיים לומדים המון המון. כמה המון? לפעמים יותר מאשר לומדים בסמסטר שלם בקורס כלשהו. וכל כך הרבה אסימונים נופלים.

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


למה בכלל להשתתף בהאקתון?

רשימת הסיבות ארוכה מאד. נזכיר כאן כמה מהסיבות המרכזיות שרלוונטיות בעיקר לסטודנטיות.

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

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

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

התואר מלמד אותנו הרבה דברים אבל לא תמיד מה שצריך עבור עבודה בתעשייה. האקתון הוא הזדמנות לצבור ניסיון בתכנות ״אמיתי״, ללמוד מונחים רלוונטים: מה זה אומר "להרים שרת", איך יוצרים UI ועוד.

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


לפני ההאקתון

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

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

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



רגע לפני שמתחילים

רגע לפני שצוללים לעבודת המימוש - אלו דברים שאפשר לעשות רגע לפני שמתחילים: כמה ימים לפני ההאקתון או בשעות הראשונות של האירוע.

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

שני פתרונות אפשריים:

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

  • אופציה נוספת היא לחשוב על רעיון יותר מתוחכם ויצירתי, ולעשות לו גרסה מצומצמת. במונח המקצועי זה נקרא MVP - minimal viable product, המוצר הכי מינימלי שהוא עדיין עם הערך והמהות של המוצר השלם. למשל, לממש פיצ׳ר מסויים אחד מתוך המוצר השלם, או לעשות mockים שידמו את מה שהמוצר אמור לעשות, מבלי לממש באמת את כל רכיבי הפרויקט. זה מאפשר לכן גם להרחיב את הגרסה המינימלית במידה ונשאר זמן בהאקתון או אחריו.

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



מהלך ההאקתון

סופסוף הגיע הרגע לפתוח את המחשב ולהתחיל לתכנת!

איך מחלקים את העבודה - הרבה פעמים העבודה מתבצעת בסופו של דבר בזוגות שיושבים על אותו מחשב, וזה יכול להיות נחמד ואחלה ויותר כיף, להתגבר על האתגרים ביחד ולא כל אחד בנפרד. זה גם נותן כח ומוטיבציה וגם אפשר להשלים אחד את השני וללמוד זה מזה. קבוצה של 4 אנשים יכולה לחלק את הפרויקט ל-2 משימות עיקריות שיתחלקו בין הזוגות. אפשר לחלק את העבודה לפי תחומים נפרדים - הרבה פעמים ממליצים להתחלק ל-frontend ו-backend. זה בעצם אומר שהפרויקט השלם מתחלק לשני קצוות - ועובדים על הקצוות האלו במקביל, בתקווה שתפגשו באמצע. הסכנה היא, מכיוון שהכל לוקח יותר זמן ממה שחושבים, ייתכן שלא תספיקו לבצע את החיבור בפועל. ואז אתן נשארות עם שתי חתיכות של פרויקט, שלא ממש עושות משהו כל אחת בפני עצמה.

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

בדיקות Test as you go - הרבה מאיתנו עושות את הטעות של להתיישב בבוקר ההאקתון ליד המחשב, לכתוב קוד עד שמגיעה השעה לסיים ואז מהר מנסים להריץ ומגלים ששום דבר לא עובד. ברור שזה לא יעבוד. אין שום סיכוי שזה יעבוד. אם המטרה שלנו היא גם לטעום מחיי התכנות בתעשייה, זו נקודה מעולה - כל דבר קטן שמוסיפים, כל פיצ׳ר חדש - תמיד לבדוק ולהריץ. כל שינוי קטן יכול לשבש את הכל. וברגע שאנחנו בודקות את העבודה תוך כדי, הרבה יותר קל להבין מאיפה הבעיה הגיעה. מי שאינה מיומנת בקסם הדיבוג עשויה להתקשות למצוא את הבאג מתוך מערכת שלמה. שם בדרך כלל מתחילים התכסכולים, זה לרב קורה באמצע הלילה כשכולם כבר עייפים, ואז גם עולים המתחים מהעבר - ונהיה שם ריב. אפשר לחסוך את כל זה על ידי בדיקה של כל אלמנט, תוך כדי שיוצרים אותו. זה באמת יקל על החיים ברמה שקשה לתאר. וזה פשוט good practice לכל דבר שתעשו אחרי זה בתכנות.

מנטורים- אפשר לחלק את המנטורים לשלושה סוגים:

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

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

  • רב המנטורים - יש להם ניסיון רלוונטי, אבל צריך לדעת איך להיעזר בהם. זו כמעט אומנות, שגם בה משתפרים עם הזמן - איך לנסח את השאלה שלנו? מה בעצם לא עובד? לרוב כדאי לנסח את השאלה מאוד ברורה וכללית, ובהדרגה לרדת לפרטים יותר ספציפיים, תוך וידוא שלא איבדתן את המנטור בדרך. צריך לדעת איך להיעזר במנטורים, לא לצפות שהם יפתרו לנו את כל הבעיות. אפשר לבקש עזרה בהבנה של מקור שמצאנו בגוגל, או להציג למנטורים באג ולבקש שיעזרו לנו לפענח אותו. ובגדול: Help them to help you!


רגע אחרי

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

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

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

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

שיהיה מלא בהצלחה! תלמדו מלא דברים חדשים ותתרכזו במה למדתן ולא במה לא הספקתן (:

  • White Facebook Icon
  • White Instagram Icon
  • White YouTube Icon
  • White LinkedIn Icon