MeCoder הכניסה לעולם התכנות


איך ללמוד תכנות ב-2018

A book and glasses

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

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

שלב א׳ - האם אני רוצה להיות מתכנת?

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

שלב ב׳ - קורס עיקרי

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

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

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

אז מה מכיל הקורס?

הוא מתחיל בהסבר כללי לגבי מהו האינטרנט וכיצד הוא נוצר, ורק אז הוא מתחיל ללמד שפות תכנות. זה חידוש מרענן ומעולה בעיקר לאנשים כמוני, שלא עשו תואר במדעי המחשב, שמכניס את החומר להקשר הנכון.
את ארבעת הפרקים שלאחר מכן הוא מקדיש ללימוד של HTML ו-CSS, פרקים שכוללים גם מבחנים קצרים ובניית מיני-פרויקטים שעוזרים להטמיע את הידע שרכשתם.
לאחר מכן המרצה מקדיש פרק של 20 דקות כדי לדבר על הקריירה שלכם כמתכנתים, ובסיומו עובר לשלושה פרקים שמתמקדים בשפת התכנות Javascript אשר למעשה רק היא מהווה שפת תכנות פר-אקסלנס עד כה (HTML ו-CSS מוגדרות כשפות markup). אלו פרקים אינטנסיביים וארוכים שמהווים כ-25% מהקורס, ובצדק.
בנקודה זו מגיעה אחת הסיבות שבגללן אני כל כך אוהב את הקורס הזה: המרצה מתמקד בכלים בהם אנו משתמשים כמפתחים. כלים שכמעט ואין אליהם התייחסות בקורסים אחרים למרות שמתכנתים עושים בהם שימוש כל הזמן, וכשאני אומר ״כל הזמן״ אני מתכוון ממש כך. זה מתחיל בתוכנה בעזרתה אתם כותבים את הקוד, ממשיך בכלים בעזרתם מנהלים פרויקטים גדולים של קוד וכלה בטרמינל שהוא הדרך שלכם כמתכנתים לעבוד מול מערכת ההפעלה של המחשב.
מכאן עוברים לפרק ארוך על React. מי מכם שקרא את המאמרים הקודמים שלי יודע שאני ממליץ מאוד להתמקצע בספרייה הזאת, שהשימוש בה רק הולך וגדל בעולם וכך גם הביקוש למתכנתים עם ידע בה. לשמחתי גם המרצה חושב כמוני :-)
את החלק האחרון בקורס מקדיש המרצה ללימוד בסיסי של צד-השרת ובסיסי נתונים.

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

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

שלב ג׳ - הרחבת הבסיס - קריאת W3SCHOOLS (אופציונלי)

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

שלב ד׳ - שיפור יכולות - תרגול ב-CodeWars

אם בשלב הקודם התמקדתי ב-HTML ו-CSS אז עכשיו הזמן להרחיב את הידע ב-Javascript.
האתר הזה מציג לכם תרגילי קוד, מעין חידות קטנות, אשר לוקח כשעה עד מספר שעות לפתור כל אחת. לעיתים נתקעים יותר וזה גם בסדר. לאחר שפתרתם את התרגיל אתם יכולים לראות כיצד אחרים פתרו את אותו התרגיל וללמוד מכך המון.
אני התמקדתי בכל מה שקשור במערכים (arrays) ואובייקטים אבל אתם יכולים לבחור כל נושא שתרצו, כל עוד אתם מרגישים שאתם מוכנים אליו מבחינת הידע שלכם.
לאתר הזה אף הקדשתי מאמר שלם בבלוג.

שלב ה׳ - בניית תיק עבודות

זהו! הלימודים הרשמיים הסתיימו והלימודים הבלתי רשמיים מתחילים.
בשלב זה כדאי לכם להתמקד בבניית פרויקטים משלכם, כאלה שתוכלו להציג למעסיקים פוטנציאליים. זה יכול להיות משחק זיכרון עם עיצוב מרשים, אתר להצגת סרטים עם דירוגים והמלצות או ״בת-מצווש״ - אתר קטלוגי לבת מצווה (זה מה שאני בניתי כשלמדתי תכנות…). אם אין לכם רעיון מוצלח תיכנסו לקבוצת הפייסבוק כיתת הלימוד של MeCoder והעזרו באחרים כמותכם.

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

מה עכשיו?

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

  • Advanced Javascript - קורס נדיר על ידי אחד המרצים האהובים עליי - קייל סימפסון.
  • הספר The Pragmatic Programmer מהווה ספר מעולה בעיני למתחילים+
  • הספר Clean Code הוא אחד מספרי התכנות הכי נמכרים עד היום, ובצדק.