طبق گفتههای Skillcrush، یک توسعه دهنده Fullstack به شخصی گفته میشود که با هر دو بخش frontend و backend یک وبسایت کار میکند. این بدان معناست که چنین توسعه دهندگانی میتوانند با پروژههایی کار کنند که شامل دیتابیس و API است. به طور خلاصه باید گفت که آنها میتوانند با هر دو بخش سمت مشتری و سمت سرور کار کنند.
من طی پنج سال گذشته مشغول کار کردن در تیم تحقیق و توسعه Fiverr بودهام. همچنان موقعیت اصلی خودم را حفظ کردهام اما چیزهای زیادی از آن زمان تا به حال تغییر کرده است. تکنولوژی، تیمها و مهارتهای من طی سالهای گذشته دستخوش تغییرات زیادی شده است. Fiverr درهای ورود به دنیای توسعه وب را برای من باز کرد. قبلاً در حیطه جاوا مشغول به کار بودم و روی ساخت ابزارهایی برای توسعه دهندگان تمرکز داشتم.
من به عنوان یک مهندس backend در زمینه Ruby on Rails مشغول به کار شدم. بیشتر همکارانم نیز دارای سوابق مشابهی بودند. دانش و تجربهی چندانی در حیطه سمت مشتری نداشتم. وقتی مشغول نوشتن کدهای backend بودم، میدانستم که یک روز مهارتهای خود را تقویت کرده و کدهای frontend را مینویسم.
من حس میکردم که نمیتوانم پروژههای خود را به خوبی دنبال کنم. وقتی با یک باگ روبرو میشدم، نمیتوانستم در زمان خود صرفهجویی کنم و از این بابت احساس ناامیدی میکردم. با گذشت سالها به پتانسیل خود در این حیطه پی بردم. برای پیشرفت کردن باید مهارتهای froentend را بدست میآوردم. تا اینجا فهمیدیم که چرا من به یک توسعه دهنده fullstack تبدیل شدم، حالا بیایید در مورد نحوه تبدیل شدن من صحبت کنیم:
1. من در آن زمان چندین دوره آنلاین را پشت سر گذاشتم. به این واقعیت پی بردم که اگر میخواهم اتفاقات خوبی رخ دهد، ابتدا باید خودم اولین قدم را بردارم. نمیتوانیم از دیگران بخواهیم که دست از کارهای خود بکشند تا ما بتوانیم دورههای آنلاین بلندمدتی را بگذرانیم؛ مخصوصاً اگر آن موارد در اولویت نباشند. محصولات و ویژگیهای جدید همیشه در اولویت خواهند بود. بنابراین ابتدا یک دوره پیشرفته جاوا اسکریپت را شروع کردم و سپس در یک کارگاه آنلاین React Components شرکت کردم.
2. کارهای سادهای را انجام دادم. به مجموعه کارهای خود یک سری وظایف کوچک frontend را اضافه کردم. به خاطر نداشتن دانش کافی، از دیگران تقاضای کمک کردم. بزرگترین چالش من در آن زمان، درک کردن پارادایمهای مختلف در محیط frontend بود. با گذشت زمان، وظایف من نیز بیشتر و دشوارتر شدند. باید تمام احتمالات را مد نظر قرار میدادم، یونیت تست مینوشتم و کدهای خود را در هر محیط و مرورگری تست میکردم. من راهکارهای چالش برانگیزی را ارائه دادم اما بسیار دلپذیر بودند.
3. با استفاده از Node.js کدنویسی کردم. Node.js یک محیط جاواسکریپتی backend است که روی موتور V8 اجرا میشود. این محیط میتواند کد جاوااسکریپت را خارج از مرورگر اجرا کند. توسعه دهندگان با کمک Node.js میتوانند از جاوا اسکریپت برای پیادهسازی کردن منطق سمت سرور استفاده کنند. توسعه دهندگان backend و frontend در اینجا با یکدیگر روبرو میشوند. وقتی روی پروژه تبلیغاتی Fiverr مشغول به کار بودم، سعی کردم اندپوینتهای سرور را در Node پیادهسازی کنم. کد اولیهام کار میکرد اما کیفیت چندانی نداشت. به من یک فرصت دیگر داده شد تا کدها را بهبود بخشیده و یونیت تست را به آن اضافه کنم. از نتیجه نهایی راضی بودم.
4. دوستان خود را پیدا کردم. وقتی اطراف شما پر از توسعه دهندگان بزرگ است، باید از آنها درس بگیرید.در غیر اینصورت فرصت بسیار بزرگی را از دست خواهید داد. من خیلی خوش شانس هستم که همکارانی بااستعداد در زمینه frontend دارم. نحوه ساخت DOM مناسب را از دوستان خود یاد گرفتم. آنها به طور روزمره مرا راهنمایی میکردند و بهترین متدها را نشانم میدادند.
اخیراً مشغول توسعه دادن یک سرویس اصلی هستم که با معماری جدید Fiverr سازگار است. این پروژه در خصوص ریفاکتور کردن کد Node.js بود. هیچگونه محصول خاصی در این پروژه ساخته نشد و تنها یک سری تغییرات زیرساختی در آن اعمال شد. در روند توسعه، حس کردم که تمام بخشهای سیستم را به طور پایهای بلد هستم.
با توجه به مهارتها و پشتههایی که به دست آوردم، از جایگاه خود کاملاً رضایت دارم. به نظرم توسعه دهندگان باید توانایی حل کردن مشکلات از جوانب مختلف را داشته باشند. یاد گرفتن پارادایمهای بیشتر از ما یک توسعه دهنده بهتر خواهد ساخت. بسیاری از مردم ترجیح میدهند در یک زمینه خاص تخصص کسب کنند و این هیچ ایرادی ندارد. من همیشه جزو افرادی بودم که به دنبال چیزهای جدید میگشتم.
دیدگاه و پرسش
در حال دریافت نظرات از سرور، لطفا منتظر بمانید
در حال دریافت نظرات از سرور، لطفا منتظر بمانید