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


איך להתאמן בתכנות באינטרנט?

codewars logo

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

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

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

שימו לב שב-CodeWars אפשר לתרגל במגוון שפות קוד כגון Ruby, Java, Python, .Net וכמובן היהלום שבכתר שלנו – Javascript.

אז איך לומדים לתכנת מכל זה? באתר הזה אני מחלק את שלבי לימוד הקוד לשלושה:

  1. קודם כל אתם מנסים לפתור את הבעיה. בשלב הזה גם פתרון של הבעיה בצורה מאוד לא יעילה עם שורות קוד ארוכות, ומשתנים עם שמות לא ברורים, הוא עדיין פתרון של הבעיה. כחלק מפתרון הבעיה תוכלו להיעזר בכלי בדיקת קוד, לצערי זהו כלי שנתקלתי בו לראשונה באתר זה ולאחר מכן נתקלתי בו שוב במסגרת לימוד C#, אבל זהו נדבך חשוב ומתפתח מאוד גם בשפת Javascript. מההתנסות שלי עם השלב הזה אני מודה שלפני שהתחלתי לתרגל, פיספסתי לא מעט מקרי קיצון, בהם הקוד שכתבתי היה "נופל" ויוצר באג. ברגע שאתה מתחיל לעבוד עם כלי בדיקת קוד, כחלק מתהליך כתיבת קוד הבדיקה אתה חושב על כל מיני מקרי קיצון, ובכך מונע באגים רבים.
  2. לאחר שתפתרו את ה-kata תצטרכו להעלות אותה כך שתהיה חשופה בפני כל המשתמשים. בשלב זה תוכלו להשקיע מחשבה על איך לשפר את הקוד שלכם וגם תוכלו לכתוב הסבר על הדרך שלכם לפתרון הבעיה. בתהליך הזה מומלץ לחפש באינטרנט אחר פתרונות טובים יותר לחלקים מסוימים בפתרון שלכם. לדוגמא: פונקציה שכתבתי על מנת לסדר מערך בסדר עולה תגלו שהרבה יותר נכון ופשוט להשתמש ב-sort שהוא פונקציה של ה-prototype מסוג Array.
  3. פתרתם את ה-kata. עכשיו זה הזמן לראות את הפתרונות שהעלו מתכנתים אחרים. אני מבטיח לכם שתראו פתרונות רבים שכתובים שונה משלכם, חלקם מכילים פונקציות שלא הכרתם עד כה, חלקם בנויים לוגית בצורה שלא תיארתם לעצמכם עד כה. קחו את הזמן, תסתכלו, תבחנו, כל דבר שלא תבינו – תתעמקו, תגגלו. אתם תלמדו הרבה.

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

    example of Kata solutions

אז איך מתחילים?

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

תהנו!