از توسعه‌دهنده‌ی معمولی تا Full Stack Developer – چرا باید استک خود را پر کنید؟

از توسعه‌دهنده‌ی معمولی تا Full Stack Developer – چرا باید استک خود را پر کنید؟

اکثر توسعه‌دهندگان(developers) خودشان‌را به یکی از دسته‌‌های front-end developer یا back-end developer محدود می‌کنند.

امّا هرچقدر نرم‌افزارها پیچیده‌تر می‌شوند, این دسته‌بندی‌ها هم اثرگذاری خودرا بیشتر از دست می‌دهند. دیگر روزگاری که بخش‌های سمت کاربر و سمت سرور را می‌شد از هم جدا کرد و منطق برنامه‌ها تنها در back-end برنامه خلاصه می‌شد گذشته است.

الان دیگر دور, دور توسعه‌دهندگان full stack است. امّا قبل از ادامه دادن دلایل و مزیت‌های تبدیل شدن به یک توسعه‌دهنده‌ی full stack, بهتر است ببینیم که به چه کسی توسعه‌دهنده‌ی full stack می‌گویند.

توسعه‌دهندگی full stack چیست؟

Full stack  بودن به این معنی است که شما در تمامی سطوح سیستم مشارکت کنید. یک full stack developer تصویر کلّی‌را, فارغ از اینکه زیرسیستم‌ها چگونه جدا شده‌اند می‌فهمد.

برای مثال شما امروز روی UI صفحه‌ی فرود کار می‌کنید, روز بعد API های لازم‌را در بخش سمت سرور ایجاد می‌کنید و روز بعدش هم به سراغ دیتابیس می‌روید.

البته بهتر است همینجا بگویم که توسعه‌ی full stack تنها محدود به وب نمی‌شود و در همه‌ی سیستم‌ها می‌تواند اجرایی شود.

چرا بعضی‌ها با full stack بودن مخالف‌اند؟

چون دیدگاه اشتباهی نسبت به فرآیند توسعه دارند. خیلی‌ها فکر می‌کنند شما باید یک بخش خیلی خاص‌را دنبال کنید و در آن بخش تبدیل به یک حرفه‌ای تمام عیار شوید.

آن‌ها فکر می‌کنند که شما لزوماً باید همواره به آخرین تحولات حوزه‌ی کاریتان اشراف داشته باشید و تمام تکنولوژی‌های جدیدرا به صورت کامل بشناسید.

حقیقت امّا چیز دیگری است. کافی است که مجموعه‌ی مناسبی از مهارت‌هارا داشته باشید و بتوانید ارتباطتان‌را با حوزه‌های کاری لازم حفظ کنید.

در واقع سرعت رشد حوزه‌های مختلف در صنعت نرم‌افزار آن‌قدر زیاد است که حرکت همراه با این تغییرات همراه با انجام فعّالیّت‌های اقتصادی غیر ممکن است.

توسعه‌ی Full Stack چه مزایایی دارد؟

حالا می‌رسیم به اینکه اصلاً full stack بودن چه مزیتی برای توسعه‌دهنده‌ها و کارفرماها دارد.

1-چابکی بیشتر

شما به عنوان یک توسعه‌دهنده‌ی full stack می‌توانید به‌راحتی و باکمترین سربار بین بخش‌های مختلف حرکت کنید. این ویژگی زمانی بیشتر نمود پیدا می‌کند که در حال کار کردن در یک استارتاپ یا مشغول طراحی ویژگی جدید برای محصولتان هستید.

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

داشتن یک تیم از توسعه‌دهنده‌های full stack باعث می‌شود که سرعت انطباقتان نسبت به حالت سنّتی به نسبت زیادی افزایش پیدا کند. همچنین می‌توانید تیم‌را به سرعت و بدون از دست دادن کیفیت برای ویژگی‌های جدید بخش بندی کنید.

به علاوه تیمی که از توسعه‌دهنده‌های full stack تشکیل شده است ارتباطات درونی بسیار قوی‌ای دارد. چون نیاز تیم به خارج بسیار کم می‌شود و افراد زمان بیشتری درکنار هم و باهم کار می‌کنند.

این یعنی داشتن روحیه‌ی تیمی قوی‌تر و درنهایت داشتن تیمی قوی‌تر.

2-وابستگی کم‌تر

داشتن تیم‌هایی از توسعه‌دهندگان full stack باعث می‌شود که میزان وابستگی بین تیم‌ها کاهش یابد و همین موضوع باعث افزایش باورنکردنی سرعت توسعه‌ی محصول می‌شود.

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

امّا در توسعه‌ی full stack شما می‌توانید به‌راحتی یک ویژگی‌را به یک تیم بسپارید, بدون اینکه آن تیم نیازی به ارتباط با تیم‌های دیگر داشته باشد.

3-درآمد پایدارتر

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

این محدودیت باعث می‌شود که روزهای بیشتری از سال‌را بی‌کار بمانید. به علاوه این مشکل باعث می‌شود که درآمد شما ناپایدار باشد.

امّا برعکس, اگر به یک full stack developer تبدیل شوید, می‌توانید در بخش‌های مختلفی فعّالیّت کنید و پروژه‌های بیشتری‌را انجام بدهید.

این باعث می‌شود که هم درآمدتان بیشتر شود و هم پایدارتر.

راهنمای سبک زندگی فریلنسری: مدیریت مسائل مالی  
راهنمای سبک زندگی فریلنسری: مدیریت مسائل مالی سبک زندکی فریلنسری با ریزه‌کاری‌های زیادی همراه است. در این نوشته با هم بررسی می‌کنیم که چطوری می‌توان با مدیریت درست مسائل مالی, از فریلنسر بودن خود لذت ببرید.   خواندن مقاله ←

