וואלה
וואלה
וואלה
וואלה

וואלה האתר המוביל בישראל - עדכונים מסביב לשעון

קורס Full Stack: כל מה שאתם צריכים לדעת

בשיתוף Real Time Group

עודכן לאחרונה: 1.9.2022 / 13:16

מה זה Full Stack, מה תפקידו של Full Stack Developer, למי התפקיד מתאים ואילו כישורים נדרשים? קבלו את המדריך המקיף שנועד לעשות לכם סדר בתחום הכי נדרש בהייטק

עבודה על מחשב. ShutterStock
עבודה על מחשב/ShutterStock

במהלך העשור האחרון המתכנתים נחלקו לשתי קטגוריות מרכזיות: מתכנתים היודעים לעצב דף שנראה לעין בדפדפן ומתכנתים היודעים לבנות את הקוד האחראי על הלוגיקה של אתר אינטרנט.

בעשור הקודם חברות הייטק התמחו בפיתוח תוכנות ל- Desktop על פי רוב באמצעות שפות כגון C++/Java/dot Net/Python. לאחר מכן לקוח הקצה היה חייב להוריד את גרסת התוכנה ולהתקינה על המחשב האישי, כשכל שינוי או גרסה חדשה ע"י החברה הכריחה את הלקוח להוריד ולהתקין גרסה חדשה, שלא תמיד התאימה למערכת הפעלה של המחשב שלו. במרוצת השנים החלו לפתח תוכנה עבור טכנולוגיית cloud - ענן. רוב התוכנות רצות מהשרתים של החברות שהן בדרך כלל בענן (בניגוד לDesktop) וכל מה שעל הלקוח לעשות, זה להתחבר באמצעות דפדפן -(Browser) לדוגמה Google Chrome, Microsoft edge, Firefox. השינויים בתוכנות החברה (גרסאות חדשות בתוכנה קיימת) מתבצעות רק בענן, כך שמשתמש הקצה היות והוא מחובר בדפדפן לא צריך לעשות דבר.

המתודולוגיה החדשה של הרצת התוכנה מהשרת יצרה משרה חדשה העונה לשם "פול סטאק". משמעותו של צמד המילים - Full-Stack: רשימת כלי פיתוח מלאה המצביע על על התמחות במגוון רחב של טכנולוגיות, שפות תכנות, מתודולוגיות וכלי פיתוח בשימוש בתחום. נדון בהם בהרחבה במאמר זה.

מה זה Full-Stack?

מפתח ווב פול סטאק (Full Stack Developer) או בכינויו המקוצר "FSD", הוא מפתח תוכנה אשר שולט במספר רחב של טכנולוגיות, עד כדי רמה שהוא מסוגל לפתח לבדו אפלקיציה או לחילופין אתר שלם. למעשה, לא קיימת הגדרה חד משמעית למפתחי פולסטאק ולא קיים תואר אקדמי בתחום, ועל כן אין הגדרת מקצוע של IEEE או ACM בנושא. למרות זאת, בעולם ההייטק השתרש המושג במהלך העשור האחרון. מרבית אנשי ההייטק ואנשי הגיוס בתחום מכירים את המושג מקרוב ומשתמשים בו באופן קבוע. אם תחפשו באתרים הישראלים המיועדים לחיפוש עבודה, תתמצאו קרוב ל-1,000 משרות "מפתח Full-Stack".

תפקידו של מפתח Full Stack

מפתח Full Stack מטפל בכל הפיתוח של צד לקוח וכן צד שרת, מסדי נתונים, שרתים והנדסת מערכת.

1. עיצוב אתר (Web Design)

HTML -HyperText Markup Language מדובר בשפת תגיות שאחראית על הטקסטים של עמודי ודפי אינטרנט. זו שפת תגיות מרכזית בתחום האינטרנט המאפשרת עיצוב של תוכן באופן מהיר. השפה נחשבת לשימושית מאוד גם בקרב מפתחי אתרי אינטרנט.

CSS: -Cascading Style Sheets שפה לעיצוב אתרים אשר אחראית להגדיר בדפדפן את צורת העיצוב והתצוגה של כל עמוד ועמוד באתר.

