front-end vs back end vs full stack
برنامه نویس Front End
“Front End” به طور کلی به چیزهایی که شما دقیقا بر روی مرورگرتان مشاهده میکنید اشاره میکند که بعضی افراد از آن با نام کلاینت-ساید یا همان “client-side” یاد میکنند . که نحوه ی ارائه ی محتوای رابط کاربری با تمامی جزئیات آن مانند منو ها و … . Front End باید بتواند هم با کاربر و هم با back end ارتباط برقرار کند .
یک توسعه دهنده front end بیشتر اوقات بر درک و یادگیری HTML و CSS و JavaScipt که همان طراحی سایت است تمرکز میکنند . نیازی نیست که آن ها بر روی زیبا کردن عناصر سایت تمرکز کنند ، این کار معمولا به یک طراح محول میشود ، اما اطمینان از اینکه اطلاعات به صورت کار آمد ارائه میشوند و اینکه تعامل کاربران با صفحات وب به میران کافی روان است یا نه به عهده ی اوست .
برنامه نویس Back End
“Back End” به طور کلی به عمق برنامه ای که در سرور اجرا میشود اشاره میکند که بعضی از افراد آن از آن به عنوان سرور-ساید یا همان “server-side” یاد میکنند. بک اند بیشتر روی ارسال اطلاعات صحیح به مرورگر تمرکز میکند . آن تکه ای از یک توده ی یخ شناوری است که زیر سطح آب قرار دارد . چیز های زیادی نیاز دارند که به صورت صحیح ارسال شوند تا front end بتواند آن را نمایش دهد .
ممکن است که از نظر ما گوگل یک موتور جستجوی سرراست باشد . اما آن ها یک ارتش از مهندسین را استخدام کرده اند که مطمئن شوند تمامی قطعاتی که شما آنها را نمیبینید به صورت صحیح کار میکنند با خیر .
برنامه نویس Full Stack
توسعه دهنده های Full Stack هر دو را با هم انجام میدهند . برای یادگیری هر دوی آن ها باید اطلاعات زیادی کسب شود ، یک توسعه دهنده ی Full Stack میتواند به راحتی با هر دو( پایگاه داده و طراحی سایت ) ارتباط برقرار کند . این روز ها روند به گونه ای است که شرکت ها به دنبال توسعه دهنده هایی میگردند که در هر دو زمینه دانش بالایی داشته باشد . پیدا کردن شغل برای توسعه دهنده Full Stack به خاطر انعطاف پذیری هایش بسیار آسان تر است . همچنین یاد گیری را بسیار لذت بخش تر میکند زیرا شما میتوانید به طور کامل اپلیکیشن ها را به زندگیتان وارد کنید .
یک برنامه نویس حرفه ای یا همان فول اِستک دولپر میبایست مهارتهای زیر را دارا باشد:
- مسلط به زبانهای برنامه نویسی پایه
- آشنایی با UX و UI
- کنترل کیفیت محصول
- انواع فناوریها و کتابخانهها
- انواع دیتابیس و مدیریت آنها
- هک و امنیت
- بهینه سازی موتورهای جستجو
- درک نیازهای کاربران در محصول
- آشنایی با سیستم عاملهای مختلف
- آشنایی با کراس پلتفرم
- آشنایی با شبکه
- آشنایی با مدیریت سرور و هاستینگ
- آشنایی با سیستم های مدیریتی و مجازی مانند VM
- آشنایی با سخت افزار
- آشنایی با رابط های برنامه نویسی API ها
- آشنایی با انواع محیط های توسعه
- و موارد دیگر که در یک پروژه از صفر تا صد میتوان به آنها نیاز پیدا کرد
برنامه نویس های Full-Stack Developer به تنهایی میتوانند درتولید و توسعه یک محصول موثر باشند و زمانی که با مشکلی مواجه شوند نمیگویند من آن را بلد نیستم٬ بلکه حتما آن را حل خواهند کرد.