Full Stack Developer به چه فردی گفته می شود
full stack developer چیست ؟
اگر در دنیای برنامه نویسی هستید حتما متوجه هستید که تمامی برنامه نویسان در دنیای وب به دو بخش تقسیم می شوند برنامه نویسانی که جلوه بصری و زیبایی سایت را بر اساس استاندارد های روز دیزاین میکنند و با توجه به تجربه های کاربری سعی میکنند که ارتباط کاربر با سایت را راحت تر کند . به این کدنویس ها برنامه نویس Front End می گویند در واقع این برنامه نویس ها تعیین میکنند که هریک المان ها در کجای صفحه قرار بگیرد و رنگ بندی سایت چگونه باشد . همچنین باید بتواند صفحات وب را واکنش گرا یا Responsive طراحی کند .
ولی طراحی یک وب اپلیکیشن (WebApplication) و یا سایت فقط نیازمند طراحی و ظاهر نیست . خیلی اتفاقات باید دور از چشم کاربر روی دهد . مانند ثبت نام یوزر ها , پنل های مدیریتی سایت , کانفیگ و راه اندازی سرور و یا برنامه ریزی پایگاه داده جزء جدانشدنی سایت ها می باشند . این قسمت توسط برنامه نویسی BackEnd طراحی می شود . و در نهایت یک پروژه از صفر تا صد انجام می شود
در این میان نیز برنامه نویسانی وجود دارند که می توانند تمامی عملیات و کارهای BackEnd و FrontEnd را به تنهایی انجام دهند . البته به این معنا نیست که full stack developer باید تمامی زبان های برنامه نویسی وب را در بر داشته باشد ولی باید بتواند کد هارا تحلیل کند و روند کار کد هارا درک کند و یک دانش کلی و پایه درباره دنیای IT داشته باشد ولی میتوان گفت باید به 70 درصد زبان های برنامه نویسی وب مسلط باشند . در ادامه توضیح خواهیم داد که چگونه میتوان یک Full Stack Developer شد و یک full stack developer چه زبان های برنامه نویسی را مسلط باشد .
واقعیت امر آن است که کسب مهارت -آن هم در سطح بالا- در هر یک از موارد فوق اگر نگوییم غیرممکن است، کار بسیار دشواری خواهد بود و اگر چنین تعریفی را برای یک دولوپر فولاستک در نظر بگیریم، بدون اغراق بایستی گفت که در دنیای برنامهنویسان تعداد اندکی از افراد خواهند بود که بتوانند چنین لقبی را به خود اختصاص دهند
برای این که یک full stack developer شوید چه چیز هایی را باید یاد بگیرید ؟
HTML-Css
نه تنها برای این کار بلکه شما برای کار در دنیای وب اولین زبان اسکریپتی که باید فرا بگیرید Html , css می باشد این دوزبان مفهمو بلاک بندی و مقدمه قرار گیری المان ها در صفحه مرور گر را به شما آموزش می دهد شما میتوانید تمامی المان های خود را توسط HTML به وب سایت خود اصافه کنید و با استفاده از Css شروع به زیبا سازی آن کنید البته پس از تسلط شما میتوانید از لایبرری های Css مانند Bootstrap برای واکنش گرا کردن سایت استفاده کنید .
جاوا اسکریپت – JavaScript
اگر اخبار تکنولوژی را دنبال کنید حتما باخبر شده اید که JavaScript در حال تسخیر دنیای برنامه نویسی است و تا زمانی نه چندان دور می توان تمامی کار های دنیای وب را با زبان جاوا اسکریپت انجام داد . Framework هایی مانند Nodejs , Angular.js و لایبرری هایی مانند JQuary کاربری این زبان را بسیار افزایش داده است . زبان JavaScript از سال 2016 به بعد رشد بسیار بالایی داشته است و توانسته محبوبیت خود را میان دیگر زبان های برنامه نویسی وب چندین برابر کند . درو اقع امروزه هیچ کس از زبان جاوا اسکریپت خام به تنهایی استفاده نمی کند و شما هم سعی کنید با انواع فریم ورک ها و لایبرری ها آشنا باشید . و سعی کنید طرز کار کد هارا درک کنید و حفظ نکنید .
زبان های برنامه نویسی BackEnd
پس از یادگیری زبان هایی که برای دیزان صفحات وب استفاده می شود شما باید یک زبان برای برنامه نویسی بک اند را انتخاب کنید و به منطق برنامه نویسی بیشتر نزدیک شوید . شما باید بتوانید کار با دیتابیش ها را یاد بگیرید و بتوانید تا حدی کم امنیت سایت را تامین کنید . شما میتوانید PHP , ASP , nodejs , و یا پایتون را بسته به علاقه خود انتخاب کنید .
زمانی که شما یک وب اپلیکیشن را طراحی میکنید باید بتوانید داده های مربوط به آن را مدیریت ودر یک بانک اطلاعاتی نگهداری کنید . از این رو آشنایی شما با Sql و پایگاه داده هایی مانند Mongodb که خیلی محبوب شده اند را یاد بگیرید .
آشنایی با سیستم های کنترل پروژه Git
گیت یکی از سیستم های کنترل پروژه و یا همان Version Controler هستش که برای اکثر برنامه نویسان یادگیریش مزیت مسوب میشه و به شما کمک میکنه که بتونید از چند جای دیگه روی پروژتون کار کنید و یا روی یک پروژه به صورت چند نفره فعالیت کنید می توانید جزیات درباره گیت در گیت چیست و چگونه آن را نصب کنیم بخوانید .
یک برنامه نویس فول استک از کلمه های نمی شود و نمیتوانم استفاده نمی کند و تمامی تلاش خود را می کند که بتواند نیاز های یک پروژه را برآورد کند و طبیعتا از سرچ کردن قافل نمی شود .
در زمان های قبل شاید گذاشتن اسم Full Stack Developer بر روی یک شخص کار راحت و ساده ای بود ولی امروزه با وارد شدن بحث های هوش مصنوعی و BigData و گسترش روز افزون اطلاعات ودنیای IT دستیابی به این حجم اطاعات و داده بسیار سخت و نیازمند زمان و تجربه است البته باز هم بستیگ به میزان تلاش شما در این راه دارد .
پس با توجه به توضیحات بالا به طور کلی یک دولوپر فول استک باید بتواند به مفاهیم زیر تسلط داشته باشد :
– سرور، شبکه و هاستینگ
– انواع دیتابیسها و مدیریت آنها
– کار با APIهای مختلف
– آشنایی با UI و UX
– کنترل کیفیت
– هک و امنیت
– درک نیازهای جاری و آتی کاربران
– بهینهسازی برای موتورهای جستجو SEO
– آشنایی با فناوریهای ورژن کنتلر مثل GIT و SVN
– ماشینهای مجازی مثل VirtualBox و Vagrant
– وبسروهایی مثل آپاچی و انجینایکس
– لینوکس و اسکریپتنویسی Shell
– آشنایی با مفهوم Agile– تکنولوژیهای مرتبط با ابزارهای هوشمند مثل موبایل و تبلت و بسیاری چیزهای دیگر
با نگاهی به چارت بالا می توان گفت یاد گیری تمامی تخصص های بالا برای یک نفر کاملا سخت است و شاید نشدنی چون هرکدام از مبحث های بالا یک تخصص محسوب می شود از این رو ما می توانیم دولوپر Full-stack را این گونه تعریف می کنیم .<<دولوپر فول استک کسی است که درک کاملی از توضیحات ذکر شده داشته باشد و بتواند یک برنامه را از صفر تا صد با توجه به نیاز بازار و مشتری کدنویسی کند >>
البته امروزه همه شرکت ها و استارت آپ ها به دنبال یک شخص فول استک و برنامه نویس همه کاره میگردند و پس از گذشت زمان و افزایش نیاز ها و کاهش راندمان کاری تصمیمی میگیرند که کار هارا دسته بندی کنند و هر کار را به متخصص آن بخش بدهند تا کارها تخصصی تر پیش بروند .
نظر شما درباره برنامه نویس Full Stack چیست ؟ آیا شما تعریف بهتری برای آن دارید ؟ نظرات خود را با ما در دیدگاه ها در میان بگذارید 🙂
۲ نظرات
سلام
ممنون از محتوای خوبی که منتشر میکنید.
عالی بود مطلبتون خیلی مختصر و مفید بود بازم ممنون.ازین چیزا بازم بزارید