אני לא מכיר מתכנת שלא שאל את עצמו איך אני יכול להיות טוב יותר? איך אוכל לכתוב קוד טוב יותר? איך לעבוד מהר יותר? גם אני שאלתי את השאלות הללו, והאמת היא שיש מגוון רחב של תשובות שונות לשאלות הללו. בפוסט זה אדבר על שלושה הרגלים שכל מתכנת צריך שיהיו לו, בתקווה שהם יעזרו לכולם להתקדם הלאה:
כתיבת הערות
אני חושב שלא משנה כמה שאני אדגיש את החשיבות של כתיבת הערות, אני לא באמת אצליח עדיין להגיע לרמת החשיבות שלה. כתיבת הערות מאפשר לנו לתעד דברים שעשינו. להסביר החלטות שלקחנו במהלך כתיבת הקוד ולהישאר מסודרים. אני יודע שללא מעט מכם זה עדיין נשמע עניין מינורי, אבל באמת שזה עניין חשוב. חושבים שזה לא קריטי? מוזמנים לראות מה קורה כשלא כותבים הערות על הקוד שלנו.
לפתור בעיות חלק אחר חלק
אז אתם מגיעים לפרויקט חדש, כולכם נלהבים, ואז פתאום אתם מגלים מה שהפרויקט הזה דורש ואתם אחוזים אימה, מנסים להכיל את כל מה שאתם אמורים להצליח לבנות, בייחוד אם מדובר בטכנולוגיה חדשה או שפה חדשה שעוד לא הכרתם עד כה.
תלמדו לקחת את הבעיה הגדולה, את המשימה הגדולה שעומדת לפניכם ולפרק אותה לחלקים. זוהי מיומנות שלדעתי חשוב מאוד לשלוט בה גם מחוץ לעולם התכנות.
אשתף כאן דוגמא אישית שלי: עד כה עסקתי רק בתחום צד הלקוח. מעולם לא נגעתי בצד שרת, עד הפרויקט העכשווי שעליו אני עובד. אחד מהאלמנטים שיש בפרויקט הזה הוא מערכת הרשמה, וזהו רק אלמנט אחד מתוך המון אלמנטים שונים אחרים שהייתי צריך לבנות בצד השרת, ואת כל זה הייתי צריך לעשות בשפת php, שמעולם לא תכנתתי בה.
בהתחלה באמת הסתכלתי על כל הפרויקט ואמרתי לעצמי "אוקי, איך לעזאזל אני שורד את זה עכשיו ועושה במקביל גם את צד הלקוח". התחלתי לפרק את המשימה הגדולה שלי לחלקים קטנים. בחלק של צד השרת יש כמה אלמנטים שונים? אז אני מתרכז כרגע רק באחד מהם, ואז אותו אני מפרק לכמה משימות קטנות משלו, וכן הלאה. לאחר שאני מסיים את החלק הקטן, אני עושה 'זום אאוט' ומסתכל ממבט רחוק יותר כדי לראות איך מה שעשיתי עד כה משתלב בפרויקט הכללי, ואז אני ממשיך לחלק הבא.
זה די דומה לאדם ששוחה מתחת למים, ואז עולה אחרי כמה זמן כדי לשאוף אוויר צלול ואז ממשיך לשחות הלאה. תפרקו בעיות לחלקים, ותתחילו להיות מאושרים יותר.
לתכנת כל יום
זהו הגביע הקדוש. המשוואה פה היא מאוד פשוטה, ולאו דווקא לתכנות. ככל שאתם עושים משהו יותר ככה אתם נהיים בו טובים יותר. רוצים לתכנת טוב יותר? הדרך הכי טובה להגיע ליעד הזה היא לתכנת. לא לקרוא עוד מדריך, לא לצפות בעוד סרטון, הם דברים שיוכלו להעשיר לכם את הידע שישמש אתכם בהמשך הדרך, אבל מה שבאמת יעיף אתכם לשלב הבא זה לתכנת. רק ככה מפתחים מיומנות.
ההמלצה האישית שלי היא שתפתחו פרויקט קטן משלכם ותעבדו עליו באופן קבוע. תשקיעו בו קצת כל יום. זה לא חייב להיות משהו מקורי, יש המון רעיונות לפרויקטים באינטרנט שיכולים להוות מקור השראה מצויין. קחו פרויקט ותעבדו עליו, תנסו לתת לזה לפחות שבוע רצוף. התוצאות שתקבלו יכולות להדהים אתכם.
ולסיכום
עולם התכנות הוא עולם מדהים שתמיד יש לאן להתקם בו. שלושת ההרגלים שהצגתי הם רק חלק מהמון דברים אחרים שאפשר לעשות כדי להתקדם ולהיות טובים יותר בעולם הזה. מבין כל ההרגלים שרשמתי למעלה, האחד שהיה לי הכי קשה היה להצליח לתכנת כל יום רצוף בזמני הפנוי במשך שלושים יום. אך לאחר שהצלחתי לעמוד בזה, התכנות שלי עלה רמה אחת אם לא כמה רמות למעלה, ואני יכול רק לאחל לכם את אותו הדבר.
יש לכם הרגלים משלכם או הצעות שיכולות לעזור למתכנתים להיות טובים יותר? אשמח אם תשתפו את כולנו כאן.
מצטער להגיד אבל נסיון של צד לקוח בלבד,
לא ממש נחשב כמתכנת.
הצד לקוח גורם לכתוב עם כל כך הרבה טעויות.
תלמד קצת Server side, Design Patterns, Clean code
ובוא נדבר עוד כמה שנים.
אני חייב לציין שאני לא מסכים עם הנקודה הזאת. היום כשעולם ה javascript כל כך מתקדם והוא מגיע גם ל server side אני לא רואה שום סיבה לא להחשיב את מי שמתכנת ב javascript כמתכנת. מלבד זאת, תחום פיתוח צד הלקוח הוא כל כך מבוקש היום בעולם התכנות והפיתוח, שלהגיע ולהגיד שזה לא נחשב תכנות קצת לא ממש הגיוני.
בכל מקרה, מעריך את זה שהקדשת מזמנך להגיב. המשך ערב נעים 🙂
כתבה מעולה
תודה רבה גיא 🙂