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