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


תובנות של מתכנת שלמד בעצמו

Moshe Shababo riding on a horse

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

אם כך, מי שמבקש להיכנס לתחום ועם זאת לפסוח על האקדמיה, עליו לתת את דעתו לנושאים הבאים:

  1. כיצד מקבלים זימון לראיון עבודה, ללא ניסיון?
  2. כיצד עוברים ראיון עבודה בחברה רצינית, בהן ראיונות העבודה לרוב כולל שאלות תיאורטיות, שנלמדות טוב יותר במסגרת של תואר אקדמאי?
  3. כיצד לא הופכים למתכנתים נחותים (code monkeys), שעושים עבודה משעממת, מרוויחים מעט יותר מכולם, וניתן להיפטר מהם בקלות בכל רגע נתון?
  4. כיצד גורמים לסוס להמשיך לסחוב לאורך שנים, או לפחות לא לפני שנרצה בכך?

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

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

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

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

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

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

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

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

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

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

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

לדוגמא: 2 מתכנתים יכולים לטעון שהם יודעים את השפה X, ואמת בפיהם, שכן עבדו בה במשך שנתיים. בפועל, הבדלי הידע והניסיון שלהם יכולים להיות גדולים מאוד - דבר שנקבע הרבה בגלל החברה בה הם עבדו, המשימות אותם קיבלו, ההשקעה האישית שלהם וכו'. אך בפועל, גם בקרב המתכנת הנחות הדרך פתוחה - הוא יכול להשלים ידע וניסיון באופן עצמאי, ולהפציץ בראיונות עבודה לא פחות טוב מהאחר - שכן זה לא שהוא היה שייך למקצוע שהוא באופן מובהק נחות יותר, אלה שההבדלים היו בפרטים קטנים ונסתרים שניתנים לגישור, ולכל הפחות כנראה שלא למנוע הזמנה לראיון עבודה (מה גם שהפרטים האלה לרוב נסתרים מאשת ה-HR). אף אחד לא באמת יודע מה כל אחד עשה במקום העבודה הקודם - אפשר לכל היותר לבדוק מה הוא יודע ויכול לעשות כעת.

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

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

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

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

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

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

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

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

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

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

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

בהצלחה!