איך לגרום לילדים לאהוב תכנות?

כתב: רן לוי

תמלל: יוני שטרן

המחשב הוא כלי העבודה הנפוץ ואולי החשוב ביותר בימינו: היכולת 'לדבר' בשפתו של המחשב – דהיינו, לתכנת – היא אולי אחד הכישורים השימושיים שילד יכול לרכוש לעצמו. אבל איך גורמים לילד לרצות לתכנת?…


מאמר זה הינו תמלול של הרצאת Key Note שהעברתי בכנס "רברסים", שנערך בפברואר 2014.


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

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

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

ZX Spectrum

אז בואו נתחיל – בעצם – בשאלה איך הגעתי למצב הזה שאני בן 35 ושונא לתכנת, למרות שהיו לי כל ה…מה זה? לא…(צחוק) זה לא משהו שהייתי מוכן בגיל 35…למרות שכשיש לך שלושה ילדים אתה כבר (צחוק) לא משנה. נשאיר את זה להרצאה אחרת – שלושה כאלה זה נורא. אוקיי – אז איך זה קרה באמת? אז המחשב הראשון שלי היה – אני לא יודע אם אתם מכירים אותו – זה ZX-Spectrum. יש פה כמה ראשים שמנדנדים בקהל. כן, זה משהו משנת 82'-83', אני חושב, משהו כזה. אחד מהמיקרו-מחשבים הראשונים…82', כן. אז למי שלא ראה אותו מעולם – זה מחשב קטן כזה שהיה לו מקשי גומי כאלה, לא היה מוניטור – זה היה מתחבר לטלוויזיה, ולא היו דיסקים – היו קסטות. בשביל לטעון את המידע – עד היום אני מגיע לבתי ספר ושואל אותם מה הקשר בין קסטה לעיפרון, אף אחד לא יודע – יש פה כמה אנשים, אולי עם השערות הלבנות – אני אגיד למי שמעבר ל-82', אז כשהקסטה – כשהסרט היה נמתח ומשתלשל, היית מחזיר את זה – כי הגודל של העיפרון בדיוק היה מתאים. זה היה משהו שקשה לדעת. ה'ספקטרום' הגיע בזמנו יחד עם איזושהי חוברת הדרכה כזו על בייסיק, זאת הייתה השפה אז – שפה קשה בפני עצמה, עם כל מיני דברים כמו goto, שזה מאז נחשב כחילול הקודש, ובכלל – החוברת הייתה לא קלה לעיכול, והכי גרוע – היא הייתה באנגלית, כמובן – לא היה בעברית, ובתור ילד, האנגלית שלי לא הייתה מספיק טובה בשביל להתעמק בנבכי השפה הזו. ולמרות שנורא התעניינתי והייתי סקרן לגבי איך מתכנתים את הספקטרום, אחרי כמה זמן הבנתי שזה נורא קשה ואני לא מצליח להבין שום דבר, והתייאשתי. וזה – פחות או יותר – קבע את כיוון המחשבה הראשוני שלי, שתוכנה זה גם נורא קשה.

לקח ראשון

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

לקח שני

המשכתי, ובגיל עשרים ומשהו הגעתי לטכניון ושם אחד מהקורסים הראשונים – אם לא הראשון – מבוא למדעי-המחשב. הזיכרונות צפים כשאני אומר את המילה הזו. כל דבר שרע בטכניון, רע במבוא למדעי המחשב. כל מה שמספרים לכם – מי שלא עשה את הקורס הזה בטכניון, ספציפית – כל מה שמספרים לכם על הטכניון זה נכון. מה חומר-העזר שהכי כדאי להביא למבחן במדעי המחשב? תהילים. כן. אם המרצה אומר שגם השנה לא יהיו הפתעות במבחן, זה רק מכיוון שגם השנה – כמו תמיד – הציון הממוצע יהיה 20. זה ה-mindset של הקורס. וזה היה קורס נורא וקשה ומשעמם, ולמדנו ב-C, שהיא שפה קשה גם למתכנתים מנוסים שלא מגיעים מהכיוון הזה. לומדים פוינטרים, דברים כאלה…זה נורא. בקיצור, שפה די קשה בשביל להתחיל איתה. מישהו פעם אמר לי שאם תשים מיליון קופים ליד מיליון מקלדות ותיתן להם לתקתק מיליון שנה – אחד יפיק תכנית בפייתון, כל השאר תכניות ב-C. ופקודות ביוניקס…אז זה קשה, שפה קשה.

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

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

פול התמנון

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

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

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

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

רגע של הארה

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

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

הלקח השלישי

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

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

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

קרא עוד בנושאים דומים:

אודות:

ספריו של רן:

כתיבת תגובה

האימייל לא יוצג באתר.