JavaRush /בלוג Java /Random-HE /גם השבדי וגם הקוצר. מיהו מפתח Full Stack ואיך להפוך למפתח...

גם השבדי וגם הקוצר. מיהו מפתח Full Stack ואיך להפוך למפתח כזה?

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

"מפתח Full stack הוא אשף טכני שיודע את כל שפות התכנות והטכנולוגיות, וגם שר ורוקד יפה."

איאן פיטרס-קמפבל הוא
מפתח מנוסה ומייסד חברת התוכנה Stickbuilt.

מי הוא מפתח Full Stack?

אז מה זה מפתח Full Stack במובן המסורתי? ההגדרה הנפוצה ביותר אומרת לנו שמדובר במומחה שאחראי לפיתוח כל חלקי הפונקציונליות של המערכת, לרבות הן צד המשתמש של המוצר (frontend) והן הקוד הפנימי הפועל בשרתים מבוזרים (backend). ככלל, אם הביטוי "מלא מחסנית" מופיע בפרסומת למשרה פתוחה, זה אומר שהמפתח חייב להיות בעל ידע ומיומנויות בפיתוח backend ו-frontend בו-זמנית. עם זאת, חברות רבות הולכות רחוק יותר, וב"Full Stack Developer" הם מתכוונים לחייל אוניברסלי שלא רק מסוגל לפתח את כל הרכיבים של מוצר תוכנה, אלא יכול גם לקחת על עצמו את כל השאר, מניהול מוצר ועד הקמת התפעול. מערכת על שרתים ותיקון מדפסת משרדית. למעשה, ברוב המקרים, מפתח Full stack נדרש להיות בעל רמת ידע הגונה במכלול הטכנולוגיות הנחוצות להשלמה מוצלחת של הפרויקט. לפיכך, במקרה זה, "מחסנית" פירושה אוסף של מודולי תוכנה ורכיבים המשולבים יחד כדי להשיג את הפונקציונליות הנדרשת. גם השבדי וגם הקוצר.  מיהו מפתח Full Stack ואיך להפוך למפתח כזה?  - 3

מדוע הנושא הזה כל כך שנוי במחלוקת?

הוויכוח לגבי מה באמת צריך להיות מפתח Full Stack, והאם חיה כזו בכלל קיימת בכמויות מספיקות כדי להפריד מומחים כאלה לקבוצה נפרדת, נמשך כבר די הרבה זמן. כפי שמציינים מתכנתים מנוסים, היא התלקחה במרץ מחודש לאחר שנציגי פייסבוק, עם שחר היווצרותה בשנות ה-2000, במהלך נאום באחד הכנסים המיוחדים למפתחים, הצהירו שהם שוכרים רק מפתחי Full Stack בלבד. "אם ההגדרות המסורתיות של מפתח Full Stack גורמות לך לבלבל, אז הכל נכון. הסיבה לכך היא שמפתח Full Stack הוא משהו חולף. אין מודל מדעי שמתאר מהי "מחסנית מלאה". אין דרך ברורה למדוד את רמתו של מפתח Full stack בהשוואה למפתחים דומים אחרים. הקונצנזוס היחיד לגבי Full Stack הוא שאף אחד לא מסכים על הגדרה אחת של מהות התופעה הזו. זו הסיבה שכל מה שאתה קורא בנושא זה אינו אלא דעה סובייקטיבית", אמר רילנד גולדשטיין, מפתח תוכנה וארכיטקט מנוסה. גם השבדי וגם הקוצר.  מיהו מפתח Full Stack ואיך להפוך למפתח כזה?  - 4

