לתכנת כמו ילד קטן

(זהירות, פוסט פילוסופי לפניכם!)

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

Lunar Lander Model
דגם "נחתת ירחית" מחומרים ביתיים (לא אכילה!)

בין התוכנות שעל שולחן העבודה במחשב של הילד שמתי גם סביבת פיתוח בסיסית וחמודה לשפת BASIC, והיום היה ה"שיעור" הראשון בתכנות: כתבתי את התוכנית הזו

for x = 1 to 10
print "XXXX"
next x

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

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

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

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

Lunar Lander Model on Cake
"יוסטון, כאן בסיס עוגה. הנשר נחת."

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

להרשמה
הודע לי על
8 תגובות
מהכי חדשה
מהכי ישנה לפי הצבעות
Inline Feedbacks
הראה את כל התגובות

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

נ.ב. למה נעדו הנגדים שמלופפים מסביב לרגליים של רכב החלל?

בן כמה הבן שלך עידו שהכנסת אותו לדבר כזה ?

מעשה שהיה:
ראש השנה, אחיין שלי (בערך בן חמש אז) יושב לידי בשולחן ומציק לי עם תרגילי חשבון, כדי להשתיק אותו שאלתי אותו כמה זה 613*5.
כעבור דקה הוא חוזר אלי: 3065, נכון?
(כרגע אני לא חושב ללמד אותו תכנות, ולא נראה לי שאבא שלו ישמח אם אני אלמד אותו…)

פוסט מצויין. גם אני בימים אלו מתלבט איך ואם לקרב את בתי (8) לעולם הארדואינו והתכנות, במיוחד לאור העובדה שהיא בונה "רובוטים" מספוגים וירח קטן שעליו עומדת לייקה הכלבה האומללה שנשלחה למות בחלל אי שם בשנות החמישים. לגבי השאלות שאתה מעלה – אין ספק שצורך הוא אם כל ההמצאות והדבר שמעודד אותך לקפוץ פנימה בלי לדעת לשחות הוא הרבה פעמים הרצון לייצר משהו שנדמה בהישג ידך. בנוסף, העובדה שהארדואינו כל כך ידידותי עולה, אני חושב, ביתרונותיה על החסרון שציינת – ולו רק מפני שהמתנסה המתחיל יימצא את עצמו מהר מאוד בסביבה לא ידועה וייאלץ להתמודד עם הבסיסים שחסרים לו. נדמה… לקרוא עוד »