Post by Noaa Maman
Backend Engineer at Tlvtech
"הם מגיעים לקורס מבוא למדעי המחשב באוניברסיטה – ורובם נכשלים" ככה התחילה השיחה שלי עם מנהל תוכנית מצוינות ברובוטיקה ותוכנה. הוא הבין שמשהו בגישה שלו חייב להשתנות. מגיל צעיר החבר'ה האלה לומדים חומרה, סימולציות ורובוטיקה, מעבר ללימודי מתמטיקה ופיזיקה ברמה גבוהה. רקע עשיר לכל הדעות. אבל השיחה איתו לקחה אותי להתחלה שלי בתחום, ולפער העצוּם שבין לדעת שפת תכנות לבין להבין לוגיקה וחשיבה תכנותית. את ההבדל הזה לימדה אותי Keren Kalif המדהימה (ממליצה בחום). הסברתי לו את דעתי: זה שהם תכננו מערכת רובוטית מתקדמת או מודל תלת-ממד מורכב, לא אומר שהם רכשו חשיבה לוגית. המרצה שהייתה לי למבני נתונים אמרה פעם שאם זה היה תלוי בה – שנה שלמה היינו עובדים רק עם דף ועט עד שנכתוב קוד לראשונה. בסוף היא התפשרה על גישה קצת פחות שמרנית, אבל הכריחה אותנו לכתוב פסאודו-קוד על הלוח לפני שבכלל נגענו בקוד או מקלדת. באותה תקופה היא הרגישה לי פחות חדשנית ממרצים אחרים. היום אני מעריכה אותה על זה ומבינה בדיוק למה היא התכוונה. התוכנית של אותו מנהל אימנה אותם להיות בילדרים בחסד עליון. אבל הדף והעט מייצגים את תהליך החשיבה הלוגי, מאבני הבניין הבסיסיות ביותר ועד לאלגוריתמים ומבני נתונים. הם ידעו לתכנן Board לרחפן מאמזון, אבל מעולם לא עצרו שנייה לחשיבה הלוגית הבסיסית. היום, עם אינסוף פיתויים לקיצורי דרך, האתגר גדול עוד יותר. התמכרנו למהירות שבה אנחנו מייצרים קוד, ואנחנו מפספסים המון בדרך. מה מפספסים? נושאים כמו ניהול זיכרון (כן, גם בשפות High level, תשאלו את ה-JVM של ג'אווה), או הבנה של קומפיילרים וסביבות הרצה בעידן של מחשוב מבוזר (כן מסתבר שגם על זה צריך לחשוב לפעמים). וזה רק על קצה המזלג. האתגר שלנו הוא ליצור מסלול שמפתח את הצד ה"בילדרי", אבל לא מוותר על האטה וחשיבה עמוקה.