ארבעה עמודים של פיתוח מלא

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

    בדרך כלל, חזית קצה מתייחסת לטכנולוגיות פיתוח אתרים ושפות תכנות כגון HTML, CSS ו-JavaScript. זה כולל גם מסגרות JavaScript כגון React, וכל שאר הטכנולוגיות הקשורות לצד ה"לקוח" של המוצר.

    איפה להתחיל ללמוד:

    אתה יכול להתחיל באפליקציית Create React או Gatsby frameworks , שבאמצעותן די קל ליצור אפליקציית React מלאה. מומלץ ללמוד מעבדי CSS מראש, כלי CSS בסיסיים כמו CSS-in-JS וכלים כמו Sass .

  2. פיתוח אחורי.

    ה-backend כולל את כל הקוד שפועל על השרתים, כולל אפליקציות וממשקי API שגורמים לאתר לעבוד. שפות התכנות העיקריות עבור הקצה האחורי הן Java, Python, Ruby ואחרות. מלבד זאת, פיתוח backend כולל גם ניהול מסדי נתונים, המצריך ידע ב-SQL.

    איפה להתחיל ללמוד:

    קודם כל, מומלץ להתחיל בהעמקת הידע ב-JavaScript, כמעין גשר בין ה-frontend ל-backend במקרים רבים. בפרט, כדאי ללמוד את NodeJS , פלטפורמת תוכנה המבוססת על מנוע V8 שהופכת את JavaScript משפה מאוד מיוחדת לשפה כללית.

    Также для того, чтобы иметь максимально полную квалификацию в бэкенде, рекомендуется, помимо Java, постепенно осваивать такие языки программирования, How Python (в первую очередь), PHP и Ruby.

  3. Проджект-менеджмент.

    От проджект-менеджера, если вкратце, требуется управлять проектом, что включает множество задач, среди которых взаимодействие с клиентами, коллегами, сторонними подрядчиками и т.д. Словом все, что нужно для успешной реализации проекта. Сюда также входит планирование, принятие стратегических решений по работе над продуктом и т.д.

    С чего начать изучение:

    Для успешного развития в качестве проджект-менеджера не помешает изучить наиболее популярные инструменты в этой сфере. Основными можно назвать: GanttPRO (сервис для планирования и управления проектами с помощью диаграммы Ганта), Jira Software (популярная система для планирования и отслеживания agile-проектов), LiquidPlanner (инструмент для проджект-менеджмента в реальном времени), Basecamp (еще одна система управления проектами и совместной работы) и т.д.

  4. DevOps.

    Ну и, наконец, четвертым столпом фуллстек-девелопмента является знание DevOps. Обязанности DevOps-а могут сильно отличаться в зависимости от проекта, но How правило к ним относится все, что касается запуска программного codeа в продакшн, включая, например, настройку serverов, на которых будет функционировать приложение, и обеспечение слаженной работы специалистов команды вместе с техническими решениями, которые они используют.

    С чего начать изучение:

    Сфера DevOps также включает в себя довольно много всяких инструментов. Вот те, с изучения которых имеет смысл начинать: инструменты управления исходным codeом (GitLab, GitHub, Bitbucket), CI/CD-инструменты (Ansible, Jenkins, Chef), тулзы для коммуникации и коллаборации (Slack и Microsoft Teams), а также сервисы облачных вычислений и хранения данных (AWS, Azure и GCP).

    גם השבדי וגם הקוצר.  מיהו מפתח Full Stack ואיך להפוך למפתח כזה?  - 5

    Помимо вышеперечисленных четырех базовых составляющих “полного стека,” он не был бы действительно полным, если бы не включал в себя также мобильную разработку, базы данных и QA автоматизацию — истинный Full Stack разработчик разбирается и в этих технологиях тоже.

Зарплаты Full Stack разработчиков

לגבי השכר של מפתחי Full stack, הם לא כל כך גבוהים בממוצע מהקולגות שלהם עם התמחות ספציפית יותר בפיתוח. בארה"ב, השכר הממוצע של מפתחי סטאק מלא הוא כמעט 75 אלף דולר בשנה, לפי PayScale . במקביל, שכר המינימום (למתכנתים בעמדות מלא) הוא כ-46 אלף דולר בשנה, והמקסימום הוא כ-114 אלף דולר בשנה. באשר למדינות לשעבר ברית המועצות, באוקראינה, לפי המשאב של Work.ua , השכר הממוצע של מפתחי Full stack הוא 35 אלף Hryvnia (כ-1300 דולר) לחודש, בעוד בקייב זה 45 אלף (כ-1650 דולר). ברוסיה, על פי נתונים אלה , המשכורות של מפתחי ערימה מלאה נעות בממוצע בין 40 אלף רובל (530 דולר) ל-150 אלף רובל. ($2000). אם אנחנו מדברים על הממוצע של העולם כולו, אז מומחים העובדים בתפקיד שאנחנו שוקלים היום מרוויחים כ-45 אלף דולר בשנה. ובאירופה, מפתחי Full stack מקבלים את המשכורות הגבוהות ביותר בדנמרק ובשוודיה. גם השבדי וגם הקוצר.  מיהו מפתח Full Stack ואיך להפוך למפתח כזה?  - 6

