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

אני התחלתי לכתוב קוד בשפת פסקל איפשהו בשנות החטיבה העליזות. לצערי הייתה לי נטייה נוראית לחוסר תשומת לב ושגיאות סינטקס. שוב ושוב דברים לא היו עובדים לי ואני הייתי צריכה להתייעץ עם המחברת שלי (כן, אני זקנה) ולבדוק את סיכומי השיעור כדי להבין איפה טעיתי בקוד שלי.
נריץ קדימה לשנת 2024 –
אני עדיין לא זוכרת סינטקס. בימינו אני מכירה ועובדת באופן יומיומי עם הרבה יותר שפות, אז גם אם אני זוכרת את הסינטקס הנכון לפקודה, זו לאו דווקא תהיה השפה הנכונה. עם זאת, היום אני עושה הרבה פחות טעויות. איך קרה הנס? בזכות GenAI והשלמת קוד אוטומטית, כמובן. ברגע שאני מתחילה לכתוב שורת קוד, ההשלמה האוטומטית מזהה מה אני מנסה להוסיף ומציעה השלמות. לעתים קרובות מאוד ההצעות שלה מועילות, והדיוק שלהן משתפר כל הזמן.
ההתקדמות הזו קרתה באופן מהיר בצורה מסחררת. אני זוכרת שעד לפני שנתיים רוב ההצעות של ההשלמה האוטומטית היו לא נכונות. היא הייתה ממציאה פקודות לא קיימות, או מנסה לכתוב פונקציות שלמות כשאני רק רציתי לעשות הצבה פשוטה. אבל היא למדה, מהר, והיום אני כותבת קוד באופן הרבה יותר מהיר וחלק בזכותה.
מהו העתיד של כתיבת קוד בעזרת GenAI?
כמו שאמרתי, ההתקדמות של יכולות כתיבת הקוד של GenAI הייתה כה מהירה שקשה לדמיין איפה היא תהיה עוד שנתיים, או חמש.
השלמות קוד ארגוניות, כאלה שמכירות את ה-code base לעומק ונותנות הצעות מבוססות יוכלו לכתוב מחלקות, ממשקים ופונקציות פשוטות-בינוניות בצורה מוצלחת. כבר היום Copilot וכלים אחרים יכולים לכתוב קוד בעצמם בהינתן שם פונקציה/מחלקה. היכולת הזו תלך ותשתפר עד שנגיע לצורך מינימלי ביותר בהתערבות אנושית.
אני חושבת ש-GenAI תיצור סוג של שכבת ביניים שתהפוך את שפות התכנות שלנו לעוד יותר עיליות ממה שהן עכשיו. הרבה קוד יג׳ונרט אוטומטית ואנחנו נעבוד על החיבורים ברמה הגבוהה יותר.

עבודה כזו תהיה הרבה יותר מהירה כמובן אבל גם תגרור סוג חדש של באגים שיקשו על חיינו. כל מי שאי פעם עבדה עם שפות שמשתמשות ב-implicits יודעת שלכתוב פונקציה שמשתמשת ב-implicit לוקח חמש דקות, אבל לדבג אחר כך ולהבין מאיפה היא בחרה להביא את הערכים שבה היא משתמשת יכול לקחת שבועיים. אני מנחשת שאנחנו נעבור כמה שנים בהן עבודת המתכנתת תכלול הרבה פחות כתיבת קוד פשוט, אבל הרבה יותר דיבוג של קוד מג׳ונרט כדי לאתר טעויות ובאגים בלוגיקה.
מה הן ההשלכות של כתיבת קוד בעזרת GenAI?
כמו שכתבתי, העברת האחריות על הרבה מכתיבת הקוד ממפתחות אנושיות ל-GenAI תגרור עבודה שחורה, אנושית ומעצבן של איתור ותיקון באגים לוגים. אני מאמינה שזו תהיה רק תקופה והטכנולוגיה תתגבר עליה. הבעיה היותר משמעותית לתחושתי היא הדרך בה מפתחות חדשות ילמדו את העבודה.
כל השנים הארוכות שבהן כתבתי קוד, ראיתי שהוא לא עובד, וחפרתי ב-stack overflow עד שמצאתי פתרונות, לימדו אותי הרבה. בשנים האלה נברתי בקוד ובדוקומנטציה, למדתי לעומק איך קוד נכתב ועובד. קראתי המון קוד של אנשים אחרים כדי ללמוד ממנו, להעתיק אותו ולתקן אותו.
בגדול, כל מה שאני יודעת על כתיבת קוד הגיע מנסיון. כתבתי קוד, ייצרתי באגים ודפקתי את הראש בקיר עד שהגעתי לגרסה עובדת. לא הייתה שום אופציה אחרת. מפתחות העתיד לא יחוו את החוויה הזו, ואין דרך להתחמק מזה. ברגע שהטכנולוגיה של כתיבת קוד אוטומטית קיימת אז אף אחת, לא משנה כמה היא תרצה, לא תצליח להגיע לרמות החפירה בקוד שהיינו צריכות לעשות בעבר.

