برو به محتوای اصلی
سال گذشته پرسیده شده

چطور میشه به یک برنامه‌نویس Full_stack تبدیل شد؟

من کجام؟ اینجا کجاست؟

در جوابکو می‌تونید در مورد هر موضوعی سوال کنید، به سوالای بقیه جواب بدید و تجربه‌تون رو به اشتراک بگذارید!

1. توسعه‌دهنده فول استک به چه کسی گفته می‌شود؟

برنامه نویس full stack

به بیان ساده دولوپر فول استک کسی است که از مهارت‌های مختلفی برخوردار بوده و از آنها برای توسعه محصول به صورت مستقل بهره می‌برد. یکی از پاسخ‌هایی که این مفهوم را به خوبی توضیح داده و در سایت Quora بازخورد مناسبی داشته بدین ترتیب است:

توسعه‌دهنده فول استک مهندسی است که توانایی انجام امور مربوط به دیتابیس، سرور، مهندسی سیستم و کلاینت را دارد. نیازهای مشتریان بسته به نوع پروژه شامل مواردی نظیر mobile stack application stack و native application stack است.

در واقع عبارت فول استک به یک سری از فناوری‌های مورد نیاز برای تکمیل یک پروژه اشاره دارد. استک یا پشته نیز شامل مجموعه‌ای از زیر ماژول‌های نرم‌افزاری است که با کنار هم قرار گرفتن آنها نتیجه مورد نظر حاصل می‌شود.

۲. چرا بحث و جدل‌های بسیاری در مورد توسعه‌دهنده فول استک وجود دارد؟

همانطور که بالاتر ذکر شد، بحث در برابر توسعه‌دهنده فول استک در واقع به تنوع مهارت‌ها و سطح آنها مربوط می‌شود. در کنفرانس OSCON یک مهندس فیسبوک تاکید کرد که این شرکت تنها توسعه‌دهنده فول استک استخدام می‌کند و این مسئله نشان‌دهنده افزایش بحث‌ها درباره نقاط قوت و ضعف توسعه‌دهنده فول استک یا همه کاره است.
از مزایای توسعه‌دهنده فول استک بودن می‌توان به امکان توسعه طرح‌های اولیه در مدتی زمانی کوتاه اشاره کرد که در نتیجه مهارت‌های متنوع حاصل می‌شود. این افراد به لطف توانایی‌های مختلف از زاویه دید بازتر و ذهنیتی فعال‌تر بهره می‌برند. علاوه بر این حساسیت آنها نسبت به محصولات و تکنیک‌ها افزایش یافته و توانایی اظهار نظر در موارد مختلف را خواهند داشت.
توسعه‌دهنده‌های فول استک معمولا به تمامی اعضای تیم کمک کرده و زمان و هزینه‌های پروژه را کاهش می‌دهند. برخورداری از چنین ویژگی‌هایی باعث می‌شود که این دسته از توسعه‌دهندگان به عنوان کارآفرین یا همکار فنی در استارتاپ‌ها مشغول به کار شوند.
این عنوان شغلی در کنار مزایای بسیار معیابی را نیز به همراه دارد. بسیاری از توسعه‌دهندگان فول استک وقت خود را صرف فراگیری مباحث متنوعی کرده‌اند و از اینرو در یک زمینه خاص تسلط ندارند. برخی از آنها که مدعی همه کاره بودن هستند در واقع تنها اطلاعات اندکی از شاخه‌های مختلف دارند. برای مثال احتمالا در مورد روش بهینه‌سازی ساختار برای توسعه ماژولار اطلاعات چندانی نداشته باشند.

۳. چطور یک توسعه‌دهنده فول استک شویم؟

یک توسعه‌دهنده همه کاره واقعی باید علاوه بر دانش کاربردی از تمامی قابلیت‌های لازم برای توسعه اپلیکیشن هم برخوردار باشد که شامل موارد زیر می‌شود:

1. زبان‌های برنامه‌نویسی

چطور میشه به یک برنامه‌نویس Full_stack تبدیل شد؟