איך להפוך למפתח Full Stack?

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

    מפתח Full stack חייב להיות שוטף במספר שפות תכנות. קודם כל, כמובן, יש את העיקריים שבהם: Java, PHP, C#, Python, Ruby, Perl וכו'. במילה אחת, השפות הפופולריות ביותר שבהן ככל הנראה ייכתבו התהליכים העסקיים העיקריים של המוצר. כמובן, יהיה קשה מאוד ללמוד מגוון שלם של שפות כאלה בצורה מושלמת. אבל אתה צריך לפחות לשלוט בדקדוק של השפה שתמלא תפקיד חשוב בפיתוח, וגם להיות בעל ידע טוב כיצד לבנות, לעצב, ליישם ולבדוק פרויקט המבוסס על שפה אחת או יותר.

  2. מסגרות וספריות קוד.

    ובכן, ידע טוב בשפות התכנות העיקריות ברוב המקרים כולל את היכולת להשתמש במסגרות וספריות פופולריות, כגון Java Spring, Hibernate, Python Django, PHP thinkphp, MyBatis ואחרים.

  3. טכנולוגיות Frontend.

    גם החשיבות של הידע בטכנולוגיות חזיתיות עבור מפתחי Full-Stack גדולה, ועולה עם הזמן. כיום, כאשר הנוחות וה"עטיפה" הכוללת של מוצר הופכים לא פחות חשובים מהפונקציונליות, חלק נכבד מההצלחה הכוללת של הפרויקט נופל על כתפי החזית. עבור Full stack, אתה צריך לפחות להכיר טכנולוגיות קצה בסיסיות, כלומר HTML5, CSS3 ו-JavaScript, כמו גם לשלוט במסגרות החזיתיות והספריות העיקריות, כלומר JQuery, LESS, SASS, AngularJS והדברים שהוזכרו קודם לכן. לְהָגִיב.

  4. מאגר מידע.

    מאגרי מידע הם עוד מרכיב חשוב של "המחסנית המלאה", מכיוון שכל מוצר או שירות צריכים לאחסן מידע במקום כלשהו. בהתאם לכך, מפתח Full stack צריך לדעת לפחות כמה ממערכות מסדי הנתונים הפופולריות ביותר וכיצד לעבוד איתן. מערכות מסדי הנתונים הפופולריות ביותר כיום הן MySQL, MongoDB, Redis, Oracle, SQLServer ואחרות. ביניהם, MongoDB הוא הפופולרי ביותר כבסיס נתונים עבור פרויקטים אינטרנטיים שונים, MySQL ו-Oracle הם הפופולריים ביותר עבור ה-backend בתחום המוצרים הארגוניים, ו- Redis משמש לרוב לשמירה במטמון ושיפור ביצועי המערכת.

  5. ניהול וכישורים רכים.

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

  6. ידע בסיסי בעיצוב.

    ולבסוף, ידע בעיצוב, כלומר עיצוב UX/UI, אם כי ברמה בסיסית, נמצא גם בסמכותו של מפתח Full stack.

    אגב, לפניכם מפת דרכים מורכבת שנועדה להציג בצורה גרפית את כל מגוון הטכנולוגיות הנ"ל.

מסקנות וסיכויים

כפי שניתן להסיק מכל האמור לעיל, על מנת להפוך למפתחים מן המניין ואולי אפילו למפתחים מלאים סטנדרטיים, תצטרכו להשקיע הרבה זמן ומאמץ. עם זאת, תרגול קבוע וקבוע מאפשר לך לשלוט בדיסציפלינות הרבה יותר מורכבות לאורך זמן. העיקר להבין לאן ללכת, לעבוד על מיומנויות מפתח ולא להפסיק את הלמידה העצמית. אבל האם אתה צריך לעשות מאמצים כאלה כדי להפוך למפתח Full stack מצליח זו שאלה אחרת. אם אנחנו מדברים על היתרונות והחסרונות של עבודה כזו, החסרונות ברורים - צריך ללמוד הרבה ולהבין הרבה דברים שונים. הפלוסים יותר מסובכים. למפתח Full stack יש בדרך כלל הזדמנות להשפיע יותר על הפרויקט בכללותו, בהשוואה למתכנתים מתמחים במיוחד. עבור הרוב, זה מגביר את שביעות הרצון בעבודה, ושוב, ה-ChSV פורח ומריח. בעוד שהבנת מכלול הטכנולוגיות והמיומנויות הנדרשות לפיתוח מוצלח פותחת לפעמים אפשרויות בלתי מוגבלות באמת. מאמינים כי מפתחי Full stack הופכים לרוב ליזמי IT מצליחים. ובכלל, אדם עם כישורים כאלה בהחלט לא יישאר ללא עבודה , ללא קשר למשברים כלשהם.
הערות
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION