Keyboard shortcuts

Press ← or → to navigate between chapters

Press ? to show this help

Press Esc to hide this help

Studies

איך לומדים בקורס?

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

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

למשל, במקום לכתוב:

“make this do binary search correctly”

כתבו:

“guide me in the steps of writing a binary search algorithm in C, write no code and nudge me along so I can learn instead of telling me the answer”

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

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

שאלות ותרגילים

  1. מצאו את דף הויקיפדיה של הפונקציה printf ומצאו את הטבלה בה מפרטים את כל המזהים להדפסות (לדוגמא d%).
  2. מהי שפת מכונה? למה קשה לכתוב בה תוכניות מורכבות?
  3. מה ההבדל בין שפת תכנות נמוכה לגבוהה?
  4. מה מיוחד בפונקציית ה-main בשפת C?
  5. מה תפקיד הפונקציות printf ו-scanf?
  6. איזה שורת מאקרו (macro) צריך לכתוב בקוד לפני שניתן להשתמש ב-printf ו-scanf?