ronka.dev

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

15 בדצמבר 2023·8 דקות קריאה

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

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

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

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

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

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

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

1. בניית כלי עזר

לבקש מChatGPT לכתוב לכם את הפיצ׳ר זה ה-Obvious, לבקש ממנו לכתוב כלי עזר המשפר את הפרודוקטיביות ומייעל את זרימות העבודה זה הדבר האמיתי. כמפתחי תוכנה, אתם יכול לרתום את יכולות ה-ChatGPT לפתח סקריפטים וכלים שיאוטומטו משימות שגרתיות או יפתרו בעיות ספציפיות, כמו סקריפט Node.js להמרת קבצי HTML ל-Markdown בהתאם לצרכים שלכם במהירות. על ידי מתן תיאור ברור של הדרישות שלכם ל-ChatGPT, כגון "אני צריך סקריפט Node.js שלוקח קובץ HTML כקלט עם מבנה כזה וכזה וממיר אותו לפורמט Markdown בפורמט כזה וכזה", ChatGPT יכול ליצור במהירות סקריפט בסיסי. יכולת זו ליצור במהירות כלים עזר משחררת זמן יקר עבורכם להתמקד בהיבטים מורכבים יותר של הפרויקטים שלכם, ומבטיחה שזרימת העבודה שלכם תהיה יעילה ואיכותית.

image-1-1024x805

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

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

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

כמובן שהוא מצויין גם בכתיבת פיצ׳רים

כאשר אני תקוע או זקוק לפרוטוטייפ מהיר,  אני ישר הולך לChatGPT ומתאר לו את מה שאני רוצה לעשות. לדוגמה, אני עובד על Service חדש שאמור לייצר תוכניות אימון, אני פשוט מתאר את הפונקציונליות ושולח את הפרומפט. בחזרה אני מקבל מין שלד, שלפעמים הוא בעצמו מספיק ולפעמים הוא דורש הרחבה בהתאם לצרכים אבל זה עוזר לשבור את המחסום של להתחיל לעבוד על ״דף ריק״(מה שניקרא Blank Page Syndrome).
היו ספציפיים לגבי ההקשר, כמו האם אתם משתמשים ב-TypeScript או JavaScript, ספריות כלשהן (כמו React Native) או מערכות עיצוב ספציפיות כמו Tailwind. ה-ChatGPT יכול ליצור קטע קוד, לחסוך לכם זמן ולהציע פרספקטיבה חדשה לפתרון הבעיה.

image

התאמה של ChatGPT לסגנון קוד הבסיס שלכם

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

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

c9_RdNOxausJk_DgRvQz9XOvttEbVlQx7eIh4gEEIHFQ-H7KwXNEHCbOGu4tAb4zvjAzSg-BW6935E76KDTk97pp7ZnY8d5Y5TCf5wVV0XQ7kMCJ4lliT6oGpmyxLl3u2AMJ_8fEC_xDmNz-rn_acC0

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

טיפ: תדרשו מהצ׳אט להבין משהו ותבקשו ממנו לאשר את זה

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

2. תנו ל-ChatGPT לבדוק לכם את הקוד

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

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

Ez8uiRkomoSuUpzQWj5-rcYCxx7Ek2Op0MaIybzWDMCjcDuHE7lxLet0cdevzXXBaxnE_mWzVjzqywMVW9vfr5xr1lu1THglhCvyQsyuIPUezIRY9yjg93Y8oT8_xIqUJakma584hLZmUMcFQzIfeOY

3. לגלות מה אתם לא יודע שאתם לא יודע

ChatGPT יכול להיות כלי יוצא דופן שינחה אתכם בתהליך המחקר, במיוחד כאשר אינכם בטוחים לגבי הפרטים הספציפיים של מה שאתם מחפשים. במקרים שבהם אתם מודעים לבעיה אך לא בטוחים במונחים הטכניים או במילות החיפוש המדויקות, כמו לדוגמה כשאתם עובדים עם שפה חדשה ואתם לא יודעים בידיוק איך קוראים לפונקציונליות הזאת שם, ChatGPT מגיע לעזרה. לדוגמה, אם אתם מתמודדים עם בעיית Layout ב-React Native שאינה מתפקדת כצפוי על מסכים קטנים, אך לא מצליחים לזהות את המינוח הנכון לחיפוש בגוגל, ChatGPT יכול לעזור. פשוט תיארו לו את הבעיה, כמו "אלמנטים באפליקציית React Native שלי חופפים על מסכים קטנים - אילו מילות מפתח עליי להשתמש כדי לחפש פתרון?" ChatGPT יספק לכם אז שאילתות חיפוש מדויקות ומוכוונות. לדוגמה אני התחלתי לעבוד על אפליקציה בReact Native ובהתחלה לא הצלחתי להבין איך עובד המנגנון של הסידור אלמנטים ובעזרת הצ׳אט הצלחתי להבין שאני עובד בעצם עם Flexbox וככה ידעתי לדייק יותר את החיפוש שלי

_M3N10f4LnM0CF_TNj6yRQSt6DP_A2XZDFxBhqWU9aoUY1nZE97qaBa7GBtsLsUc8QUujgQvrksQdiMKneLNut8vmaImd5qP3laQ2KnCGG244GjDfVSTuhcBSJEpgIFH3tP9hFxQCmpW8ye2U2yxhH8

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

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

סיכום

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

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

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