برای تبدیل شدن به یک توسعه‌دهنده‌ی Full Stack باید چه مهارت‌هایی کسب کنید؟

با فرض اینکه با مفاهیم پایه برای توسعه و برنامه‌نویسی مانند: الگوریتم, شی‌گرایی و ... آشنایی دارید, به شما مهارت‌های زیر را برای تبدیل شدن به یک توسعه‌دهنده‎ی full stack توصیه می‌کنم.

اکثر این بخش براساس مهارت‌های لازم برای توسعه‌ی وب نوشته شده است, ولی همان‌طوری که قبلاً هم گفتم, شما می‌توانید در هر حوزه‌ای به عنوان یک توسعه‌دهنده‌ی full stack فعّالیّت کنید.

1-HTML و CSS

شما باید با HTML و CSS به صورت کامل آشنا باشید. دانستن این دو زبان نه‌تنها برای توسعه‌ی وب ضروری است, بلکه کم‌کم دارد به چیزی ضروری در دیگر بخش‌ها هم می‌شود.

این روزها از Html و  CSS می‌توانید برای توسعه‌ی اپلیکیشن گوشی, برنامه‌ی دسکتاپ و ... استفاده کنید.

2- javascript

یادگرفتن جاوااسکریپت این روزها برای همه تبدیل به یک ضرورت شده است. برای اینکه بتوانید به عنوان یک توسعه‌دهنده‌ی full stack فعّالیّت کنید, فارغ از حوزه‌ی کاری, باید کار با جاوااسکریپت و حداقل کتابخانه‌ها, فریمورک‌ها و ابزارهای پرطرفدار آن‌را بدانید.

5 چیز که یاد گرفتنشان درآمد برنامه‌نویس‌هارا تا قرن آینده تضمین می‌کند  
5 چیز که یاد گرفتنشان درآمد برنامه‌نویس‌هارا تا قرن آینده تضمین می‌کند اگر برنامه‌نویس هستید بهتر است که به‌هیچ عنوان این نوشته‌را از دست ندهید. ما در این نوشته بررسی کرده‌ایم که یادگرفتن چه چیزهایی می‌تواند درآمد برنامه‌نویس‌هارا برای قرن بعدی تضمین کند. و حالا این هم نتیجه‌ی بررسی ماست. فرصت‌را از دست ندهید.   خواندن مقاله ←

3-یک زبان برنامه‌نویسی back-end

شما باید حداقل یک زبان برنامه‌نویسی مناسب back-end را بلد باشید تا بتوانید اسم خودتان‌را توسعه‌دهنده‌ی full stack بگذارید.

باتوجّه به زمینه‌ای که در آن کار می‌کنید و علایق خودتان می‌توانید زبان‌های زیادی‌را انتخاب کنید.

زبان‌های پرکاربرد این‌روزها عبارت‌اند از: php, python, c++, c#, java, ruby, go, php

ولی شما می‌توانید هر زبان دیگری‌را هم فرابگیرید. مهم این است که مباحث پایه‌ای برنامه‌نویسی‌را بلد باشید و زبان‌را به‌خوبی فرابگیرید.

4-کار با دیتابیس

شما همواره به ذخیره‌ی اطلاعات و کار با دیتایس‌ها نیاز پیدا می‌کنید. به همین دلیل نیاز دارید تا کار با دیتابیس‌های مطرح‌را یادبگیرید.

توصیه‌ی من به شما این است که کار با یک دیتابیس رابطه‌ای (Relational) مانند MySQL و یک دیتابیس No-SQL مانند MongoDB را یادبگیرید و با مفاهیم مرتبط با آن‌ها آشنا شوید.

5-شیوه‌ی کلّی کار با نرم‌افزارهای گرافیکی

شما قرار نیست که طراحی گرافیکی انجام بدهید, ولی بهتر است که بتوانید یک فایل لایه‌باز را در photoshop باز کنید و بخش‌های مورد نیازتان‌را از آن جدا کنید.

یا باید بتوانید رنگ یک نوشته‌را در یک فایل ai تغییر دهید.

نتیجه‌گیری

درمورد توسعه‌ی Full stack تصورات اشتباه زیادی بین افراد وجود دارد. در این متن به تعدادی از این تصورات پرداختیم و با هم دیدیم که تبدیل شدن به یک توسعه‌دهنده‌ی full stack چه منافعی درپی دارد.

همچنین با هم مهارت‌های لازم برای این کار را بررسی کردیم. ولی نباید از این موضوع قافل شوید که با وجود تمامی این مزایا, توسعه‌دهنده‌ی full stack سخت‌تر از تمرکز در یک بخش به‌خصوص است.

همچنین این کار با شخصیت بعضی افراد جور در نمی‌آید. اگر آدمی هستید که نمی‌تواند دید کلّی داشته باشد یا توانایی انطباق سریع با شرایط را ندارد, شاید شیوه‌های سنّتی و متمرکز بیشتر به‌کارت بیاید.

با مشکلات برونسپاری و فریلنسینگ برای همیشه خداحافظی کن

اگر فریلنسری با پیش ثبت نام 7 تا 20 درصد درآمد بیشتر, و اگر کارفرمایی 5 تا 10 درصد تخفیف بیشتر بگیر.
برچسب ها: 
موضوعات:  مقاله    

نوشته های مرتبط

نظرات

دیدگاه شما

( الزامي )

(الزامي)