programming languages

איך *באמת* לומדים תכנות

קיימות הרבה שיטות ללימוד תכנות בצורה מובנית ומסודרת:

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

אבל האמת המרה היא שאף אחת מהשיטות הללו לא באמת תלמד אתכם תכנות.

למה הכוונה?

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

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

לדעתי התקווה ללמוד תכנות במהירות ובקלות שקולה לתקווה שלאחר כמה שיעורים בלימוד שפה זרה נוכל לדבר אותה באופן שוטף.

אך רגע לפני שאתם מתבאסים ומוותרים על החלום – בואו נגלה איך באמת לומדים תכנות.

ניסיון == כישרון

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

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

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

הדרך הנכונה ללמוד תכנות

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

כלל ראשון – תכנתו בשעות הפנאי

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

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

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

כלל שני – כל השאר הם רק עזרים

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

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


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

ומה אם אני לא יודע/ת איך להתחיל?

טוב ששאלתם. פשוט חפשו בגוגל את שם השפה אותה אתם רוצים ללמוד ולאחר מכן את המילה tutorial. מיד תקבלו רשימה של מדריכים למתחילים שיעזרו לכם לעשות את צעדיכם הראשונים. הנה כמה tutorials שנראו לי טובים:

כתיבת תגובה

האימייל לא יוצג באתר. (*) שדות חובה מסומנים