השפה נוצרה בשנת 1994 ומאז כל הזמן מתווספים לה הרחבות ושיפורים חדשים. בשנים האחרונות נוצרה הגרסה המורחבת והמתקדמת יותר והיא CSS3. בעזרת גרסה זו ניתן לשלוט גם בפריסת האלמנטים בעמוד בצורה יותר יעילה בעזרת box model. ניתן לשלב אנימציה, וידאו, קנבס ועוד שיפורים רבים נוספים.

Bootstrap - סביבת עבודה בקוד פתוח, המכילה אוסף של כלים ליצירת אפליקציות ואתרים. התוכנה מורכבת מ-3 חלקים: CSS - אוסף של "מחלקות" CSS, שיתאימו למקרים נפוצים באתרי אינטרנט; רכיבי UI - ממשק משתמש. רכיבים ב-HTML, CSS ו-JavaScript שנועדו להקל על המפתח לייצור ממשק ידידותי למשתמש על ידי כפתורים, תמונות, הודעות ועוד; ו-JavaScript - תוספים של אפשרויות מתקדמות כמו גרפים.

2. שפות תכנות נדרשות (Programming languages)

JavaScript - שפה דינמית המשמשת למגוון רחב של משימות כגון - הוספת אינטראקטיביות לאתר, הוספת מידע סטטי JS, Ajax, עדכון תוכן על פי פעילות המשתמש. גם בצד השרת ניתן להשתמש ב-JS לטובת תקשורת מהירה עם בסיס הנתונים המכיל את המידע אשר מוצג באתר, על שימושים ונושאים אלו ועוד רבים נוספים נלמד בצורה מקיפה בקורס JavaScript.

Python - פייתון היא שפה סקריפטינג שפותחה בקוד פתוח בתחילת שנות ה-90. פייתון נבנתה בצורה כזו שמקלה על המתכנת. מדובר שפת תכנות מתאימה לתכנות פונקציונלי, מונחה עצמים (Object Oriented) הכולל מחלקות, אובייקטים, תורשה, פונקציות ועוד, מתאימה למגוון כלי תכנות החל מקבצים פשוטים ועד אפליקציות מורכבות.

Java - אחת משפות התכנות הפופולריות והשימושיות ביותר מדובר בשפה מונחית עצמים (object oriented) המזכירה מאוד את ++C אך פשוטה ממנה וגם היא כוללת שימוש בתהליכונים (Thread).כיום קיימים מעל עשרה מיליון מפתחים בשפה זו..הג'אווה צורכת יותר זיכרון מ ++C כיוון שהיא משתמשת בספריית הניהול של Java Virtual Machine) JVM).

3. פלטפורמות צד משתמש (Client Side Frameworks) :

Angular - תוכנת קוד פתוח המבוססת על שפת Javascript מבית היוצר של גוגל. טכנולוגיה המשמשת מפתחים לבניית אתרים ואפליקציות ווב, דסקטופ ומובייל ולמעשה לפיתוח אפליקציות לצד שרת מסוג SPA (Single Page Application). אנגולר פותחה לראשונה בשנת 2010 ומאז בעקבות היעילות הגבוהה שלה והפופולריות שלה נוצרו מגוון גרסאות חדשות אשר משפרות אותה עוד ועוד לפי דרישות השוק.

React - תוכנה שנוצרה לראשונה על ידי ג'ורדן ווק, מהנדס תוכנה שעובד עבור פייסבוק. React נפרס לראשונה ב-news feed של פייסבוק ב-2011 וב-Instagram.com ב-2012. ריאקט היא תוכנה מסונכרנת עם ספרייה נוספת מאוד פופולרית ובלתי נפרדת בשם Redux . Redux נועדה לנהל את הפעולות ותזרים המידע מאחורי הקלעים ולנהל את המצב (State) של האפליקציה בזמן ש React דואגת להצגת המידע והעיצוב למשתמש. ספריית Redux בנויה על בסיס טכנולוגיית Flux המשמשת את פייסבוק כבר זמן רב.