כן, כן, אני יודעת איך זה נשמע… ״אני הייתי צריכה ללכת בשלג בעומק 10 מטרים לכיכר העיר המרכזית כדי לכתוב קוד עם יתד על אבן״.
אבל הנקודה שלי היא לא נוסטלגית. אני לא חושבת שמתכנתות העתיד יהיו פחות טובות. אני חושבת שהן יצטרכו למצוא דרכים אחרות לרכוש את הכלים שהן יזדקקו להן, ושהידע שלהן בוודאות יהיה שונה משלנו.
ניסיתי ממש לחשוב, אבל אני לא מצליחה לדמיין לעצמי איך יראה קורס תכנות בעוד עשר שנים, אילו שיעורים יתווספו ואילו מקצועות יעלמו בתהומות הנשייה.
חלק שני – דיזיין
התחלנו מהצעד הבסיסי ביותר בתכנות – כתיבת קוד, ועכשיו נתקדם צעד אחד קדימה – כתיבת דיזיין.
כתיבת דיזיין ואפיונים
בין אם למערכות ענק או קומפוננטות קטנות, כתיבת דיזיינים היא חלק שוטף מעבודת המתכנתת, ותמיד צריכה להיות צעד מקדים לכתיבת הקוד עצמה.
נכון להיום יש לי כמה מטרות כשאני כותבת דיזיין:
- ליצור תוכנית מסודרת
כן, רוב הזמן יהיה לי איזשהו תכנון בראש, אבל עד שהוא לא כתוב על הנייר מתחילתו ועד סופו קשה לי לעלות על שגיאות ובעיות בדרך. כתיבת הדיזיין תעזור לי להבין מה פספסתי, מה כדאי להוסיף, ולוודא שהכל עובד כראוי ״על הנייר״. - לקבל פידבקים
אחת הסיבות החשובות לכתיבת דיזיינים היא האפשרות להעביר את המחשבות שלך מהראש לנייר – ואז לתת לאחרים לקרוא אותם. לאנשים אחרים תמיד תהיה נקודת מבט שונה. הם יוכלו לעלות על בעיות ונושאים שאת לא חשבת עליהם
מהו העתיד של כתיבת דיזיין בעזרת GenAI?
נתחיל מהנקודה שלא משנה כמה פעמים אני אחזור עליה זה אף פעם לא יהיה יותר מדי: GenAI היא לא ״בינה״ מלאכותית. היא תוכי ממוחשב שמייצר משפטים סבירים סטטיסטית שנשמעים טוב.
GenAI לא חושבת, היא לא מבינה, היא לא מסוגלת לתכנן. בשל כל אלה, ובניגוד לכתיבת קוד עובד, אני לא חושבת שאי פעם נוכל לסמוך על GenAI שתייצר לנו לוגיקה הגיונית.
היכולות של GenAI הן מאוד מרשימות. עד כדי כך שלפעמים אנשים טועים לחשוב שהיא באמת יודעת דברים. הרי רק לפני כמה פסקאות כתבתי שהיא תוכל מהר מאוד להחליף בני אדם בכתיבת קוד, אז למה שהיא לא תוכל לכתוב מסמכי דיזיין?
ובכן, GenAI יודעת לייצר דברים שנראים יפה, מפורמטים בצורה תקינה, ומועתקים מאינספור דוגמאות שהיא ראתה קודם ומבצעים את אותה המשימה. קוד עומד בכל הדרישות האלה, ולכן יש לה סיכוי לא רע בכלל לכתוב קוד תקין שעושה את מה שהוא אמור לעשות.
אבל GenAI לא יכולה להבין את הבעיה שהדיזיין אמור לענות עליה, ולכן אין לה דרך לדעת אם הדברים שהיא כותבת אכן פותרים את הבעיה או לא. אם תבקשו ממנה לכתוב דיזיין למערכת מסוימת היא כנראה תכתוב משהו שיראה ויקרא כמו דיזיין. אולי הוא אפילו יתכנן מערכת דומה למה שביקשתן, אבל לא באופן הגיוני.
בשבוע שעבר נתקלתי בדוגמא שנראתה לי מאוד רלוונטית להבהרת הנקודה. לפני כשבועיים הושקה מערכת חדשה בשם Luma dream machine. זו מערכת GenAI שיודעת לקחת תמונה ולייצר ממנה וידאו מתאים. מה זה וידאו מתאים? ובכן…
ברגע שה-dream machine הושקה מלא אנשים התחילו להשתמש בה כדי לייצר סרטוני וידאו מממים מפורסמים. חלק מהתוצאות נראות ממש הגיוניות. למשל, בסרטון של הילדה שצופה בבית נשרף אנחנו רואים כבאים נכנסים לפריים –
הבחור הולך לדבר עם הבחורה בשמלה האדומה –
ואז מגיע הפייספאלם (see what I did there?)
בניסיון להפוך את המם המאוד מפורסם של פטריק סטיוארט בפייספאלם לוידאו, הדמות בסרטון מזיזה את ידה מהפנים, ומתחת ליד מתגלה – לא פטריק סטיוארט!
זאת מכיוון שה-dream maching יכולה לייצר דברים שנראים טוב, אבל היא לא יודעת שום דבר על מה שהיא מייצרת.
נו, אז בכל זאת מהו העתיד של כתיבת דיזיין בעזרת GenAI?
אז אחרי שסטינו היטב מהנושא וחשבנו קצת על פטריק סטיוארט, אני אגיד איך אני משלבת היום GenAI בכתיבת מסמכי דיזיין ואיך נראה לי העתיד.

