אילו מהנדסי תוכנה אתם? אם אתם עושים את הצעדים הראשונים שלכם בתור מתכנתים אתם בטח מתלבטים לאיזה כיוון ללכת – איזו שפת תכנות כדאי ללמוד? באילו טכנלוגיות להתמקד?
במאמר הזה אערוך סקירה קצרה של 14 סוגים שונים של מהנדסי תוכנה. מטרת המאמר היא לעזור לכם להכיר את התעשייה קצת יותר טוב, כדי שתוכלו לבחור כיוון שמתאים לכם בתוך עולם הפיתוח.
הנדסת תוכנה היא תחום רחב המחולק לכמה תתי-תחומים.
בגדול, מה שמבדיל בין מהנדסי תוכנה שונים הוא ההתמחות שלהם. האם הם מפתחים אתר אינטרנט? אפיליקציה? אולי בכלל אוטומציה של בדיקות?
עבור כל תפקיד נדרשות מיומנויות שונות – קודם כל, כישורים טכניים כמו הבנה של שפות תכנות, בסיסי נתונים או פריימוורקס. אבל בנוסף גם מיומנויות "רכות" שאינן בלעדיות לתפקיד של מהנדסי תוכנה.
לצפייה בסרטון – סקירת 14 תפקידי פיתוח תוכנה בהייטק
14 סוגים של מהנדסי תוכנה
'מהנדס תוכנה' זה שם די רחב שלא באמת מסביר הרבה. לכן, בחלק זה ננסה להבין מה כל אחד מהתפקידים אומר, ואילו כישורים עיקריים נדרשים כדי לעבוד בכל תפקיד.
#1 – פרונט אנד – Front End
מפתחי פרונט אנד אחראיים על בניית ממשק המשתמש הגרפי. במילים אחרות, על הנראות החיצונית של אתר או אפליקציה.
שפות נפוצות לפיתוח פרונט אנד: HTML, CSS, Javascript, React, React Native, Vue, angularJS
לצפייה בסרטון – מה זה פרונט אנד ולמי זה מתאים?
פרטים על קורס תכנות? + מתנה
הרשמו לקבל מידע על תנאי קבלה, מועד פתיחה, ותנאי תשלום וקבלו מאיתנו שבועיים חינם לקורס תכנות אונליין של קודבוקס*
#2 – בק אנד – Back End
מפתחי בק-אנד אחראיים על בנייה, תיחזוק ואבטחה של השרתים וגם על ממשק הלקוח-שרת.
שפות עיקריות שרלוונטיות למפתחי בק אנד: php, python, ruby, java, .NET, javascript. מעבר לכך, מהנדסי בק אנד נדרשים להבנה טובה במאגרי נתונים (דאטה-בייסים)
#3 – מהנדס QA
מהנדס Quality Assurance אחראי על תהליך הבקרה והאיכות של התוכנה. תחומי האחריות של מהנדסי QA כוללים כתיבה, תכנון וביצוע אנאליזה של טסטים אוטומטים.
השפות העיקריות שמהנדסי QA נעזרים בהן: Python, C++, JS, Java, C#, Dart
#4 – פולסטאק – Full Stack
מתכנת פול סטאק (או ג׳נראליסט) הוא מהנדס תוכנה שעושה קצת מהכל. זאת אומרת – מישהו שמכיר גם את הבקאנד, גם את הפרונט, מבין בדאטה, בפייפלינים (Pipelines), מיקרוסרביסים ועוד.
שפות נפוצות למפתחי פולסטאק: Go, python, php (Hack), Javascript, Java, C++, R
לקריאה נוספת: 7 קורסי Full Stack מומלצים לכניסה לתעשייה >>
#5 – מהנדס דאטה – Data Engineer
מהנדס דאטה בונה תשתיות לאיחסון הדאטה ואחראי על פייפלינים (Pipelines) שמזרימים מידע מטבלאות המקור ועד למשתמש.
השפות הנפוצות למהנדסי דאטה: Python, SQL/Presto. ומעבר לכך הם נדרשים להיכרות מעמיקה עם DBs (מאגרי נתונים).
#6 – דבופס – DevOps
מהנדסי DevOps בונים כלים שישמשו מפתחים אחרים. הכלים האלה עוזרים לייעל את סביבת הפיתוח ולמנוע כניסה של באגים לקוד. דבאופס גם אחראי על בנייה ותיחזוק של תשתית דחיפת הקוד.
שפות נפוצות למפתחי דבאופס: Python, JS, Ruby, perl, Go. ומעבר לשפות תכנות, אנשי דבאופס עובדים הרבה עם שרתי ענן, Databasesים, תיחזוק תהליך ה- Source Control ועוד.
לצפייה בסרטון – מה זה DevOps ולמי מתאים לעבוד בזה?
פרטים על קורס תכנות? + מתנה
הרשמו לקבל מידע על תנאי קבלה, מועד פתיחה, ותנאי תשלום וקבלו מאיתנו שבועיים חינם לקורס תכנות אונליין של קודבוקס*
#7 – מהנדס מערכות לומדות – ML Engineer
מהנדס מערכות לומדות, או Machine Learning Engineer בונה מודלים של למידת מכונה ובינה מלאכותית, ומבצע אנליזות כדי לזהות תבניות בדאטה.
הכישורים העיקריים שנדרשים לתפקיד הזה הם יכולת אלגוריתמיקה חזקה, וניסיון רחב בתעשייה או באקדמיה. בדר"כ מדובר בתפקיד לאנשים די מנוסים.
#8 – מפתח אפליקציות
בדיוק כמו שזה נשמע – מפתח אפליקציות הוא מתכנת שמפתח יישומם לאנדרויד ולאייפון
שפות עיקריות לפיתוח אפליקציות: Java (Android Native), Object C, Swift, C#, React Native, Kotlin,
#9 – מהנדס פרודאקשן – Production Engineer
מהנדס Production מתחזק אפליקציות שקשורות בתשתית, בסיסטמים, ובשירותים שמאפשרים למוצר לפעול ולהיות נגיש למשתמשים 24 שעות ביממה.
שפות עיקריות שמהנדסי פרודאקשן משתמשים בהן: php, Python, C++, Java
#10 – מהנדס וריפיקציה – Design Verification
מהנדס וריפיקציה (או Design Verification) אחראי לבניית תשתית של ניסויים כדי לבדוק ולאמת את איכות החומרה. דוגמה טובה לסוג עבודה כזאת היא מעגלים משולבים למשל.
השפות העיקריות של מהנדסי וריפיקציה: Verilog, C, C++, Python, Perl, Shell Scripting
#11 – מהנדס Enterprise Systems
מהנדס Enterprise Systems אחראי על תשתית התוכנה (לרוב בלינוקס), וגם על אפליקציות התיקשור בין העובדים, ועל סביבת העבודה.
כישורים עיקריים של מהנדסי אנטרפרייז כוללים: Linux, Apache, Oracle, Squid, MySQL, NFS, DHCP, SSH, DNS, SNMP, Ruby, php.
#12 – מהנדס אמבדד – Embedded Engineer
מפתח תוכנות עבור מערכות אמבדד – שהם מערכות שמשלבות חומרה, זכרון, חיישינים, אלקטרוניקה ועוד. אפשר לחשוב על מהנדס אמבדד כמעין עירבוב של מהנדס תוכנה ומהנדס חשמל. לדוגמה, עבודה טיפוסית של מהנדס אמבדד תעסוק בפיתוח מערכת שכוללת חיישנים אנלוגים ומיקרו-פרוססורים.
טכנולוגיות עיקריות של מהנדסי אמבדד: Rust, Assembly C, C++ ADA וטכנולוגיות כגון ThreadX, Nucleus RTOS
מאמרים נוספים שיכולים לעניין אותך:
#13 – מפתח פירמוור – firmware engineer
אחראי על כתיבת קוד שמפעיל את החומרה. קוד זה נצרב על גבי הצ׳יפ (השבב) ובעצם מתווך בין התוכנה לחומרה.
שפות נפוצות: C/C++
#14 – מפתח אוטומציה
מפתחי אוטומציה בונים תשתיות לכתיבת בדיקות אוטומטיות. זה יכול להיות תשתית משמשת קו ייצור במפעל, וזה יכול להיות תשתית שעליו יושבת ממשק הגרפי של אפליקציה. מפתח אוטומציה צריך היכרות מעמיקה עם ה- API שאיתו הוא מתממשק.
טכנולוגיות נפוצות: Selenium, C, C++
מהנדס תוכנה במטא (לשעבר פייסבוק) שהתחיל לפני כ-4 חודשים לכתוב פוסט יומי בלינקדין על נושאים מגוונים כגון מיתוג עצמי, תארים אקדמים – כדאי או לא?, טיפים לג׳וניורים ועצות לצלוח את ראיונות העבודה.