Vue.JS - מסגרת נגישה, ביצועית ורב-תכליתית לבניית ממשקי משתמש אינטרנטיים. מדובר על פרויקט עצמאי, מונחה קהילה. שנוצר על ידי אוון יו בשנת-2014 כפרויקט צד אישי. כיום, Vue מתוחזקת באופן פעיל על ידי צוות של חברים במשרה מלאה ומתנדבים מכל רחבי העולם , התוכנה משמשת בייצור על ידי ארגונים ידועים ביכולות שונות בכל רחבי העולם, כולל Wikimedia Foundation, NASA, Apple, Google, Microsoft, GitLab, Zoom, Tencent, Weibo, Bilibili, Kuaishou ועוד רבים.

4. בסיסי נתונים עיקריים בשימוש ב פולסטאק (DataBases)

MySQL - מסד נתונים שהוא אוסף מובנה של נתונים. שיכול להיות כל דבר, מרשימת קניות פשוטה לגלריית תמונות או כמויות המידע העצומות ברשת ארגונית. כדי להוסיף, לגשת ולעבד נתונים המאוחסנים במסד נתונים מחשב, אתה צריך מערכת ניהול מסד נתונים כגון MySQL Server.

MongoDB - מערכת לשימור Big Data ובקצרה,תיעוד של מסדי נתונים עם מדרגיות וגמישות לפי צרכי המשתמש ועל פי אינדקסים שנקבעים על ידיו. התכונות הבולטות של המערכת היא היכולת לטפל בכמויות גדולות של Data (מכאן השם humongous). המערכת הזו מאחסנת מידע בכמויות גדולות ומאפשרת חיפוש קל על ידי קביעת אינדקסים, מיפוי הDATA, ועל ידי מערכת קלה לשימוש וללמידה.

5. פלטפורמת שרת (Server platform)

NodeJS מדובר בטכנולוגיה יחסית חדשה אך יחד עם זאת פופולרית מאוד ונמצאת בשימוש מאוד רחב בתעשייה. השימוש ב NodeJS מאפשר לפתח תקשורת עם צד השרת ולתקשר עם בסיס הנתונים של האתר בצורה הרבה יותר אפקטיבית מפתרונות שהיו בשימוש בעבר בפיתוחים מסוג זה.

כיום ניתן לשלב בפולסטאק מערכות קוד פתוח (open source platforms ) כגון ELK, Grafana במיוחד בשל תמיכה מקהילת open source גדולה.

אופן ספייס של חברת סטארט אפ. ShutterStock
אופן ספייס של חברת סטארט אפ/ShutterStock

סוגים של מפתחי תוכנה Full Stack Developer

הנושא Full Stack מאוד אבסטרקטי, בגדול מורכב מ-2 חלקים עיקריים: צד לקוח וצד שרת

צד שרת (Server Side) - ידוע גם כ Back End כאן המפתח מקבל את דרישת הלקוח, ומיישם אותם, נותן מענה לשאילתות, מאחסן מידע חדש בבסיסי הנתונים שצוינו כגון SQL\MongoDB. לב ליבה של התוכנה, אשר באמצעות Python\Java\NodeJS נותן מענה ומשגר נתונים (שאילתות) שהתקבלו מהלקוח. בכל רגע נתון יכולות להיות עשרות אלפי בקשות ויש צורך לחשב תשובות מהירות, אחסון המידע וטעינתו.

צד לקוח (Client Side) - ידוע גם כ- Front End - המשתמש באמצעות הדפדפן (Browser), שכיום כבר מהווה אפליקציה אינטראקטיבית, שולח בקשות לשרת, בין השאר להצגת מידע מורכב, לעדכון מידע חדש בשרת, מילוי טפסים וממשק המשתמש, באמצעות פלטפורמות כגון Angular \Vue\React ללקוח קצה, כיום הדרישות מורכבות, הכוללות בין השאר תקשורת אינטראקטיבית, הצגת מידע מורכב, מילוי טפסים, עיבוד בזמן אמת והצגתן של מפות אינטראקטיביות.

