מפתח תוכנה או בקצרה מתכנת או תוכניתן אני מגדיר כמי שעוסק עיסוק משמעותי בפיתוח תוכנה או שלפחות תרם תרומת קוד קהילתית משמעותית כגון קוד מקור פתוח וחופשי לשימוש במאגר קוד נתון (לדוגמה, GitHub).
חלק ניכר מעבודת מפתח התוכנה הוא קידוד בשפת התנהגות ליצירת התנהגות רצויה של תוכנה.
ידע נדרש לעיסוק תכוף בפיתוח תוכנה
מפתח תוכנה רכש ידע נרחב בלוגיקה פורמלית ובקידוד קוד בשפת התנהגות אחת או יותר והוא בדרך כלל בקיא גם בשפות מחשב שונות (שאינן מוגדרות ככלל כשפת התנהגות) וגם כן משמשות לפיתוח תוכנה כגון שפת מבנה (כמו HTML) ושפת עיצוב (כמו CSS) לצד שפת התנהגות עיקרית (כמו PHP).
מניסיוני, כלל מפתחי התוכנה בקיאים בשתי שפות התנהגות לפחות, אפשר שבאחת באופן עיקרי ובשנייה באופן משני; לעתים שפות אלה דומות ומהוות לכאורה "ניבים" של אותה שפה כמו עם ספריית קוד או פריימוורק.
אדם יכול לרכוש ידע זה בלימודי פיתוח תוכנה, יהיו לימודים אלה בלתי פורמליים (דרך קריאת ספרות ותרגול בתחום) או פורמליים (כמו במסגרת לימודי תעודה בכלל ועם מכללה אינטרנטית בפרט);
ידיעותיו ויכולתיו של מפתח תוכנה נמדדות לא בעקבות סוג הלימודים אלא למשל על ידי תוכנות שהוא קידד וחולק קוד מקור שלהן במאגר קוד נתון (כגון GitHub) ובמקרה של התמנות כעובד שכיר גם בראיון או בחינה מעשית ממפתח תוכנה מנוסה אשר מתרשם מבקיאותו בשפות מחשב (ובעיקר שפות התנהגות) עימן הוא עובד, וכדומה.
תארים מקצועיים נפוצים בקרב מפתחי תוכנה (סוגים של מתכנתים)
לדעתי חלוקה סבירה של סוגי מפתחי תוכנה תכלול:
- סיס אדמין: מנהל סביבה (מערכת הפעלה) עם ידע וניסיון בעיקר ביצירת תוכנות קצרות, לרוב סקריפטים של דף בודד בשפת תפעול-התנהגות כגון שפת Bash.
- סרבר אדמין: סיס אדמין המתמחה בהקמה ותפעול סביבות תוכנה המורכבות מתוכנות שרת ותוכנות מקיפות להן.
- סקריפטר: איש מחשוב עם ידע וניסיון בעיקר ביצירת תוכנות קצרות, לרוב סקריפטים של דף בודד בשפת תפעול-התנהגות כגון Bash ו\או בשפות התנהגות כגון שפת JavaScript.
- מפתח תוכנה מומחה ווב: מניסיוני מונח זה מתאר לרוב מפתח תוכנה שבאופן כללי איננו מתעסק עם שפות תפעול-התנהגות של סביבת מערכת הפעלה ומפתח התנהגות אפליקציות ווב בשכבות גבוהות יותר משכבת מערכת ההפעלה כגון עם שפת PHP ועוד לרוב תוך שימוש בסטאק הווב ← שפת HTML, שפת JavaScript ושפת CSS ולעתים גם שפות נוספות.
- אלגוריתמאי: מומחה פיתוח התנהגות ובעיקר אוטומציה בדגש על מערכות מכניות (כגון רובוטים); שפות נפוצות הן למשל C/Java/C#/Python.
הגדרה אישית
אדם בעל ידע מעשי בתכנות אולי כלל לא יגדיר עצמו "מפתח תוכנה" או "מתכנת", אלא כ"חובב תכנות" בהתאם להגדרתו האישית לכל מונח.
תומכי IT
חלק מתומכי ה IT (ספקי תמיכה טכנית בתחום ה IT) הם מפתחי תוכנה זוטרים או סקריפטרים כלליים והם בעלי ידע במגוון שפות מחשב כגון Markdown ומנוסים משמעותית בכתיבת דוקומנטציה.
מפתח תוכנה לעומת הנדסאי תוכנה
המונחים "מפתח תוכנה" ו"הנדסאי תוכנה" חופפים בדרך כלל; המונח "מהנדס תוכנה" (כמו גם אלגוריתמאי) מתאר לעתים מפתח תוכנה מנוסה מאד; למשל בעל שנתיים ומעלה של עבודה רצופה בפיתוח תוכנה לאחר לימודים ותרגול מצטברים של בערך חמש שנים ובאופן כללי גם רקע של תואר אקדמי ראשון במדעי מחשב או פיזיקה או הנדסת חשמל או מתמטיקה, אם כי אין הכרח לכך והדבר תלוי באיך מגדירים את הביטויים "מהנדס" ו"מהנדס תוכנה".
מתכנת ווב
מתכנת ווב אני מגדיר כמפתח תוכנה (מתכנת) היכול לפתח אפליקציות אינטרנט מסוג אפליקציית ווב (אתר ווב).
מבחינת עבודה עם שפות מחשב, מתכנת ווב עובד בעיקר עם סטאק הווב, לצורך זה. סטאק הווב בגישה מצומצמת פירושו HTML-CSS-JavaScript.
דבאופ
החל משנת 2010 בערך, הלך ונעשה נפוץ מונח הדבאופ; בשנת 2020 עלה הביקוש מאד לדבאופים בתעשייה. דבאופ הוא מתכנת בעל יכולת נרחבת בפיתוח אפליקציות אינטרנט בכלל ואפליקציות ווב (אתרי ווב) בפרט אך כזה שגם יש לו ידע נרחב ב operating system shell כמו שפת Bash וכלים להבטחת סטנדרטיזציה עימה (כמו Ansible ו Docker).