מה ההבדל בין מפתח Full Stack למפתח Front End?
תלמיד מבולבל שלח לי את השאלה שבכותרת וניצלתי את ההזדמנות לקצת נוסטלגיה. משתף כאן ואולי זה יועיל גם לכם.
בפיתוח מערכות מבוססות Web יש מספר רכיבים למערכת, במקרה הפשוט ביותר צד-שרת וצד-לקוח.
קוד צד-שרת זה החלק שרץ על השרת (בדרך כלל PHP וגם Java וכו׳), וקוד צד-לקוח זה החלק שרץ על המחשב של הגולשים (HTML / CSS / JavaScript). בעבר היה תפקיד שנקרא מתכנת Web (או וובמסטר) שכתב גם PHP וגם JavaScript.
בשנים האחרונות, פחות או יותר החל מ 2012, עולם ה JavaScript מאוד התקדם ומתכנתים שהתמקצעו בזה הצליחו להגיע להישגים מאוד טובים בפיתוח - ולבנות ממשקים הרבה יותר יפים ומהירים ממה שהיה אפשר בעבר. לכן מתכנתים רבים בחרו לעזוב את ה PHP לגמרי ולהתמקד רק בפיתוח JavaScript/HTML/CSS. היום קוראים להם Front End Developers. בשנים מאז 2012 תפקיד Front End הפך מאוד פופולרי בחברות ובעצם היום אין כמעט מתכנתי Web או וובמאסטרים אלא רק מתכנתי Front End.
לגבי Full Stack זה סיפור אחר אבל קשור- יחד עם העליה בפופולריות של JavaScript מתכנת בשם ריאן דל עשה עבודה שאיפשרה להריץ קוד JavaScript גם בצד השרת במקום PHP. הוא התבסס על מנוע הרצת JS שקיים בדפדפן כרום ונקרא V8. הסביבה שהוא בנה נקראת node.js. עד כמה שאני זוכר ריאן כבר לא מעורב בפיתוח node.js אבל הכלי עדיין מאוד פופולרי ויצר תנועה חדשה של מפתחי JavaScript שחזרו לכתוב את צד השרת אבל הפעם לא ב PHP אלא ב node.js, כלומר נשארו ב JavaScript. מאחר ולהרים סביבת node.js זה יותר מורכב מלהרים סביבת PHP מתכנתים אלו גם למדו על ניהול שרת ובניית בסיס נתונים. לאט לאט נוצרה קבוצה גדולה של מתכנתים חלקם הגיעו מ Front End ובעזרת node.js כתבו גם צד-שרת, וחלקם עשו מהלך הפוך והיו מתכנתי צד-שרת שלמדו Front End אבל המשיכו לכתוב את שתי הטכנולוגיות. היום המונח מפתח Full Stack מתיחס למתכנתים שמבצעים עבודת פיתוח מוצר מקצה לקצה, ולא קשור דוקא ל node.js. מפתחי Full Stack רבים ישתמשו ב Go, Python או Ruby לפתח את קוד צד השרת.
בגדול בדרך כלל מתכנתי Full Stack פחות מקצועיים בפיתוח צד-לקוח ממתכנתי Front-End אבל יש להם אוריינטציה יותר טובה כשמדובר בפיתוח מערכת שלמה.
ואחרי כל זה שווה גם לשאול - מה כדאי ללמוד?
התשובה שלי כמו בהרבה מקרים היא שזה תלוי:
אם יש לכם רקע בעיצוב או שאתם מאוד נמשכים לעולם של פיתוח ממשקים אז ברור ש Front End זה ה-דבר.
אם אתם מחפשים עבודה בתור שכירים זה לא משנה ויש עבודה טובה בשני המקצועות. אני חושב ש Front End קצת יותר קל למצוא, אבל באמת שכולם מסתדרים.
אם אתם מחפשים לבנות מוצר משלכם אז כמובן שתצטרכו Full Stack (או לעבוד עם חבר שמכיר את עולם ה Back End).