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