כיום אני משתמשת ב-GenAI הפנימי של מטא כדי לעזור לי לכתוב מסמכים רבים. הוא מאוד עוזר לתהליך שלי. בדרך כלל אני מתחילה מהצגת סוג המסמך שאני רוצה לכתוב (נגיד, דיזיין), ומה הנושא, הבעיה, והפתרון הכללי שלי. אני מנחה אותו לשאול אותי שאלות שיעזרו לו למלא פרטים ולייצר את המסמך בשבילי.
בתגובה, ה-GenAI יציג לי רשימה ארוכה של שאלות לגבי הבעיה שאני באה לפתור – מה המטרות, מה יהיו הקשיים הצפויים, מסגרות זמנים ועוד ועוד. אני עונה על כל השאלות האלה בשפה טבעית.
מבחינתי הנקודה הזו – השפה הטבעית – היא הניצחון האמתי. זה החלק שעוזר להוריד לי את רמת הלחץ והאובססיה על פרטים קטנים שבדרך כלל מלווה אותי בכתיבת מסמכים. ה-GenAI לוקח את התשובות שלי, מנסח ומפרמט אותם ובונה מסמך דיזיין בהתבסס על המידע שנתתי לו, שנראה ונשמע יפה ורציני.
השלב הבא הוא כמובן לקרוא את כל מה שהוא כתב ולבקש ממנו לתקן ולשנות את הטעויות שהוא הכניס ואת כל מה שהוא לא הבין נכון – וחוזר חלילה.
זה לא תהליך מושלם. בסוף אני תמיד צריכה גם לשכתב דברים בעצמי. אבל מה שאני מקבלת הוא הרבה יותר משלד, אני מקבלת מסמך במצב לא רע, מנוסח היטב עם הרבה מידע נכון וקצת טעויות שאני צריכה לתקן או אזורים שאני מרגישה שצריך להבהיר. זה לוקח לי בערך רבע מהזמן שלוקח לי לכתוב מסמכים כאלה לבד ומאוד עוזר לי להתמקד ולא לפספס דברים.
אני מאמינה שהעתיד ימשיך ככה, רק בצורה משופרת. ניתן להניח שתוך כמה שנים כבר נפסיק להשתמש ב-GenAI כלליים כל יכולים להכל, ונתחיל להשתמש בתוכנות הרבה יותר קטנות ומכוונות מטרה. למתכנתות ומתכנתים יהיה Design Buddy כזה שיודע לשאול את השאלות הנכונות, לכוון ולעזור בכתיבת מסמכים. אני מדמיינת תוכנה שתכיר לעומק את הפורמטים של כל סוגי המסמכים השונים שצריך לכתוב לפי קהל היעד. נוכל להשתמש בה כמו שמפתחות משתמשות כיום בלינטרים היום כדי ליצור אחידות פורמטים בצוות שתקל על כולם את העבודה. על כלי כזה נוכל לסמוך שהוא יוכל לזכור ולוודא שהמסמכים שלנו מכילים את כל הנקודות החשובות וששום דבר לא נשכח.
חלק שלישי – ראיונות עבודה
אחרי שדיברנו על קוד ודיזיין מגיע החלק האחרון והבלתי נפרד מחייה של כל מפתחת – ראיונות עבודה.
האמת היא שזו בעיניי אחת השאלות הכי מרתקות. איך אפשר לעשות ראיון קוד למפתחים, כשיש בידם כלי שיודע לכתוב קוד? איך אפשר לבדוק עבודות בית בלי לדעת כמה מהן המועמדים כתבו וכמה כתב ChatGPT?
אישית, אני חושבת שבשנים הקרובות נראה פחות ופחות חברות מבקשות ממועמדות לקבל בעיה פשוטה ולכתוב קוד שפותר אותה.