توسعه‌دهنده فول استک باید در چندین زبان برنامه‌نویسی از قبیل جاوا، PHP، سی شارپ، پایتون، روبی،پرل و غیره تخصص داشته باشد چرا که بخش اعظمی از فرایندهای کسب و کار فناوری به این زبان‌ها نگارش می‌شوند. شاید نیازی به تسلط در تمامی زمینه‌ها نباشد اما باید با گرامر زبان، نحوه ساختاربندی، طراحی، پیاده‌سازی و آزمایش پروژه بر اساس یک یا چند زبان آشنایی کامل داشته باشید. برای مثال اگر جاوا را انتخاب کنید، حتما باید به طراحی و توسعه شی‌گرا، الگوهای طراحی، عناصر توسعه مبتنی بر J2EE و غیره تسلط داشته باشید.

۲. استفاده از فریمورک‌های توسعه و کتابخانه اشخاص دیگر

زبان‌‌های برنامه‌نویسی محبوب معمولاً با یک فریمورک خوب همراه هستند که شامل مواردی از قبیل JAVA Spring، MyBatis، Hibernate، Python Django، PHP thinkphp, yin و nodeJs express و غیره است.

۳. فناوری Front-end

فناوری ‌های Front-end در توسعه پروژه‌‌ها و محصولات جدید اهمیت روز افزونی پیدا کرده ‌اند. علاوه بر ویژگی‌های محصول، تجربه کاربری نیز یکی از معیارهای موفقیت یک خروجی محسوب می‌شود. همه این‌ موارد به پیاده ‌سازی مناسب فناوری front-end بستگی دارد، بنابراین باید به بعضی فناوری‌های front-end مثل HTML5، CSS3 و جاوااسکریپت مسلط بوده و با فریمورک‌‌های Front-end یا کتابخانه‌های شخص ثالث مانند JQuery، LESS، SASS، AngularJS یا REACT نیز آشنایی داشته باشید.

۴. دیتابیس و حافظه پنهان (کَش)

هر پروژه یا محصولی برای ذخیره داده‌ها به یک دیتابیس نیاز دارد. به‌ عنوان یک توسعه‌دهنده فول استک باید حداقل یک یا دو دیتابیس داشته و نحوه تعامل با آنها را بدانید. در حال حاضر محبوب‌ترین پایگاه داده‌ها شامل MySQL، MongoDB، Redis، Oracle و SQL Server هستند MongoDB به عنوان یک دیتابیس سند محور، به ‌طور گسترده در محصولات اینترنتی استفاده می‌شود. در پروژه‌های بزرگتر بهتر است از MySQL یا دیتابیس تجاری Oracle به عنوان پایگاه داده back-end استفاده شود. دیتابیس‌های مموری مانند Redis را نیز می‌‌توان برای ذخیره‌سازی اطلاعات در حافظه پنهان (کش کردن) و بهبود عملکرد سیستم استفاده کرد.

۵. توانایی طراحی در سطح پایه

در اغلب مقالات و بحث‌های پیرامون توسعه دهنده فول استک به الزامات طراحی پرداخته نشده است اما مهارت طراحی از اهمیت زیادی برخوردار است و این دست افراد باید با اصول و توانایی‌های طراحی پایه‌ای نمونه اولیه، طراحی رابط کاربری و UX آشنایی داشته باشند.

چطور میشه به یک برنامه‌نویس Full_stack تبدیل شد؟

۶. قابلیت‌های فردی لازم برای تبدیل شدن به توسعه‌دهنده فول استک

• تفکر جهانی
• مهارت‌‌های ارتباطی مناسب
• خلاقیت
• کنجکاوی
• مهارت‌‌های مدیریت زمان

جمع‌بندی

بر اساس قانون ۱۰ هزار ساعت گلادول، برای تسلط بر دانش Front-end، Back-end، علم مشتری محوری و تبدیل شدن به یک توسعه‌‌دهنده همه‌ کاره حدود ۱۰ سال زمان لازم است. بنابراین برنامه‌نویس فول استک شدن کاری نیست که بتوان یک ‌شبه انجام داد و تنها راه شما برای رسیدن به این مرحله ایجاد زیرساخت فنی لازم، تقویت مهارت‌‌های اصلی و یادگیری مداوم برای روبرو شدن با چالش‌‌های بیشتر است.