יום שבת, 15 באוקטובר 2011

עבודה בארגון

אחד הדברים שהאתר (http://enterprise-js.com/) הזה הזכיר לי בעבודה בארגון הוא היכולת של מתכנתים לכתוב קוד, לפעמים מורכב, ללא הבנה לעומק של הקוד.
הדבר המדהים הוא, שרואים את הגרעין של האמת מוסתר מאחורי שכבות של חוסר הבנה, בהערות הקטנות שנכתבות ליד, בקופי-פייסטים, זה לגמרי שם.
ובכל זאת, דורות של מתכנתים משקיעים את זמנם בקופי-פייסט של פרוסות קוד, ולפעמים לא שמים לב שכשבטעות משנים אות אחת אז כל המבנה יורד לטמיון.

לדוגמא הקוד הזה (שעובד גם בשפות שאינן JavaScript):


1 for (var i = 0; i < items.length; i++) {
2     if (items[i] === 'polyfill') {
3         return items[i];
4         break;
5     }
6 }
7 


למישהו שם מתישהו היה רעיון ש return לא יוצא מלולאה. מפה והלאה לא יעזור כלום, אחרי כל return שים break ליתר ביטחון.
בתכנות (או בכל מקצוע אחר), אסור לקבל "ככה זה" כתשובה. אם מישהו אצלכם כופה נהלים טפשיים - צאו, שנו אותם.

יום חמישי, 13 באוקטובר 2011

היזון חוזר

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

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

הנה כמה דרכים לקבל היזון חוזר על העבודה

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

הקוד עובר Testing: בשלב מסוים של החיים המקצועיים ייתכן ונחשפתם לרעיון של Unit Testing. במרבית המקרים לא ניתן בריצה בודדת לנסות את כל אופני השימוש בקוד. בדיקות יחידה הם כלי לבדיקת מסלולי קוד רבים ולראות באיזה מקרה קצה פישלנו. החוכמה כאן היא לכתוב את הבדיקות הנכונות.

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

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

יום שני, 10 באוקטובר 2011

חומרי הדרכה

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

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

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

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

ואם תהיתם מה היה הקורס ... http://ynonperek.com/node/96