המסע אל עבר הסניוריטי: 5 תובנות מהספר ששינו את הגישה שלי

לאחרונה סיימתי לקרוא את הספר המצוין "The Staff Engineer's Path" מאת טניה ריילי, ואני חייב להגיד – הוא פתח לי את הראש. הספר הזה הוא לא רק מדריך למהנדסי צוות, אלא מקור השראה לכל מהנדס תוכנה שרוצה לצמוח, להשפיע ולהיות חלק משמעותי בארגון.

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

המשך קריאה "המסע אל עבר הסניוריטי: 5 תובנות מהספר ששינו את הגישה שלי"

פרומפטים וקומיטים: הדמיון שמפשט את העבודה עם AI

Image by vectorjuice on Freepik

ב-Google ו-Meta יש גישות עבודה ייחודיות לניהול גרסאות, שונות מאוד מאלו שמכירים בעבודה עם GitHub. בעוד שרוב העולם עובד בשיטת ה-Branch-based, חברות ענק כמו Google ו-Meta עובדות בשיטת Commit-based. הבדל זה נובע מהעובדה שבחברות אלו מתנהלים מול מונורפו עצום (Monorepo), שם המיזוגים (Merge) והענפים (Branches) פחות שימושיים לניהול בקנה מידה כה גדול. תחשבו על זה שבזמן שאתם עובדים על הפיצ׳ר כבר נכנסו 100 פיצ׳רים אחרים בגלל שיש עוד עשרות אלפי מפתחים שעובדים איתכם על אותו codebase.

בגוגל, לדוגמה, כל שינוי מתבצע בצורה של שינוי קטן המכונה CL (קיצור של Change List), אשר מתבסס על המאסטר ומותאם לעבודה בסביבה שבה מתרחשים עשרות אלפי שינויים מדי יום. כל קומיט הוא בעצם CL שהופך אוטומטית לסוג של PR (קיצור של Pull Request).

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

המשך קריאה "פרומפטים וקומיטים: הדמיון שמפשט את העבודה עם AI"

3 דרכים שאני משתמש בChatGPT בכדי להיות מתכנת טוב יותר

Image by vectorjuice on Freepik

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

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

אני יודע ששום כלי לא יחליף אותי בעבודה, אבל מי שיחליף אותי יהיה מי שמשתמש באותו כלי

רן בר-זיק, פודקאסט עושים תוכנה

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

המשך קריאה "3 דרכים שאני משתמש בChatGPT בכדי להיות מתכנת טוב יותר"

איך ליצור מסגרת כשאין מסגרת

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

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

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

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

המשך קריאה "איך ליצור מסגרת כשאין מסגרת"

לקח לי שבוע לפתור באג

Image by rawpixel.com on Freepik

לקח לי שבוע לפתור באג שנפתר בסופו של דבר על ידי הוספת משתנה סביבה.

Expected Behavior

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

המשך קריאה "לקח לי שבוע לפתור באג"