מהו פיתוח תוכנה?
פיתוח תוכנה בשוק העבודה התחרותי של ימינו הוא תחום מבוקש ומתגמל להפליא.
למעשה, לאחרונה הוכרז במקום הראשון בדירוג העבודות בשוק האמריקאי, בהסתמך על נתוני ביקוש, שביעות רצון משכר, וניתוחי שוק.
המכון לנתוני העבודה האמריקאי אף הכריז שהוא צופה עלייה של 30% בכמות המועסקים בתחום עד שנת 2026.
לצד הביקוש הגבוה למפתחי תוכנה, ניתן לראות פיצול לקשת רחבה של תחומי ההתמחות ספציפיים בהם עוסקים המפתחים.
בנוסף, ככל שכישוריו של המפתח גבוהים יותר מגוון האפשרויות למעבר בין תחומי התמחות גדל.
להלן הוריאציות השונות של פיתוח תוכנה:
פיתוח WEB – תכנות לאינטרנט
הילד המועדף של התחום, מייצג את ההווה והעתיד של התחום.
העוסקים בו אחראים על מגוון האתרים שאתם גולשים בהם בעודכם שותים את הקפה של הבוקר. יש טווח גדול של מורכבויות מאתר
<h1> “Hello World” </h1> פשוט, עד עשרות קבצים שרק המתכנת שכתב אותם ידע לעשות בהם הגיון.
פיתוח WEB הוא ללא ספק מהתחומים החמים תודות להופעתן של טכנולוגיות חדשניות וממשקי תכנות יישומי (API),
אשר נותנים למפתח אפשרות לעשות בקלות שימוש במגוון כמעט אינסופי של שירותים שימושיים.
פיתוח רשת מודרני יכול ליצר בימינו “אפליקציות” שמרגישות כמו אפליקציות מובייל, תודות לכך שהדפדפנים בימינו הם כבר מזמן לא רק שורת חיפוש ואד בלוקר.
מה צריך לדעת?
HTML, Javascript, Django, C/C++, ASP.NET, PHP, Python, Ruby, Rails, React, Vue, Express.
פיתוח אפליקציות
לפני 12 שנים המושג פיתוח אפליקציות, לא היה קיים, היום הוא אחד הענפים החמים ביותר בתחום.
“נכון” יותר לקרוא לפיתוח מובייל “פיתוח אפליקציות”, היות וכרוך למעשה בפיתוח אפליקציות שאמורות לרוץ על מכשיר המובייל למשל IOS או אנדרואיד.
רוב מערכות ההפעלה הפופולריות עושות שימוש בשפת תכנות ייעודית להן, אך עדיין נעשה שימוש בשפות תכנות גנריות יותר.
הוורסטיליות שבפיתוח מובייל מאפשרת פיתוח כל דבר החל מקנדי קראש ועד משחקי קונסולה שלמים במכשיר הסלולר, בכף ידך.
אך פיתוח אפליקציות אינו הנושא היחיד שראוי להתייחסות.
קיים היום מגוון ענק של אפליקציות, אשר נותנות מענה כמעט לכל מה שניתן לחשוב עליו, החל מדברים “סטנדרטיים” כמו למשל מציאת מסעדה לארוחת הצהרים,
או קבלת עדכוני חדשות, ועד הפחות סטנדרטיים כמו אפליקציה שאמורה להזכיר לך לשתות מים לאורך היום, או סתם לבדוק איך היית נראה בתור זומבי.
שפות פיתוח נפוצות לפיתוח אפליקציות מובייל
#Android, Swift (for iOS), Objective C, HTML5, Java, C
Data Science או ביג דאטא
דאטה הוא הזהב החדש. מערכים גדולים של מידע חסרי ערך אלא אם יש מי שידע מה לעשות איתם.
וכאן נכנס לתמונה ה-Data Scientist, ביכולתו למצוא ערך במידע ע”י סינון ה”זהב” שמתחבא בו.
המטרה הינה לזקק תובנות עסקיות שניתן לפעול לפיהן, ה-Data Scientist יכרה ויזקק את הנתונים ע”י מניפולציות על סטים גדולים של מידע תוך שימוש בגישות אנליטיות.
דמיינו ניתוח דטאות, שעושה שימוש פונטציאלית בכמה אשכולות לביצוע החישוב בצורה יעילה, ופיתוח אפליקציה מדעית מתוך הממצאים.
אפליקציות מדעיות שכאלה, מסקרנות בהרבה מאשר ניתן להבין מההסבר הסבוך למעלה.
הן למעשה נותנות תמונה על מה ואיך מחשבים “חושבים”.
מכונות צריכות כמויות גדולות של מידע מהם יוכלו “ללמוד” כיצד לקבל החלטות במצבים מסויימים, עיקר האומנות היא לוודא שהמידע מוצג בצורה שמתאימה לשימוש ביישום של תבונה מלאכותית, זהו עיקר תפקידו של ה Data Scientist.
שפות נפוצות לפיתוח Data Science \ ביג דאטא
C/C++, MATLAB, Python
פיתוח אפליקטיבי לדסקטופ
זו דרך הפיתוח ה”מקורית” ממנה הכל התחיל.
אלו אפליקציות “סטנדרטיות” אשר מבצעות את המשימות שלהן על מערכות הפעלה מסורתיות דוגמת Windows, Mac, or Linux.
הרבה פעמים מגדירים אפליקציות שכאלה מכונות בד”כ “תוכנות”, והן רצות לפי צרכי הלקוח, בדרך כלל ממשק המשתמש נבנה בהתאם למערכת ההפעלה שעליה רץ הקוד.
שפות נפוצות לפיתוח אפליקטיבי לדסקטופ
Java, VB.NET, C/C++,C#, Python.
פיתוח בק-אנד \ Back End
בק אנד הוא העבודה שמושקעת מאחורי הקלעים כדי לוודא שהממשק לא יכביד על המחשב של הלקוח למשל ע”י ביצועם של החישובים הכבדים יותר בשרת.
הבק-אנד או צד השרת של אתר הוא השכבה שבה כל המידע נשמר, ובדרך כלל מכיל 3 חלקים לפחות, שרת, אפליקציה, ומסד נתונים.
מפתחי בק-אנד חייבים להבין את הדינמיקה שעומדת מאחורי מסדי נתונים, בנוסף נדרשים לידע בשפות וארכיטקטורת שרת. אם אפליקציה מתרסקת, איטית או זורקת שגיאות, סביר מאוד להניח שזו בעיית בק-אנד.
ניהול מסד הנתונים מהווה חלק ארי מתפקידו של מפתח הבק-אנד.
מסדי נתונים בדרך נמצאים בעמוד השדרה של כל מערכת שמחזיקה כמויות גדולות של מידע. חשוב להבין שבחברות ענק כמו פייסבוק, יש צורך לאחסן לעיתים ביליונים של רשומות (למשל טבלת הלקוחות).
שפות נפוצות לפיתוח בק אנד \ Back End
Python, Java, C and C++, mySQL Database, Oracle Databases
פיתוח כלים למפתחים
תחום זה אמנם מוכוון לקהל יעד מצוצמם, אך קריטי לתעשיית פיתוח התוכנה, היות ומעמיד לרשות המפתח כלי בניין בהם יכולים קהל המתכנתים לבצע בדיקות לקוד שלהם ע”מ לוודא את איכותו.
מעבר לטסטים, כלי למפתחים משמשים לשמירה על סטנדרטים לכתיבת קוד, ע”מ לוודא קוד איכותי שניתן לתחזוק בעתיד.
פיתוח תוכנות לבדיקות (בין היתר) אינה משימה קלה, אבל ענקי תוכנה כמו מייקרוסופט וגוגל מעסיקים מפתחי תוכנה רבים ע”מ לפתח תוכנות שכל תפקידן הוא לבצע בדיקות בתוכנות אחרות.
שפות פיתוח נפוצות לפיתוח כלים
Java, Python, C++
פיתוח ממשק תכנות יישומים \ פיתוח API
פיתוח ממשק תכנות יישומים, זו האומנות של פיתוח מורכב. הפיתוח נעשה בד”כ בצורה של חתיכות פאזל, ומיועדות לרוץ על מגוון רחב של פלטפורמות, מחשב אישי, מובייל, ו- Web.
בצורה זו מפתחים צד ג’ יכולים לבצע אינטראקציות עם כלים או פונקציות שה-API מציע. פיתוח ממשקי תכנות יישומים נשען על מספר יסודות, כמו standard procedures, types, כלים, מתודות GUI, וחוקי גישה למסדי נתונים אשר מתכנתים שעושים שימוש בו יוכלו לשלב בתוך האפליקציה שהם מפתחים.
הטכנולוגיות הנדרשות הן ספציפיות לכל API, לכל אימפלמנטציה תהיה פלטפורמה, אתר, מכשיר, או שירות בהתאם לפי התכנון שלה.
פיתוח מערכת משובצת מחשב \ Embedded System \ IOT
עם העלייה של “אינטרנט של דברים” (IOT) ופחות או יותר כל החפצים בבית פרט לכיור מחוברים לאינטרנט, פיתוח מערכת משובצת מחשב נמצאת בעליה מתמדת.
סוג זה של פיתוח דורש כישורי קידוד במערכות ספציפיות בהתאם לכל רכיב כמו Raspberry Pi’s, Arduinos, Beaglebones ועוד.
שפות נפוצות בפיתוח מערכות משובצות מחשב
Embedded C, Assembler, Python, Arduino (an embedded C derivative), Java
פיתוח תוכנות אבטחה \ אבטחת מידע
ידוע גם בשם “האקינג” מלשון “האקר”.
ואתם בטח שואלים את עצמכם, “עד כמה זה באמת צורת פיתוח?”.
ובכן בוודאות כן.
יתרה מכך, זוהי אפילו צורת פיתוח קריטית ומבוקשת בימינו.
בדיקות חדירות (מבוצע על ידי האקר “כובע לבן” – כלומר עובד של החברה שמתחזה להאקר זדוני) ויועצי אבטחת סייבר עובדים יחדיו על מנת להבטיח את טובת החברה שמעסיקה אותם והמידע שבידיה.
צוות אבטחת התוכנה או צוות אבטחת הסייבר מפתחים אפליקציות המשמשות לשמירה על שלמות מידע רגיש על לקוחות שעשוי להיות בידי החברה ולמנוע את גניבתו.
אחת הדרכים להשיג זאת היא ע”י ביצוע בדיקות חדירות, במסגרתם המתכנת מנסה לפרוץ את המערכת, בתקווה לחשוף נקודות תורפה בקוד, ולשפרם בהתאם לממצאים.
בצורה זו, יש פחות סיכוי שהאקר (“כובע שחור” – האקר “אמיתי”) יצליח להגיע ולבצע פעולות זדוניות במערכת.
פיתוח בענן
בעוד שהרעיון המסורתי, אחסון מקומי של מידע עדיין רלוונטי בחלקים רבים של העולם, עושה רושם שהתפיסה מתחילה להשתנות, בהשפעתם החיובית של פיתוחים חדשניים רבים שרק ממשיכים ומשפרים את העבודה מול הענן.
פיתוח בענן עושה שימוש ברשתות של שרתים מרוחקים, כאשר הגישה אליהם נעשית דרך האינטרנט ולא על פני במחשב או שרת פרטי של המפתח.
מפתחים בתחום זה עושים שימוש בכלים כמו google cloud או Amazon web services, Github.
שפות נפוצות לפיתוח בענן
Java, XML, R, Erlang, Google’s Go!, Clojure