מה יקרה אם?

21/11/2021

הנה טכניקה טובה שאתם יכולים לנסות בפעם הבאה שתגיעו ללמוד משהו חדש: ניסוי לימודי. המשחק בנוי מ-3 שלבים:

1. אני חושב שיקרה X

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

  1. אני חושב שאם אכתוב את הקוד הזה הוא ידפיס את התוצאה ההיא.

  2. אני חושב שאם אשווה בין המחרוזת "2" למספר 2 בפייתון אקבל שהם שווים.

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

  4. אני חושב שהקוד בדוגמה יעבוד גם אם אמחק את השורה הרביעית ממנו.

  5. אני חושב שאם אוסיף sleep לפני העליה של בסיס הנתונים אז גם השרת לא יצליח לעלות.

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

2. קרה Y

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

מה שחשוב הוא לשים לב למה באמת קרה ולא לחפש רק את התוצאה שרציתם.

3. למה זה קרה

והשלב השלישי הוא החלק הקשה ובו צריך להבין ולהסביר למה קרה מה שקרה. מה חשבתם בהתחלה, מה גיליתם, ומה למדתם בתהליך.

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

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

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

4. מה טוב בשיטה הזאת

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

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

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