"یک توسعه دهنده فول استک یک جادوگر فنی است که همه زبان ها و فناوری های برنامه نویسی را می داند و همچنین به زیبایی آواز می خواند و می رقصد."
یک توسعه دهنده Full Stack کیست؟
بنابراین، توسعه دهنده Full Stack به معنای سنتی چیست؟ متداولترین تعریف به ما میگوید که این متخصصی است که مسئول توسعه همه بخشهای عملکرد سیستم، از جمله سمت کاربر محصول (frontend) و کد داخلی در حال اجرا در سرورهای توزیعشده (backend) است. به عنوان یک قاعده، اگر عبارت "فول استک" در یک آگهی برای یک موقعیت خالی باز ظاهر شود، به این معنی است که توسعه دهنده باید دانش و مهارت در توسعه باطن و فرانت اند را به طور همزمان داشته باشد. با این حال، بسیاری از شرکتها پا را فراتر میگذارند و منظور آنها از «توسعهدهنده فول استک» یک سرباز جهانی است که نه تنها قادر به توسعه تمام اجزای یک محصول نرمافزاری است، بلکه میتواند همه چیزهای دیگر، از مدیریت محصول گرفته تا راهاندازی عملیات را نیز به عهده بگیرد. سیستم بر روی سرورها و تعمیر چاپگر اداری. در واقع، در بیشتر موارد، یک توسعهدهنده فول استک لازم است که سطح دانش مناسبی از مجموعه فناوریهایی که برای تکمیل موفقیتآمیز پروژه ضروری هستند، داشته باشد. بنابراین، در این مورد، "پشته" به معنای مجموعه ای از ماژول ها و اجزای نرم افزار است که با هم ترکیب شده اند تا به عملکرد مورد نیاز دست یابند.چرا این موضوع اینقدر بحث برانگیز است؟
بحث در مورد اینکه واقعاً یک توسعه دهنده Full Stack باید چه باشد، و اینکه آیا چنین جانوری حتی به مقدار کافی برای جدا کردن چنین متخصصانی در یک گروه جداگانه وجود دارد، مدت زیادی است که ادامه دارد. همانطور که برنامه نویسان باتجربه خاطرنشان می کنند، پس از اینکه نمایندگان فیس بوک، در طلوع تشکیل آن در دهه 2000، در طی سخنرانی در یکی از کنفرانس های تخصصی توسعه دهندگان، اظهار داشتند که آنها فقط و منحصراً توسعه دهندگان Full Stack را استخدام می کنند، با قدرت دوباره شعله ور شد. "اگر تعاریف سنتی یک توسعه دهنده Full Stack شما را گیج می کند، پس همه چیز درست است. این به این دلیل است که یک توسعه دهنده Full Stack چیزی زودگذر است. هیچ مدل علمی وجود ندارد که توصیف کند "پول پشته" چیست. هیچ راه روشنی برای اندازه گیری سطح یک توسعه دهنده فول استک در مقایسه با سایر توسعه دهندگان مشابه وجود ندارد. تنها اتفاق نظر در مورد Full Stack این است که هیچ کس در مورد یک تعریف واحد از ماهیت این پدیده موافق نیست. به همین دلیل است که هر چیزی که در مورد این موضوع می خوانید چیزی بیش از یک نظر ذهنی نیست.»چهار ستون توسعه کامل پشته
با این حال، اگرچه بسیاری از کارشناسان استدلال می کنند که یک توسعه دهنده Full Stack یک مفهوم بحث برانگیز است، جای خالی کمتری وجود ندارد، بلکه برعکس. بنابراین، بیایید به دانشی بپردازیم که به عنوان یک قاعده، برای درخواست برای این نوع موقعیت باید در چه زمینه هایی داشته باشید.-
توسعه Frontend.
به طور معمول، front-end به فناوری های توسعه وب و زبان های برنامه نویسی مانند HTML، CSS و JavaScript اشاره دارد. همچنین شامل چارچوبهای جاوا اسکریپت مانند React و سایر فناوریهای مرتبط با سمت «مشتری» محصول است.
از کجا شروع به مطالعه کنیم:
میتوانید با فریمورکهای Create React App یا Gatsby شروع کنید ، که با آن میتوانید یک برنامه کامل React ایجاد کنید. ایده خوبی است که پیش پردازنده های CSS، ابزارهای اولیه CSS مانند CSS-in-JS و ابزارهایی مانند Sass را یاد بگیرید .
-
توسعه Backend.
Backend شامل تمام کدهایی است که روی سرورها اجرا می شود، از جمله برنامه ها و API هایی که سایت را به کار می اندازند. زبان های برنامه نویسی اصلی برای بک اند جاوا، پایتون، روبی و غیره هستند. جدای از این، توسعه Backend شامل مدیریت پایگاه داده نیز می شود که به دانش SQL نیاز دارد.
از کجا شروع به مطالعه کنیم:
قبل از هر چیز، توصیه می شود با تعمیق دانش خود در مورد جاوا اسکریپت، به عنوان نوعی پل ارتباطی بین فرانت اند و باطن در بسیاری از موارد، شروع کنید. به ویژه، ایده خوبی است که NodeJS را یاد بگیرید ، یک پلتفرم نرم افزاری مبتنی بر موتور V8 که جاوا اسکریپت را از یک زبان بسیار تخصصی به یک زبان همه منظوره تبدیل می کند.
Также для того, чтобы иметь максимально полную квалификацию в бэкенде, рекомендуется, помимо Java, постепенно осваивать такие языки программирования, How Python (в первую очередь), PHP и Ruby.
-
Проджект-менеджмент.
От проджект-менеджера, если вкратце, требуется управлять проектом, что включает множество задач, среди которых взаимодействие с клиентами, коллегами, сторонними подрядчиками и т.д. Словом все, что нужно для успешной реализации проекта. Сюда также входит планирование, принятие стратегических решений по работе над продуктом и т.д.
С чего начать изучение:
Для успешного развития в качестве проджект-менеджера не помешает изучить наиболее популярные инструменты в этой сфере. Основными можно назвать: GanttPRO (сервис для планирования и управления проектами с помощью диаграммы Ганта), Jira Software (популярная система для планирования и отслеживания agile-проектов), LiquidPlanner (инструмент для проджект-менеджмента в реальном времени), Basecamp (еще одна система управления проектами и совместной работы) и т.д.
-
DevOps.
Ну и, наконец, четвертым столпом фуллстек-девелопмента является знание DevOps. Обязанности DevOps-а могут сильно отличаться в зависимости от проекта, но How правило к ним относится все, что касается запуска программного codeа в продакшн, включая, например, настройку serverов, на которых будет функционировать приложение, и обеспечение слаженной работы специалистов команды вместе с техническими решениями, которые они используют.
С чего начать изучение:
Сфера DevOps также включает в себя довольно много всяких инструментов. Вот те, с изучения которых имеет смысл начинать: инструменты управления исходным codeом (GitLab, GitHub, Bitbucket), CI/CD-инструменты (Ansible, Jenkins, Chef), тулзы для коммуникации и коллаборации (Slack и Microsoft Teams), а также сервисы облачных вычислений и хранения данных (AWS, Azure и GCP).
Помимо вышеперечисленных четырех базовых составляющих “полного стека,” он не был бы действительно полным, если бы не включал в себя также мобильную разработку, базы данных и QA автоматизацию — истинный Full Stack разработчик разбирается и в этих технологиях тоже.
Зарплаты Full Stack разработчиков
در مورد دستمزد توسعه دهندگان فول استک، آنها به طور متوسط از همکارانشان که تخصص خاصی در توسعه دارند، خیلی بالاتر نیست. طبق PayScale ، در ایالات متحده، میانگین دستمزد توسعه دهندگان فول استک تقریباً 75 هزار دلار در سال است . در عین حال، حداقل حقوق (برای برنامه نویسان در موقعیت های فول استک) حدود 46 هزار دلار در سال و حداکثر آن حدود 114 هزار دلار در سال است. در مورد کشورهای سابق اتحاد جماهیر شوروی، در اوکراین، طبق منبع Work.ua ، میانگین حقوق توسعه دهندگان فول استک 35 هزار گریونا (حدود 1300 دلار) در ماه است، در حالی که در کیف 45 هزار (حدود 1650 دلار) است. در روسیه، طبق این داده ها، حقوق توسعه دهندگان فول استک به طور متوسط از 40 هزار روبل (530 دلار) تا 150 هزار روبل متغیر است. (2000 دلار). اگر در مورد میانگین کل جهان صحبت کنیم، متخصصانی که در موقعیتی که امروز در نظر داریم کار می کنند حدود 45 هزار دلار در سال درآمد دارند. و در اروپا، توسعه دهندگان فول استک بالاترین حقوق را در دانمارک و سوئد دریافت می کنند.چگونه یک توسعه دهنده Full Stack شویم؟
اکنون به طور خلاصه به مهارتها، تواناییها و فنآوریهایی میپردازیم که باید به آنها تسلط داشته باشید تا با اطمینان کامل و بدون اشارهای به کنایه، خود را یک توسعهدهنده فول استک بنامید.-
زبانهای برنامه نویسی.
یک توسعه دهنده فول استک باید به چندین زبان برنامه نویسی مسلط باشد. اول از همه، البته، موارد اصلی وجود دارد: جاوا، پی اچ پی، سی شارپ، پایتون، روبی، پرل و غیره. در یک کلام، آن دسته از محبوب ترین زبان هایی که به احتمال زیاد فرآیندهای تجاری اصلی محصول در آنها نوشته می شود. البته، یادگیری کامل طیف وسیعی از چنین زبان هایی بسیار دشوار خواهد بود. اما شما باید حداقل بر گرامر زبانی که نقش مهمی در توسعه دارد تسلط داشته باشید و همچنین دانش خوبی در مورد نحوه ساختار، طراحی، پیاده سازی و آزمایش یک پروژه بر اساس یک یا چند زبان داشته باشید.
-
چارچوب ها و کتابخانه های کد.
خوب، دانش خوب زبان های برنامه نویسی اصلی در بیشتر موارد شامل توانایی استفاده از چارچوب ها و کتابخانه های محبوب مانند Java Spring، Hibernate، Python Django، PHP thinkphp، MyBatis و غیره است.
-
فن آوری های فرانت اند
اهمیت دانش فناوری های فرانت اند برای توسعه دهندگان فول استک نیز بسیار زیاد است و با گذشت زمان افزایش می یابد. امروزه، زمانی که راحتی و «لفشبندی» کلی یک محصول کمتر از عملکرد آن اهمیت پیدا نمیکند، بخش قابلتوجهی از موفقیت کلی پروژه بر دوش بخش جلویی قرار میگیرد. برای Full stack، حداقل باید فنآوریهای فرانتاند اولیه، یعنی HTML5، CSS3 و جاوا اسکریپت را بشناسید، و همچنین بر فریمورکها و کتابخانههای فرانتاند اصلی، یعنی JQuery، LESS، SASS، AngularJS و مواردی که قبلا ذکر شد، تسلط داشته باشید. واکنش نشان دهید.
-
پایگاه داده.
پایگاه داده یکی دیگر از اجزای مهم "پشته کامل" است، زیرا هر محصول یا خدماتی نیاز به ذخیره اطلاعات در جایی دارد. بر این اساس، یک توسعه دهنده فول استک باید حداقل چند مورد از محبوب ترین سیستم های پایگاه داده و نحوه کار با آنها را بداند. محبوب ترین سیستم های پایگاه داده امروزه MySQL، MongoDB، Redis، Oracle، SQLServer و غیره هستند. در میان آنها، MongoDB به عنوان پایگاه داده برای پروژه های مختلف اینترنتی، MySQL و Oracle بیشترین محبوبیت را برای backend در زمینه محصولات سازمانی دارند، و Redis اغلب برای ذخیره سازی و بهبود عملکرد سیستم استفاده می شود.
-
مدیریت و مهارت های نرم.
اما برای دستیابی به نتایج خوب در این زمینه، یادگیری ساده برخی از تکنولوژی ها یا زبان های برنامه نویسی کافی نخواهد بود. مدیریت پروژه موفق شامل مولفه های زیادی از جمله مدیریت زمان، برنامه ریزی، مهارت های ارتباطی خوب و موارد دیگر است. و همه اینها عمدتاً از طریق تمرین به دست می آید.
-
دانش اولیه طراحی.
و در نهایت، دانش طراحی، یعنی طراحی UX/UI، هر چند در سطح پایه، در صلاحیت یک توسعه دهنده کامل استک است.
به هر حال، در اینجا یک نقشه راه به خوبی ترکیب شده است که برای نمایش گرافیکی همه انواع فناوری های فوق طراحی شده است.
GO TO FULL VERSION