רוב האנשים שמחליטים ללמוד לתכנת לא נתקעים על חומר קשה. הם נתקעים על שאלות שאף אחד לא טורח לענות עליהן: באיזו שפה מתחילים, מה מתקינים, כמה זמן ביום זה דורש, ואיך יודעים שזה עובד כשכל יום מרגיש כמו מאבק בהודעות שגיאה. המדריך הזה עונה על השאלות האלה לפי הסדר, ונגמר בתוכנית מעשית לארבעת השבועות הראשונים. הוא לא מבטיח שתהיו מתכנתים בעוד חודש. הוא כן מבטיח שבעוד חודש תדעו אם זה בשבילכם, ושיהיה לכם משהו קטן שבניתם בעצמכם.
קודם המטרה, אחר כך השפה
השאלה "באיזו שפה להתחיל?" מקבלת ברשת אלפי תשובות סותרות, ורובן נכונות למישהו. הסיבה היא ששפה היא כלי, וכלי בוחרים לפי המשימה. לכן לפני שבוחרים, כדאי לכתוב משפט אחד: מה הייתי רוצה לבנות או לעשות בעוד שלושה חודשים.
- "לסדר נתונים, טבלאות ודוחות" — פייתון, ובשלב מאוחר יותר SQL. זה השילוב שמופיע כמעט בכל עבודה עם נתונים.
- "לבנות משהו שרץ בדפדפן" — JavaScript. היא רצה בכל דפדפן בלי התקנה, ומאפשרת לראות תוצאה על המסך מהשעה הראשונה.
- "לחסוך עבודה ידנית במחשב" — פייתון, ולצידה כמה פקודות של שורת הפקודה.
- "עוד לא יודע, רק סקרן" — פייתון. התחביר שלה קריא, ההודעות שלה ברורות יחסית, והיא מתאימה לכמעט כל כיוון שתבחרו אחר כך.
הדבר החשוב באמת הוא שהשפה הראשונה פחות קובעת ממה שנדמה. המושגים — משתנה, תנאי, לולאה, פונקציה, מבנה נתונים — זהים כמעט בכל השפות. מי שלמד אותם בשפה אחת לומד את השנייה בשבועות, לא בחודשים. ההשוואה המלאה בין האפשרויות נמצאת במדריך בחירת שפה ראשונה.
היום הראשון: שלושה דברים להתקין, ולא יותר
הטעות הנפוצה ביותר ביום הראשון היא להתקין יותר מדי. סביבות פיתוח מלאות, תוספים, כלים "שכל מקצוען משתמש בהם" — כל אחד מהם מוסיף עוד מקום שבו משהו יכול להשתבש לפני שכתבתם שורה אחת. מספיקים שלושה דברים:
- השפה עצמה. לפייתון — מהאתר הרשמי python.org, בגרסה העדכנית. בהתקנה על ווינדוס, סמנו את האפשרות שמוסיפה את פייתון ל־PATH. זו תיבת סימון קטנה שחוסכת שעה של חיפושים מאוחר יותר.
- עורך קוד. VS Code הוא בחירה סבירה לרוב המתחילים: חינמי, עובד על כל מערכת הפעלה, ויש לו תמיכה טובה בפייתון וב־JavaScript. ההגדרות שכדאי לשנות מהיום הראשון מפורטות במדריך VS Code למתחילים.
- טרמינל. הוא כבר מותקן אצלכם. בווינדוס זה PowerShell או Windows Terminal, במק ובלינוקס זה Terminal. אין צורך להבין אותו לעומק עכשיו — רק לדעת לפתוח אותו ולהריץ ממנו קובץ.
כדי לוודא שהכול עובד, צרו קובץ בשם hello.py עם השורה הבאה, ושמרו אותו:
print("hello, world")פתחו טרמינל בתיקייה של הקובץ והריצו:
python hello.pyאם הופיע הטקסט — הסביבה מוכנה. אם הופיעה הודעה שהפקודה לא מוכרת, כנראה שפייתון לא נוסף ל־PATH, או שבמערכת שלכם הפקודה נקראת python3. זו הודעת השגיאה הראשונה שלכם, והיא הזדמנות טובה לקרוא את המדריך לקריאת הודעות שגיאה — כי היא בהחלט לא תהיה האחרונה. פירוט מלא של ההתקנה, כולל מה עושים כשמשהו לא עובד, נמצא במדריך הקמת סביבת פיתוח.
כמה זמן ביום, ובאיזו צורה
התשובה הכנה: פחות ממה שחשבתם, אבל בעקביות. שעה ביום, חמישה ימים בשבוע, תביא אתכם רחוק יותר משמונה שעות ביום שבת אחד. הסיבה היא שתכנות נלמד בעיקר דרך תקלות שנפתרות, והמוח צריך לישון על תקלה כדי להבין אותה. מי שיושב שמונה שעות ברצף נתקע לרוב באותה בעיה במשך ארבע מהן.
החלוקה שעובדת לרוב האנשים בשעה כזאת: עשר דקות לקרוא או לצפות בהסבר של מושג אחד, ארבעים דקות לכתוב קוד שמשתמש בו, ועשר דקות לרשום לעצמכם מה עבד, מה לא ומה לא הבנתם. הרשימה האחרונה הזאת שווה זהב — אחרי שבועיים תגלו שחצי מהשאלות שבה כבר קיבלו תשובה, וזו ההוכחה הכי טובה לכך שאתם מתקדמים.
התוכנית: ארבעה שבועות
התוכנית הבאה כתובה לפייתון, אבל המבנה זהה בכל שפה. כל שבוע נגמר בתרגיל קטן שמשתמש במה שלמדתם. אל תדלגו על התרגיל — הוא החלק החשוב.
שבוע 1: משתנים, טיפוסים ותנאים
מה זה משתנה, מה ההבדל בין מספר למחרוזת, איך מקבלים קלט מהמשתמש ואיך מקבלים החלטה עם if. בסוף השבוע: תוכנית ששואלת את המשתמש את גילו ומדפיסה הודעה שונה לפי הטווח. נשמע פשוט, וזה בדיוק העניין — תגלו שגם כאן יש מקרים שלא חשבתם עליהם, כמו משתמש שמקליד מילה במקום מספר.
שבוע 2: לולאות ורשימות
איך חוזרים על פעולה, מה ההבדל בין for ל־while, ואיך שומרים כמה ערכים ברשימה. כאן כדאי לקרוא את המדריך על רשימות, מילונים וסטים. בסוף השבוע: תוכנית שמקבלת רשימת ציונים ומחשבת ממוצע, ציון גבוה וציון נמוך — בלי להשתמש בפונקציות המובנות שעושות את זה בשבילכם, כדי שתבינו מה קורה בפנים.
שבוע 3: פונקציות וקבצים
איך מפרקים קוד לחלקים קטנים עם שם, מה זה פרמטר ומה זה ערך מוחזר, ואיך קוראים וכותבים קובץ טקסט. כאן נכנס המדריך על פונקציות בפייתון. בסוף השבוע: אותה תוכנית ציונים, אבל הנתונים נקראים מקובץ, וכל חישוב יושב בפונקציה משלו.
שבוע 4: פרויקט קטן שמסיימים
זה השבוע החשוב. בחרו בעיה קטנה מהחיים שלכם — רשימת קניות שנשמרת בקובץ, ממיר מטבעות עם שערים שאתם מעדכנים ביד, סקריפט ששם בתיקייה נפרדת כל קובץ PDF בתיקיית ההורדות — ובנו אותה מתחילתה ועד סופה. השאיפה היא לא לבנות משהו מרשים, אלא לבנות משהו שגמור: שאפשר להריץ, שעושה את מה שהוא אמור, ושלא קורס כשמשתמש עושה טעות צפויה. רעיונות נוספים, ברמה מעט גבוהה יותר, נמצאים בחמישה סקריפטים לאוטומציה.
איך נראה תרגיל של שבוע 1, בפועל
כדי שהתוכנית לא תישאר מופשטת, הנה פתרון אפשרי לתרגיל של השבוע הראשון. קראו אותו רק אחרי שניסיתם לבד — גם אם הניסיון שלכם לא עבד:
age_text = input("How old are you? ")
if not age_text.isdigit():
print("Please type a whole number, for example 34.")
else:
age = int(age_text)
if age < 18:
print("Under 18")
elif age < 65:
print("Between 18 and 64")
else:
print("65 or older")שימו לב לשורה השלישית. היא לא חלק מה"פתרון" במובן הצר — בלי הבדיקה הזאת, התוכנית עובדת מצוין כל עוד המשתמש מקליד מספר. אבל ברגע שמישהו מקליד "שלושים", מופיעה הודעת שגיאה. את רוב הזמן בתכנות מבלים בדיוק בשורות כאלה: לא בדרך שבה הכול עובד, אלא במקרים שבהם משהו לא צפוי קורה. מי שמבין את זה בשבוע הראשון חוסך לעצמו הרבה תסכול בהמשך.
אגב, יש בקוד הזה גם מגבלה שלא טופלה: isdigit לא מקבל מספר שלילי או מספר עם נקודה עשרונית. בשביל תרגיל על גיל זה מספיק, אבל זו בדיוק השאלה שכדאי לשאול על כל קוד שכתבתם: באילו קלטים הוא עוד לא עומד?
מה עושים כשנתקעים
תיתקעו. זה לא סימן לכך שתכנות לא מתאים לכם — זה החלק הרגיל של העבודה, גם אחרי עשרים שנה. מה שמשתנה עם הזמן הוא לא כמה פעמים נתקעים, אלא כמה מהר יוצאים. סדר הפעולות הבא עובד ברוב המקרים:
- קראו את הודעת השגיאה עד הסוף, ובמיוחד את השורה האחרונה ואת מספר השורה בקוד שלכם. ברוב המקרים התשובה כתובה שם.
- הקטינו את הבעיה. מחקו (בעותק) כל מה שלא קשור, עד שנשארות כמה שורות שעדיין מראות את הבעיה. לעיתים קרובות הבעיה נפתרת כבר בשלב הזה.
- הדפיסו ערכים. שורת
printלפני השורה שנכשלת מראה מה באמת יש במשתנה, ולא מה שחשבתם שיש בו. - חפשו את הודעת השגיאה המדויקת, בלי החלקים שייחודיים לקוד שלכם כמו שמות קבצים.
- קומו מהמחשב. זה נשמע כמו עצה רכה, אבל מספר מפתיע של בעיות נפתרות בהליכה של עשר דקות.
אם אחרי כל אלה עדיין תקועים, נסחו את השאלה בכתב: מה ניסיתם לעשות, מה ציפיתם שיקרה ומה קרה בפועל. לעיתים קרובות, עצם הניסוח המסודר חושף את התשובה.
שלוש מלכודות שכדאי להכיר מראש
מלכודת המדריך הבא. קל מאוד לצפות בעוד מדריך ועוד סרטון ולהרגיש שאתם לומדים. בפועל, מה שנשאר הוא מה שכתבתם בעצמכם. כלל אצבע: על כל שעה של קריאה או צפייה, לפחות שעה של כתיבה.
מלכודת ההעתקה. להעתיק קוד מתשובה ברשת או מכלי בינה מלאכותית זה לגיטימי, ובעבודה אמיתית כולם עושים את זה. אבל בחודש הראשון, אם העתקתם — הקלידו מחדש ביד, ושנו משהו אחד כדי לבדוק שהבנתם. קוד שעובד ואתם לא מבינים למה, הוא קוד שלא תדעו לתקן.
מלכודת השפה הבאה. אחרי שבועיים מישהו יספר לכם ששפה אחרת "הרבה יותר טובה". אולי זה נכון לצרכים שלו. החליפו שפה רק אם המטרה שלכם השתנתה, לא כי שמעתם המלצה.
ואחרי החודש הראשון?
אם הגעתם לסוף השבוע הרביעי עם פרויקט גמור, אתם במקום טוב. השלב הבא תלוי במטרה שכתבתם בהתחלה. לנתונים: מה זה SQL. לאוטומציה: פקודות לינוקס בסיסיות ועבודה עם API. ולכל מטרה שהיא, כדאי להתחיל לשמור את הקוד ב־Git כבר עכשיו, לפני שמגיע היום שבו תרצו לחזור לגרסה של אתמול. Git למתחילים הוא המקום להתחיל בו.
ואם בסוף החודש הבנתם שזה לא בשבילכם — גם זו תשובה טובה, שעלתה לכם חודש ולא שנה. מי שנשאר יגלה שהחודש השני קל יותר מהראשון, והשלישי קל יותר מהשני. לא כי החומר נעשה פשוט יותר, אלא כי הודעות השגיאה מפסיקות להפחיד.