מפתחי פול סטאק יודעים לתכנת את צד השרת backend וגם את צד לקוח frontend. לעיתים ניתן לפגוש אנשי פול סטאק שמגדירים צד אחד חזק יותר בהתאם לארגז הכלים והמיומנויות שיש להם. כאמור יעדיפו להשתמש בצד השרת לרוב ב Node JS בשילוב בסיסי נתונים כמו SQL, MongoDB ובצד הלקוח פופולרי השימוש ב Angular ולאחרונה אף יותר ב- React.

היתרונות בתפקיד פיתוח Full Stack Developer

תחום מעניין בעל תגמול גבוה - במידה ואתם מעוניינים בלמידת קורס הייטק ולהשתלב תעשיית עבודות ההייטק בארץ - קורס פול סטאק זה הדבר בשבילכם. מדובר בזהב של כל סוגי קורסי ההייטק במדינה ובעולם כלל. כמות המשרות והדרישות לתחום, התחזיות לשנות העבודה 22 ו-23 וכן הלאה, רמת השכר, אפשרויות הקמת חברת סטארט-אפ וכן הלאה וכן הלאה, כולם מכוונים למקום אחד - קורס פול סטאק. מדובר בתחום עם תנאי שכר מעולם. היות והביקוש למפתח FS הוא גבוהה וההיצע פחות, ניכר כי השכר שלהם יעלה בהרבה על שכר של מתכנתים שונים אשר מתמחים בתחום ספציפי.

גמישות תעשייתית - כפי שכבר ראינו מפתח Full Stack נהנה יותר מגמישות תעסוקתית. ברוב המוחלט של המקרים יהיו יותר משרות עבור אותם אנשים אשר מתמצאים בטכנולוגיות כאלו ואחרות, אנשים כאלה אשר בעלי מיומנויות רבות אשר מסוגלים לעשות יותר דברים. וזאת מאחר כי תחום ההייטק הינו תחום דינמי ביותר. כאשר מתבצעים שינויים טכנולוגיים תכופים האדם אשר ישלוט ביותר תחומי ידיע יהיה זה שיהנה מיותר אפשרויות תעסוקה.

עניין בעבודה - מפתח בתחום ה-Full Stack יעסוק במספר רב יותר של טכנולוגיות על פני מפתחים מתחומים אחרים. בין אם מדובר על בסיס יום יומי ובין אם מדובר על מעבר בין פרויקטים או לחלופין אפילו בין תפקידים. דבר זה מאפשר למידה מקסימלית ופיתוח והגדלת ראש. כאשר נעבוד בתחום עיסוק אחד שהוא צר, ניכר כי יהיה פחות עניין ויהיה קל יותר להשתעמם.

עבודה בחברות הייטק וטכנולוגיה קטנות וגדולות - כחלק מרמת הגמישות בתחום הפולסטאק קיימת היכולת לעבוד בחברות הייטק וטכנולוגיות קטנות וגדולות. בעולם ההייטק ישנו הבדל משמעותי מאוד בין עבודה בחברות גדולות, לבין עבודה בחברות קטנות. מפתח תוכנה FS יכול לעבוד בשני סוגי החברות המדוברים. למרות הקושי בין המעברים החדים מחברה קטנה לחברה גדולה או להפך, מומלץ מאוד לעשות זאת. מדובר על פעולה אשר תניב לכם הבנה וניסיון מעמיק הרבה יותר לגבי התחום התעסוקתי שלכם והדרכים הנכונות להשתלב בו ולקדם פרויקטים בצורה מקצועית ונכונה.

מאמר זה נכתב ע" מחלקת Full Stack מחברת Real Time Group, בית תוכנה, מרכז הדרכה ומיקור חוץ, המספקת שירותי פיתוח, הדרכה והשמה למאות חברות הייטק בארץ ובחו"ל.

כיום ישנה דרישה גבוהה מצד לקוחותינו לפרויקטים בתחום פולסטק ולכן אנו מחפשים מועמדים המעוניינים להצטרף אלינו - ללמוד ולעבוד איתנו.

בואו ללמוד ולעבוד איתנו.

בשיתוף Real Time Group
  • עוד באותו נושא:
  • הייטק

טרם התפרסמו תגובות

הוסף תגובה חדשה

+
בשליחת תגובה אני מסכים/ה
    2
    walla_ssr_page_has_been_loaded_successfully