כיום פיתוחי תוכנה תופסים מקום ותפקיד קריטי בהצלחת הארגון. מערכות מידע מתפתחות באופן הדרגתי ומשנות את פני התעשייה יחד עם שינויים בטכנולוגיות התוכנה. תעשיית מערכות המידע הינה הפכפכה ודורשת מקצוענים ברמה ובאיכות גבוהה ובעיקר מקצוענים אשר מוסמכים ע“י חברות ענק כגון Microsoft ,Google ,Cisco ועוד.
האימוץ והשימוש בטכנולוגיות חדשות ע“י התעשייה הוביל לעלייה מתמשכת ומתמדת בדרישה לכוח אדם מיומן. כתוצאה מכך, איש המקצוע חייב להיות מעודכן על בסיס קבוע וזאת על מנת לשמור ולשמר את מיומנויותיו הטכנולוגיות המיוחסות לתעשייה.
על מנת לעמוד בקו אחד עם השינויים הטכנולוגיים בעולם התוכנה, על איש התוכנה לא רק להיות מודע לכך שעליו לדעת על מוצר חדש, אלא גם להגיע לתובנה שעליו להיות מוסמך ע“י מובילי התעשייה ומוצריהם.
פיתוח תוכנה היא שיטה של עקרונות ומערכות, אשר עומדות בבסיס פיתוחן של מערכות תוכנה. השיטה למעשה מהווה בסיס לא רק לפיתוח של תוכנות, אלא גם לתפעולן והמשכיות תפקודן באופן אמין. כלומר, תחום הנדסת התוכנה מתרכז בפיתוח הרחב והשלם של התוכנה, כמו גם החומרה והתקשורת ביניהן. עקרונות אלה מושתתים על מתודולוגיות ידועות בתעשייה כגון: UML,MDA ,XMI ,MOF וכו‘ וההבדל ביניהן נקבע על-פי נושא המיקוד. קיימות מתודולוגיות המתמקדות יותר באיכותן של התוכנות וישנן מתודולוגיות בהן המיקוד נתון לעיצוב התוכנה והמערכת בכלל. לימודים בתחום הנדסת תוכנה נחשבים ליוקרתיים מאוד, בעיקר מכיוון שכמעט בכל תחומי החיים המודרניים כיום אנחנו נדרשים למפתחים המתמחים בתוכנה.
מהו העתיד המקצועי בפיתוח תוכנה? “השמיים הם הגבול“, אכן משפט נדוש אך מציאותי בעולם התוכנה. כאמור, תוכנה היא אחד התחומים היחידים הנוגעים לכל רובד מרבדי החיים המודרניים.
כיום תחום פיתוח תוכנה תופס מקום ותפקיד קריטי בהצלחת הארגון. המטרה העיקרית הינה לתת כלים למפתחי התוכנה, על מנת שיבינו טוב יותר את הדרישות של מערכות התוכנה העיקריות בארגון, יחד עם היחס ליצירת סביבת עבודת פיתוח קבוצתית.
המטרה המשנית של הלימוד הינה לשפר את היכולות האינדיווידואליות מהצד הטכני, תוך שימוש בטכניקות מתקדמות של פיתוחי תוכנה. במהלך הלימודים אנו חושפים כלים חדשניים לפיתוח, יחד עם נושאים שהינם קריטיים הן מבחינת פיתוח והן מבחינת תחזוקת מערכות תוכנה גדולות ומבוזרות.
בוגרי לימודי תוכנה משתלבים במקצועות מובילים בשוק ההייטק ומאיישים משרות כמעט בכל תחומי התעשייה. פיתוח תוכנה, כמקצוע מבוקש ויוקרתי, מאפשר להשתלב במסגרת של תחומים רבים ומגוונים. ניתן לבדוק באילו תחומים ומקצועות משתלבים הבוגרים בשוק ולהבין עד כמה משמעותי פיתוח התוכנה לתרבות העכשווית ועד כמה הוא בסיסי לדרישות הקיום שלנו בעולם המודרני. אספקט נוסף וחשוב מאוד בשנים האחרונות הינו אספקט אבטחת המידע בעולם התוכנה.
אבטחת מידע הוא תחום חשוב במעלה. חשיבות אבטחת המידע באה לידי ביטוי תוך הצגת האיומים בעולם בו מידע רב פרטי ורגיש מנוהל באמצעות תוכנה. חשיבות אבטחת המידע גדלה, בעוד אבטחת המידע יכולה להיות מוגדרת כיצירת הגנה על התוכנה בין אם התוכנה פועלת במחשב ובין אם התוכנה פועלת ברשת.
כיום מוצרים ושירותים רבים מהמגזר הפרטי והציבורי תלויים במידה ניכרת בתוכנות אשר מטפלות במידע רגיש ובעל חשיבות, כדוגמת: מידע פיננסי, מידע בריאותי ואף מידע ביטחוני לאומי.
השימוש הנרחב במערכת האינטרנט מאפשרת תקשורת חוצה גבולות פיזיים ומדיניים והעברת מידע מאפשרת נגישות קלה ומהירה יחסית למידע המועבר. נגישות זו עלולה להיות מנוצלת על ידי גורמים בלתי רצויים, אשר הופכים נתיב זה לדרך פשיעה נוספת בעידן החדש.
עידן זה ידוע כעידן הפשיעה האינטרנטי, כאשר זו מנוצלת להונאות בידי ארגוני פשיעה, לחשיפת מידע בטחוני בידי ארגוני טרור, לריגול תעשייתי בידי פירמות ולאסיפת מידע רגיש ופרטי בדרכים עקלקלות. בשנים האחרונות מספר ההתקפות על תוכנות הולך וגדל ולכך יש להיערך בצורה טובה ומושכלת.
באופן כללי, עלינו להכיר את התחום ברמת העל ולהכיר נושאים כגון ניהול אבטחת מידע, הצפנות, בקרות גישה, מודלים וכמובן סטנדרטים.
• אבטחת מידע ברמת התשתיות
• אבטחת מידע ברמת הקוד
מחד, אבטחת מידע הוא תחום נרחב וחשוב במעלה. מאידך, התחום מאוד נקודתי כאשר אנו באים לבחון ו/או ליישם אפליקציות.
פיתוח רשת או אינטרנט הוא תהליך של פיתוח תוכנה שפועלת ברשת האינטרנט המוכרת לנו כ- WWW
World Wide Web או תוכנה, שעובדת על גבי פרוטוקול HTTP דרך שרתי האינטרנט על גבי דפדפני אינטרנט.
הפיתוח לעולם החופשי התחיל את צעדיו הראשוניים בשלהי אמצע שנות ה- 90 עם טכנולוגיות שונות, שמרביתן היו סטטיות. עם השנים הטכנולוגיות התפתחו וכיום אנו נמצאים בעידן שבו הטכנולוגיות הינן דינמיות.
בניגוד לפיתוח תוכנה מסורתי שנעשה בדרך כלל בסביבת פיתוח אחידה ועל פלטפורמה אחידה, פיתוח אינטרנט הוא כאוטי הרבה יותר ומפתחי אינטרנט נדרשים לפתח במגוון שפות ועל מגוון פלטפורמות. כך למשל מפתח PHP, העוסק בפיתוח CRM הפועל באינטרנט נדרש, מן הסתם, להיכרות מעמיקה עם PHP ועם סביבת עבודה אחת לפחות כגון Eclipse או Zend. בנוסף, הוא נדרש להיכרות מעמיקה עם מסד נתונים כגון .MySql נדרשת גם היכרות עם טכנולוגיות כמו HTML5 ,CSS3 וגם עם טכניקות חדשות יותר כגון AngularJS ו-ReactJS. בנוסף, יש צורך בהבנה בנושאים כמו נגישות באינטרנט, קידום אתרים (SEO) וכמובן אבטחת מידע ברמת התשתית וברמה האפליקטיבית.
התחום מתפתח ומשתנה ובניגוד לתכנות מסורתי השינויים קורים מהר, במיוחד בתחום הקוד הפתוח. חברות שונות נמצאות בתחום הקוד הפתוח, כולל מייקרוסופט שהצטרפה בשנת 2013 למהלך וכיום לא מעט ממוצרי הפיתוח המוצעים על ידה הינם ברמת קוד פתוח. בנוסף, קהילה זו גם אחראית על פיתוח של פלטפורמות פיתוח תוכן חינמיות כגון WordPress ,Joomla ועוד.
כפועל יוצא של מגוון הטכנולוגיות הרבות והעדכונים והחידושים השונים בתחום, נוצרו שני תתי תחומים של פיתוח אינטרנט. מחד, Back End האחראי על צד השרת וכולל את הפיתוח של בסיס הנתונים והלוגיקה העסקית. ומאידך, Front End האחראי על צד הלקוח וכולל שילוב של טכנולוגיות צד לקוח כגון HTML5 ,CSS3 ,JQuery ועוד.
מעבר לכך, בשנים האחרונות התפתח בעולם נושא המובייל. עם מעל לחצי מיליון אפליקציות לאייפון בלבד ואותה כמות לאנדרואיד, שוק האפליקציות מתעצם מיום ליום. אבל כשזה מגיע לבחירת השיטה הטובה ביותר לפיתוח אפליקציות, לא תמיד קל לדעת איזו גישה הכי מתאימה ליעדים שלנו.
שנת 2013 הייתה שנה מעניינת מהרבה בחינות, אך בתחום האפליקציות מדובר בשיא כל הזמנים. לאט לאט המובייל נוגס עוד משוק ה- PC, והאפליקציות הטבעיות (Native Apps) מאיימות על האינטרנט הקלאסי ובכך מגבילות את הגישה למידע, שהייתה פעם חופשית ברשת. מגמה זו מביאה לחלוקה של הרשת ליחידות מידע שלא מקושרות אחת לשנייה. החיקויים של ממשקי החומרה מערימים קשיים רבים בהתממשקות עם טכניקות חדשות של הצגת האינפורמציה.
כדי לתת מענה מקצועי לבעיה זו, אחת האפשרויות הנפוצות ביותר בעולם הפיתוח ליצירת אפליקציה לאייפון, אנדרואיד ווינדוס פון, היא לפתח אתר מותאם מובייל המבוסס על הטכנולוגיות של צד לקוח וצד שרת. זו אחת ההעדפות הנפוצות ביותר בשוק התעשייתי. מאידך, ניתן לפתח אותן אפליקציות בשפות הטבעיות שלהן ואנו מכנים זאת כ- Native Development.
ככל שעובר הזמן, הדפדפנים יוצאים בגרסאות המותאמות לחומרה ספציפית (Native), מה שמאפשר לפתח אפליקציות ומשחקים, אשר רצים לחלוטין על גבי הדפדפן. מגמה זו מאפשרת גם לאתרים להתממשק עם מערכות ההפעלה של המכשיר ולהשיג ניצול מרבי של חומרת המכשיר ללא צורך בהתקנת פלאגין ספציפי. מגמה זו תלך ותגדל בעתיד.
ככל שהשימוש ב- HTML5 הולך ומקבל תמיכה בדפדפנים המותאמים, כך מגמה זו מתחזקת. זו המגמה המקלה על פיתוח אפליקציות ואנחנו רואים יותר ויותר ממשקים המעוצבים כהיבריד יצירתי, התואם גם פעולת הקלקת עכבר עם אופן העבודה עם מסך מגע.
ביחס ישיר לנאמר לעיל, ניתן לחלק את עולם הפיתוח לאינטרנט למספר תפקידים שאותם ניתן ללמוד ושהינם חלק אינטגרלי מהקורס הנלמד.
בוני אתרים אמורים להכיר את כל התחומים שמפתח אינטרנט אמור להכיר, אך באופן מעמיק הרבה פחות. כך למשל, בונה אתרי אינטרנט טוב אמור להכיר מערכות תוכן כגון וורדפרס או ג‘ומלה ולדעת לעצב אותן באמצעות סקינים. לעומתו, מפתח אינטרנט טוב ידע גם לבצע התאמה אישית נרחבת במערכות האלו באמצעות מתודות מקובלות כגון פיתוח תוספים והרחבות ובמקרה הצורך גם לבנות מערכת תוכן מאפס. בונה אתרי אינטרנט ידע ליישם קודים של AngualrJS אך מפתח אינטרנט ידע לבנות תוספים ל- AngualrJS ומערכות מבוססות אובייקטים למערכת שלו.
מעצבי אתרי אינטרנט הם בפועל גרפיקאים. הגרפיקאים מאד מוכשרים בתחומם, אך בדרך כלל יכולת התכנות שלהם מוגבלת והידע הטכני שלהם נופל אף מבוני אתרי אינטרנט. תפקידם הוא לספק סקיצות גרפיות עבור המערכת.
מתכנני ממשק משתמש הם אלו שאחראים על תכנון ממשק המשתמש, באופן שיקל על המשתמשים לבצע את האינטגרציה עם האתר. אלו מוכרים כמומחי User Interface או User Experience. למרות שהתפקיד שלהם קשור לעיצוב, הם בדרך כלל אינם מעצבים ותפקידם הוא להנחות את המעצבים והמפתחים על מנת ליצור ממשק משתמש מנצח.
לסיכום, במאמר זה ניתנה סקירה על עולם הפיתוח לאינטרנט ולסלולר תוך הצגת התנודות הקיימות כיום בשוק הפיתוח בעולם בכלל. העתיד בטווח הקצר ובטווח הארוך טומן בחובו שינויים דינמיים הן מההיבט הטכנולוגי והן מההיבט המקצועי.