אם פעם אמהות היו רוצות שהילד שלהם יגדל להיות רופא, מהנדס, או עורך דין, היום אמהות רוצות שהילד שלהן יגדל להיות מתכנת. בשנים האחרונות התחום של פיתוח תוכנה הפך לאבן שואבת לאנשים מוכשרים ושאפתנים, ולא במקרה: תוכנות ויישומים נכתבים בשפות קוד שונות, שהולכים ושולטים על יותר ויותר היבטים בחיינו, עד שכבר כמעט ולא נותרו עוד היבטים שלא מופעלים על ידי קוד כזה או אחר.
יתכן וגם אתם חושבים להפוך למהנדסי תוכנה, אולם אתם מתלבטים איך לגשת לנושא: מה צריך לדעת לפני, מה מתאים לכם, ואילו אפשרויות בכלל יש בלימודי פיתוח תוכנה. ובכן, אנחנו כאן כדי לעשות קצת סדר, עם מה שחשוב לדעת לפני שבוחרים קורס ללימוד פיתוח תוכנה ושפת פיתוח.
מבוא ללימודי פיתוח תוכנה
פיתוח תוכנה כאמור הינו תחום מרתק ומאתגר שמושך אליו יותר ויותר אנשים. גם בהנחה שאתם החלטתם שאתם רוצים ללמוד תכנות, כדי ליצור לעצמכם אפיק קריירה עם ביטחון תעסוקתי ושכר גבוה, עדיין צריך לדעת איזה קורס תכנות מתאים לכם.
ראשית, נבין שיש כמה סוגים של שפות תכנות:
- שפות תכנות עיליות (High-level languages) – שפות אלו קרובות יחסית מבחינת סינטקס (תחביר) לשפה האנגלית, ולכן אלו קלות יותר ללמידה. שפות ידועות הן #C, פייתון, ג'אווה סקריפט ועוד.
- שפות תכנות נמוכות-רמה (Low-level languages) – שפות הקרובות (או קרובות יחסית) לשפת הבסיס של המחשב, הקוד הבינארי. שפות אלו הן מורכבות יותר ללמידה, ודורשות ידע מעמיק במדעי המחשב, קרי באופן שבו המחשב עובד. דוגמאות מוכרות הן שפת C ואסמבלי.
- שפות תכנות מוכוונות-עצמים (Object-Oriented languages) – שפות התומכות בתכנות מונחה-עצמים כמו Java, C#, Python. הכוונה בפרדיגמה של תכנות מונחה עצמים, הוא שאפשר לאגד נתונים ופונקציונליות תחת עצם מסוים שנגדיר. למשל: "פרי=תפוח, אגס, בננה".
- שפות סקריפט (Scripting languages) – שפות ליצירת סקריפטים ואוטומציה. לרוב מדובר בשפות פשוטות וגמישות כמו JavaScript, Python, PHP. בשפות סקריפט לא צריך לקמפל (Compiler) שיתרגם את השפה העילית לשפת המכונה, היות והן משמשות לדברים ממוקדים וספציפיים, ואפשר לעבוד עליהן תוך כדי שהקוד עובד.
- שפות תפקודיות (Functional languages) – שפות ממוקדות לפונקציות ולעבודה עם נתונים כמו Haskell, Scala, Erlang. שפות אלו הן מוכוונות ספציפית למאגרי נתונים.
ישנן עוד שפות מיוחדות למטרות ספציפיות יותר, למשל למידת מכונה, בינה מלאכותית ועוד. מכל מקום, עכשיו, לאחר שאתם מבינים שיש כמה סוגי שפות, אתם אולי יכולים להתחיל להבין מה יותר מדבר אליכם ומתאים לכם.
אילו סוגי מפתחים קיימים?
אז ראינו שיש מפתחים המתמחים בשפות פיתוח שונות, ולשפות אלו מטרות שונות. כעת נוסיף אבחנה נוספת בין המפתחים, שהרי בעולם הפיתוח יש שלושה סוגי מפתחים עיקריים: מפתחי בק-אנד, הממוקדים בפיתוח צד שרת; מפתחי פרונט-אנד, המתמחים בפיתוח ממשק משתמש עבור הלקוח; ומפתחים מסוג פול-סטאק, המסוגלים לפתח הן את צד השרת והן את צד הלקוח. בנוסף, קיימים מפתחים עם התמחויות ספציפיות נוספות כגון: משחקים, אלגוריתמים, מובייל ועוד. לכל סוג מפתח יש את המומחיות והערך הייחודיים שלו בפרויקטי פיתוח תוכנה.
קורסים בפיתוח תוכנה
עכשיו, בואו נדבר תכלס; איזה קורס פיתוח מתאים לכם? נתמקד בכמה קורסים עיקריים.
קורס פיתוח פול-סטאק
כאמור לעיל, מפתח פול-סטאק עובד גם על צד שרת וצד הלקוח. אם נפרק זאת לתכל'ס, מפתח פול-סטאק הוא כזה שעובד גם על הצד שהלקוח רואה, כלומר ה-UI (ממשק המשתמש), ולכן הוא עובד עם שפות סקריפט כמו PHP, ג'אווה סקריפט, פייתון וכדומה (תלוי מה המוצר או האתר), וגם על מה שמכונה צד שרת. גם פיתוח צד שרת יכול להיעשות בשפות כמו PHP, ג'אווה סקריפט, פייתון, אולם גם בשפות כגון Java, סי שארפ ועוד. מפתח צד שרת הוא מי שעובד גם על ממשק המשתמש, וגם על השירותים שאליהם פונה ממשק המשתמש, כמו שירותי דאטה בייס וכדומה, ולכן זהו קורס תכנות יחסית מקיף.
כדי לעשות קורס פול-סטאק, אתם צריכים רקע מתמטי כלשהו (יכולות ריאליות), ידע בסיסי בשימוש במחשב ואנגלית ברמה טובה. אם יש לכם את זה, אתם יכולים לעבור את הקורס בהצלחה.
קורס פייתון
פייתון היא אחת משפות התכנות הנפוצות והיעילות ביותר. מדובר בשפה קלה ללימוד יחסית, היות והיא קרובה אינטואיטיבית לשפה האנגלית. קורס פייתון הוא אחלה של דרך להיכנס להייטק כמפתחים, היות ומפתח פייתון יכול לעבוד במגוון רחב מאוד של חברות, וכן אין צורך ברקע מקדים במתמטיקה כלל. כל שצריך בפועל הוא רקע באנגלית, יכולת בסיסית לתפעל מחשב, וכן חריצות.
קורס דוט נט
דוט נט (Net.) הינה פלטפורמת פיתוח של מיקרוסופט, שהיא למעשה ספרייה של כלים לשימוש בתכנות בסי שארפ (#C). דוט נט משמשת לפיתוח אתרי Web בטכנולוגיית ASP.NET, לפיתוח יישומי דסקטופ (במסגרת WPF או WinForms), לבניית אפליקציות רבות-שכבות ועוד. לא נדרש ידע מוקדם, אבל כן אפשר לומר שצריך להיות מסוגלים להתמודד עם מתמטיקה ברמה מסוימת, שהרי משתמשים בלולאות, תנאים וכדומה.