קוד מקור

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

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

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

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

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

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

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

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

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

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

השאר תגובה

Please enter your comment!
Please enter your name here