Full Stack developer
Full Stack developer چیست؟ به چه شخصی توسعه دهنده ی full stack می گویند؟
به شخصی که بر روی هر دو سمت برنامه ، یعنی سمت کلاینت و سمت سرور کار کند توسعه دهنده full stack گفته می شود. این شخص میتواند با قسمت های مختلف برنامه یعنی : front end ، back end ، پایگاه داده و بانک اطلاعاتی ، سرور و API کار کند. از این رو نام ” Full Stack” به این اشخاص نسبت داده می شود .
یک توسعه دهنده ی full stack لزوما بر همه ی فناوری ها تسلط ندارد با این حال باید بتواند نیاز های مشتری را برطرف کند و قسمت های کلاینت و سرور را به درستی طراحی کند ، که این امر نیازمند تجربه در زمینه های مختلف هست .
توسعه دهنده های Full Stack چه مهارت هایی دارند ؟
Front-end
این توسعه دهنده ها باید با فناوری های front end مانند HTML ، JavaScript و CSS آشنا باشند و هم چنین دانش کافی برای استفاده از کتابخانه هایی مانند jQuery و Angular داشته باشند.
Back-end
توسعه دهنده ی full stack باید حداقل با یک زبان برنامه نویسی سمت سرور مانند php آشنا باشد.
دیتابیس
آشنایی با فناوری های DBMS یکی دیگر از نیازها توسعه دهنده ی full stack می باشد SQLServer ، Oracle ، MySQL در این زمینه بسیار مورد استفاده قرار می گیرند.
طراحی اولیه:
برای تبدیل شدن به یک توسعه دهنده ی full stack باید با اصول طراحی و UI/UX آشنا باشید .
سرور:
آشنایی با سرورهایی همچون Apache هم یکی از دیگر مهارت ها است .
API:
داشتن دانش کافی از وب سرویس ها و یا API برای توسعه دهنده ی full stack ضروری است .
چرا Full Stack Developer ؟
شاید این سوال براتون پیش بیاد که چرا باید توسعه دهنده full stack باشیم چرا که اگر تمرکز خودمون رو روی یه قسمت مثلا فقط front end بگذاریم ، کیفیت کار ما بیشتر می شود . این طور نیست! اگر ما توسعه دهنده ماهری باشیم نه تنها کیفیت کار پایین نمی آید بلکه باعث میشه که هم در زمان و هم در هزینه ها صرفه جویی کنیم . اگر داخل یک شرکت ، توسعه دهنده full stack باشد ، میتواند به همه ی افراد تیم کمک کند و همینطور باعث می شود که پرسنل کمتری نیاز باشد در نتیجه هزینه های کاهش پیدا میکنند .
Full stack یک عنوان شغلی نیست ! برای اینکه تبدیل به Full Stack Developer شویم ، نیاز داریم که با انواع فناوری ها آَشنا شویم و مهارت های لارم را کسب کنیم .
همه چیز درباره برنامه نویس فول استک یا Full Stack Developer
همانطور که گفتیم، در دنیای طراحی سایت، گروهی از افراد هستند که چیزهایی که کاربر میبیند را طراحی و کدنویسی میکنند و گروهی دیگر هستند که روی پشت صحنه (Back End) متمرکز میشوند و کدهای سمت سرور را مینویسند.
اما یک گروه دیگر نیز از برنامه نویسان سمت وب وجود دارد که مارا به پاسخ سوال Full Stack چیست میرساند:
در دنیای طراحی و برنامه نویسی وب، اشخاصی هستند که هم طراحی وب را انجام میدهند و هم به برنامه نویسی وب مسلط هستند. در واقع این افراد اشخاصی هستند که به تنهایی میتوانند یک پروژهی تقریبا بزرگ را به پایان برسانند. به این افراد برنامه نویس Full Stack میگویند.
عبارت بالا شاید بتواند یک تعریف خیلی ساده برای برنامه نویس Full Stack باشد. برنامه نویس فول استک، همانطور که از واژهی Full پیداست، همه مهارتهای لازم برای انجام یک پروژه را دارد. به این معنا که:
یک برنامه نویس فول استک، هم میتواند ظاهرهای بسیار خوبی را برای سرویس های آنلاین طراحی کند و هم میتواند برنامه نویس سمت سرور خوبی باشد.
یک مثال برای جواب دادن به سوال Full Stack چیست؟
همانطور که در مقالات دیگر مثالهای متعددی زدیم، وقتی میخوایم یک سرویس آنلاین را طراحی و برنامه نویسی کنیم، حداقل به ۲ فرد نیاز داریم:
- یک شخص که بتواند ظاهر سایت را با تکنولوژی هایی مثل HTML, CSS, Javascript و… طراحی کند.
- و شخص دومی که بتواند کدهای بک اند و سمت سرور را با زبانی مثل PHP بنویسد و به پایگاه داده (دیتابیس) متصل شود و اطلاعات را از دیتابیس بخواند و اطلاعات جدید را وارد آن کند.
همانطور که گفتیم، هرکدام از این افراد، یک تخصص دارند و برای ساخت یک سایت، به ۲ فرد نیاز داریم.
اما در دنیای طراحی و برنامه نویسی وب اشخاصی هستند که به دلیل تجربه بالا در هرکدام از قسمتهای Front End و Back End، میتوانند هر دو بخش ظاهر و سرور یک وبسایت را طراحی و برنامه نویسی کنند. برنامه نویسان Full Stack کسانی هستند که به تنهایی برای ساخت یک سرویس آنلاین خوب، کافی هستند و میتوانند یک نفره یک پروژهی تقریبا بزرگ را مدیریت کنند.
آیا واقعا میتوان یک برنامه نویس فول استک واقعی بود؟
اما در پاسخ به سوال Full Stack چیست باید حواسمان به این نکته باشد که اگر مثلا ما میتوانیم هم با HTML-CSS کد بزنیم و هم PHP میدانیم، به این معنا نیست که از الان میتوانیم به خودمان یک Full Stack بگوییم.
یک برنامه نویس Full Stack شخصی است که مدت زیادی درگیر طراحی وب بوده است و بعد از آن نیز مدت زیادی خود را درگیر برنامه نویسی وب با یک زبان برنامه نویسی سمت سرور کرده است و به تمام پیچ و خم ها و نکات هر ۲ دنیای طراحی سایت واقف است.
معمولی کسی میتواند یک برنامه نویس Full Stack باشد که چندین سال سابقهی کار در هر ۲ زمینهی طراحی وب و برنامه نویسی وب را داشته باشد و به این راحتیها نمیتوان در همان چند ماه ابتدای برنامه نویس بودمان، به خودمان یک Full Stack Developer بگوییم.
علاوه بر این، در پاسخ به سوال Full Stack چیست ، باید حواسمان به این نکته هم باشد:
یک برنامه نویس Full Stack علاوه از تسلط بر طراحی و برنامه نویسی وب، باید بتواند یک پیدا کنندهی مشکل حرفهای (Debuger) باشد. همچنین باید توانایی بسیار خوبی در مدیریت سرور داشته باشد و همچنین از مدیریت پروژه نیز اندکی بداند. صرفا دانستن HTML,CSS,PHP, MySQL نمیتواند شما را یک برنامه نویس Full Stack کند!
آیا Full Stack Developer ها همه کارِ و هیچ کارِ هستند؟
تا الان به یک پاسخ خوبی دربارهی سوال فول استک چیست رسیدیم. اما الان ممکن است این سوال برایتان پیش بیاید:
آیا میتوان هم طراحی وب را انجام داد و هم به برنامه نویسی آن مسلط شد و در کنار آن کلی مهارت دیگر مثل کار و مدیریت سرور، مدیریت پروژه و… را نیز دارا بود؟
و شاید با خودتان فکر کنید که کسی که همهی این چیزها را میداند، اصطلاحا اقیانوسی به عمق ۱ سانتی متر است و دربارهی هرکدام از این مباحث یک دانش سطحی دارد.
Full Stack کارها با تجربه هستند
این نکتهی خیلی مهمی است که حتما باید آنرا در نظر بگیریم و حواسمان به آن باشد. برنامه نویسان Full Stack همانطور که گفتیم افراد بسیار با تجربه ای هستند و در هرکدام از زمینه های طراحی وب و برنامه نویسی وب، حداقل مدت ها (شاید چندین سال) فعالیت داشته اند.
بسیار از طراحان و برنامه نویسان وب که حرفهای هستند و عمق داستان را میدانند، از اینکه خودشان را یک برنامه نویس Full Stack بخوانند میترسند و از عنوان کردن اینکه «من یک برنامه نویس Full Stack هستم» ترس دارند. زیرا تبدیل شدن به یک برنامه نویس Full Stack، کاری زمان بر است و حاصل تجربیات چندین سالهی شما خواهد بود.
پس به راحتی و صرفا به دلیل دانستن HTML, CSS, Javascript, PHP, MySQL و… نمیتوانید به خودتان یک برنامه نویس فول استک بگویید. ماجرا خیلی پیچیده تر از این حرفهاست
اما نهایتا …
در پاسخ به سوال Full Stack چیست ، باید این را بپذیریم که نهایتا هر فرد، بالاخره در یکی از زمینههای طراحی وب یا برنامه نویسی وب، قوی تر از آن یکی است.
من دوستان برنامه نویس Full Stack زیادی دارم و با برنامه نویسان Full Stack بسیار زیادی نیز همکاری داشته ام. اما آنها نهایتا در یکی از زمینهها قوی تر بودهاند. به این معنا که:
- یا طراحان وب بهتری بودند، یعنی قسمت هنری مغزشان فعالتر بود و میتوانستند رابط های کاربری (UI) بسیار حرفهای و چشم نوازی طراحی کنند.
- یا برنامه نویسان سمت سرور فوق العادهای بودند و بخش منطقی مغزشان فعال تر بوده است و میتوانستند منطقها و الگوریتم های بسیار پیچیده و کدهایی بسیار تمیز بنویسند.
یعنی هرچقدر فرد هم یک Full Stack Developer باشد، باز هم در یکی از زمینههای طراحی وب یا برنامه نویسی وب قوی تر است و یکی از نیم کرههای مغز او بهتر کار میکند. برای مثال ممکن است یک فرد یک برنامه نویس Full Stack باشد و هم طراحی وب فوق العاده ای انجام دهد و هم برنامه نویس سمت سرور بسیار خوبی باشد، اما نهایتا خود آن فرد هم میداند که در یکی از این زمینهها حرفهای تر و بهتر است.
مهارتهای یک برنامه نویس فول استک (Full Stack)
در پاسخ به سوال Full Stack چیست ، خیلی خوب است که بدانیم یک برنامه نویس فول استک، چه مهارتهایی باید داشته باشد. در ادامه یک لیست بسیار ساده را میبینیم که یک برنامه نویس Full Stack باید به آنها تسلط کامل داشته باشد و نیز تجربهی بسیار خوبی در کار با هرکدام از آنها داشته باشد تا بتواند یک Full Stack Developer واقعی باشد.
- طراحی وب
- طراحی رابط کاربری
- برنامه نویسی وب
- کار با پایگاه داده
- هاست و سرور
- توانایی کار با API ها
- آشنایی با Version Controll System ها
- توانایی مدیریت پروژههای نرم افزاری