מהו העתיד של ראיונות עבודה בעזרת GenAI?
אני חושבת שהשילוב של GenAI בראיונות עבודה תתן לנו המראיינות הזדמנות מדהימה לבחון מועמדות על יכולות חשובות שלא נמדדות בראיונות כרגע.
חשבו לדוגמא על code review. בדיקת קוד של אחרות ונתינת פידבקים משמעותיים זה חלק ענקי מהעבודה שלנו, וזה משהו שאף פעם לא נבחן בראיונות עבודה. אני הייתה שמחה לבצע ראיון שבו אני מציגה בפני המועמדת קוד מג׳ונרט ומבקשת ממנה לבדוק אותו. המועמדת תצטרך להתעמק, לעלות על באגים לוגיים ולתת הערות בונות למי שכתב אותו (הנה דוגמא דומה שעשיתי בעצמי לפני שנתיים).
בראיון כזה אני בודקת את היכולת של המועמדת להבין את הבעיה ואת הפתרון מספיק לעומק כדי להיות מסוגלת לעלות על בעיות בקוד קיים – מקרה הרבה יותר נפוץ ברוב החברות מאשר כתיבת קוד חדש מאפס. כמו כן, אני בוחנת את היכולת שלה לעבוד בצוות ולתת הערות משמעותיות ובונות – יכולת שהייתי רוצה שתהיה לכל חברת צוות שאני עובדת איתה.
על מנת לבחון יכולות דיזיין הייתי מציגה למועמדת בעיה קצת יותר גדולה ומבקשת ממנה לתכנן פתרון ואז לפרק אותו לחלקים קטנים יותר. הדיזיין צריך להיות מספיק טוב והפירוק למשימות מספיק פשוט כדי ש-GenAI יוכל ליצור ממשקים מתאימים לבקשתה.
בראיון כזה אני בודקת את יכולות הדיזיין ב-overview שנבדקים בראיונות גם היום, וגם את היכולות לפרק למשימות קטנות יותר ולתקשר אותן למתכנתות אחרות – יכולות חשובה מאוד למפתחת יותר סיניורית בצוות.
סך הכל אני חושבת ש-GenAI יהיה כלי מצוין שיוכל להעלות את רמת ראיונות העבודה שלנו בלי להוסיף כמות בלתי הגיונית של עבודה למראיינות. אני ממש מקווה שחברות ישכילו להשתמש בו.
לסיכום
זהו, זה היה הניסיון הקטן שלי בחיזוי העתיד, מוזמנות לחזור בעוד כמה שנים ולצחוק עליי, ושיהיה לכולנו בהצלחה עם עליית המכונות.