הקדמה
קריאת קוד יכולה לעורר מאוד את הסקרנות,
מעבר לעניין הטכני, יש כאן קיום מדעי בסיסי - השאלה “איך זה עובד”.
היצר הזה עובד על גילוי וסקרנות, לאיך האמת עובדת, ליצור הבנה עמוקה יותר בנושא ואיך לשלוט בזה לרצוננו כדי להטיב עימנו.
קוד הן פקודות שאומרות למחשב מה לעשות,
כאשר אנו מבינים את הקוד לעומק, אנחנו יותר מדוייקים ויותר עוצמתיים בלומר למחשב מה לעשות.
אקסיומות
בעבר מחשבונים לא היו קיימים ומתמטיקה מסובכת הייתה צריכה להיעשות באופן ידני.
היום אפילו שאלות מתמטיות מורכבות ניתן לעשות במחשב - זו אקסיומה כבר, אנו לא חושבים על זה.
כל אקסיומה כזו יוצרת שכבה ובעזרת שכבות רבות אנו בונים את עתידנו.
למשל ב-2014 הצליחו לפתח את -Alpha Go
, ששלט במשחק סיני עתיק שחשבו שמחשב לעולם לא יצליח כי זה דרש יכולות חישוב אדירות.
היום - אפילו המחשב כיס שלכם יכול להריץ מודל AI
המסוגל לנצח שחקנים מקצוענים.
וכאשר מדובר בבינה מלאכותית ניתן ליצור מודלים עוצמיים ואפילו סוכני בינה מלאכותית בקלות ובקליק.AI Model
- אלגוריתם שיודע לעשות פעולה כמו לזהות עצמים בסרטון או חשיבה למשימה קונקרטית.Agentic AI
- מודלים שמחוברים לכלים שיודעים גם לבצע משימות.
עבור מתכנתים זה לא מספיק,
האקסיומות האלו לא יכולות להיות אקסיומות.
עלינו להבין כיצד הטכנולוגיה עובדת ומהי בבסיסה.
עלינו לחזור לסקרנות הבסיסית שלנו על מנת לנתח ולהעמיק בטכנולוגיה.
עקרונות קריאת קוד
התחילו מלמעלה למטה
תתחילו מהקבצים העליוניים, קובץ ReadMe
, דוקומנטציות, קבצים ראשיים כמו main
וכדו’..
בצעדי תינוק החלו לצלול לעומק של מימושים שונים בטכנולוגיה שאתם רוצים להכיר.
טסטים
אם מצאתם משהו מעניין בדקו אם יש בדיקות - במידה ויש קובץ בדיקות יופי,
זה ייעזור לכם להבין כיצד המבנים והפונקציות משומשים ומה אנו מצפים לקבל מהם.
לוגים
להפעיל לוגים על הרמה הגבוה ולראות מה התוכנה מוציאה החוצה זה כמו להקשיב לאדם ולהבין אותו.
עם כל שורת טקסט אנו מבינים יותר אילו רכיבים עובדים, מה הם כותבים לנו, על אילו מבנים הם עובדים וכדו’…
תעזרו בלוגים כדי להתמצות ביחידות הפעולה הרלוונטיות והעיקריות.
דיבאג
לאחר שהבנתם למעשה התוכנה עובד ניתן להתחיל לדבג אותה ולצלול לעומק.
לבדוק אילו משתנים עובדים, מהם הערכים שבהם, ואילו פונקציות קוראות לאילו פונקציות.
לעיתים התוכנה לא כתובה בצורה לינארית ויכול להיות קיימים middlewares
שפתאום צצים בקריאה.
בטכנולוגיות כגון C#
לעיתים פונקציות סטטיות צצות בקריאה ומבלבלות את סדר הקריאות.
זה גם נכון לכל קוד אסינכרוני ומקבילי.
צפייה בלי ביקורת
קל מאוד להיות ביקורתי ולהתחיל לומר “איכס למה הם כתבו את זה ככה”,
או “פה הייתי משתמש בטכנולוגיה אחרת” וכדו’…
במקום זאת תנסו להתעזר בסבלנות וקודם כל להבין את הקוד.
אחרי שאנו שולטים בו ניתן להתחיל עם הביקורת ואם הם מקבלים תרומות - אפילו לשנות את הקוד.
קריאת קוד
שפות רבות עברו למודל קוד פתוח והוציאו חלק מהקבצים שלהם כקוד מקור זמין לקריאה.
תיקחו את השפה שאתם עובדים בה ויישמו את עקרונות קריאת קוד והסקרנות שלכם.
כל הזמן שאלו את עצמכם שאלות:
איך זה עובד?
למה הם בחרו בדרך הזו?
איך פלטפורמות אחרות מממשות את אותו הדבר.
כמה דוגמאות לפרוייקטים:
https://github.com/dotnet/runtime
https://github.com/torvalds/linux/
https://github.com/redis/redis
https://github.com/vercel/next.js
https://github.com/godotengine/godot
https://github.com/python/cpython
ויש עוד הרבה!
תודה על הקריאה,
וקריאה מהנה :)