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