سوالهای رایج در مصاحبههای کاری فرانتاند
۱۲ شهریور ۱۳۹۹
تقاضاهای زیادی برای شغل توسعهدهندگی فرانتاند وجود دارد، نیازها به مرور زمان تغییر پیدا میکنند، به همین دلیل فناوریهای جدیدی برای تکمیل یا جایگزینی با فناوریهای قدیمی به میان میآیند. با این روند، مصاحبهها هم در این روند تکاملی تغییر پیدا میکنند. بسته به نیازهای هر شرکت، ممکن است تمرکز بیشتری بر روی یک فریمورک خاص، افزایش توان طراحی UX یا موارد دیگری داشته باشند. ما در این مقاله قصد داریم دقیقترین توضیحات مربوط به مصاحبه کاری فرانتاند را در اختیار شما قرار دهیم.
طبق آخرین نظرسنجی Stack Overflow، بیش از 32.8% از کل برنامهنویسان، خود را توسعهدهندگان فرانتاند میدانند و این مقدار بسیار زیادی است. اما با توجه به این واقعیت که توسعه فرانتاند یک بخش اساسی و واجب برای هر پروژه مبتنی بر وب و بسیاری از پروژههای مبتنی بر موبایل است، دیگر جای تعجبی باقی نمیماند.
توسعهدهندگان دائما درحال تطابق مهارتهایشان با مهارتهای مورد نیاز شرکتها هستند و در این میان توسعهدهندگانی با تواناییهای مختلف وجود دارند که همگی برای بهدست آوردن شغل، تلاش میکنند. اگر میخواهید در طرف توسعهدهندگان موفق باشید باید در مصاحبههای شغلی خود را نشان دهید. در بیشتر شرکتها، توسعه فرانتاند یکی از مهمترین دپارتمانهای آن شرکت است.
مصاحبههای کاری فرانتاند
مصاحبه را فقط نمیتوان پاسخ به سوالها درنظر گرفت. یکی از بخشهایی که اغلب اوقات وجود دارد این است که از شما میخواهند آزادانه در مورد خود صحبت کنید. این روشی عالی برای آزمایش مهارتهای فردی توسعهدهنده است.
به پروژههایی که در آن شرکت کردهاید، فکر کنید. از چه فناوریهایی استفاده کردهاید؟ دقیقا چه کاری انجام دادهاید؟ به چه چیزی افتخار میکنید؟ چه چیز دیگری در آن پروژه وجود دارد که شما میخواهید درمورد آن صحبت کنید؟ همچنین، کمی میتوانید درمورد پروژههای خصوصیتان صحبت کنید. چهکاری انجام میدهید و از انجام چهکاری لذت میبرید؟ در روند توسعه پروژهتان با چه چالشهایی روبرو شدهاید و چگونه بر آنها غلبه کردهاید؟
اگر در رزومه یا وبسایت خود اظهار داشته باشید که از یک فریمورک مشخص استفاده میکنید، حتما به داکیومنتهای آن فریمورک سر بزنید، آنجا پر از مثالهای سادهای است که بسیاری از استخدام کنندگان دوست دارند از آن مثالها برای سنجش شما استفاده کنند. برای عادت کردن به سوالهایی که حین مصاحبه ممکن است از شما پرسیده شود، میتوانید سوالها را بهصورت آنلاین جستجو کنید و آنها را بخوانید. اما پاسخها را از یاد نبرید! آماده باشید تا در پاسخ به سوالات از تجربههایتان بگویید و راه حلهایتان را شرح دهید.
اگر از برنامهنویسی دور شدهاید و سعی کردهاید دوباره به مسیر برگردید، یک پروژه ساده جاوااسکریپت برای خود تعریف کرده و آن را بهخوبی انجام دهید. به این صورت اعتماد به نفس خود را بهبود خواهید بخشید.
تفاوتهای UX و برنامهنویسی
یکی از سوالات مهم، چگونگی حفظ تعادل نسبی در میان مهارتهایتان است. گذشته از مهارتهای سختی مانند JavaScript/TypeScript، مهارتهایتان در کار با کتابخانهها، فریمورکهای مختلف و … را بالا ببرید. همچنین مهم است که بهعنوان یک توسعهدهنده، مهارتهای فردی خود را تقویت کنید.
شما بهعنوان یک توسعهدهنده فرانتاند، باید بدانید که دقیقا برای چه کسانی برنامه را توسعه میدهید. زمانیکه صحبت از UX درمیان باشد، میبایست بایدها و نبایدها را بدانید. از این موارد که بگذریم، کاربرنهایی اهمیتی به کیفیت کدهای شما نمیدهد، فقط ظاهر کار شما برای او مهم است و در قدمهای بعد قابلیت استفاده و ظاهر پروژه در تلفنهای همراه اهمیت پیدا میکند. شما باید از نحوه استفاده برنامهتان اطلاعات کاملی در اختیار داشته باشید تا بتوانید دقیقا آن را پیادهسازی کنید.
موارد کلیدی
اینها قطعا مهمترین مواردی هستند که باید در طی مصاحبه فرانتاند درنظر بگیرید:
- باید درک بسیار خوبی از JavaScript داشته باشید. گذشته از زبان، باید با ابزارهای استاتیک تحلیل کد آشنا باشید.
- بسته به نیازهای خاص شرکتی که متقاضی آن هستید، میبایست دانش خوبی از برترین فریمورکها و کتابخانههایی مانند React، Angular، Vue.js و یا سایر موارد داشته باشید.
- باید بتوانید از نظر معنایی (semantic) کدهای HTML را بهدرستی بنویسید، در پیادهسازی طرحها با CSS بهخوبی عمل کنید و به جزئیات دقت داشته باشید، حائز اهمیت است که طراحیتان نیز واکنشگرا (responsive design) باشد.
- باید بتوانید زبان انگلیسی را روان صحبت کرده و نظرهای خود را به روشنی بیان کنید.
- نیاز به داشتن دانش کافی درمورد مرورگرها، نحوه کارکرد و چگونگی دیباگینگ کدها در مرورگر، مهمترین مواردی هستند که باید در آنها مهارت پیدا کنید.
- تجربه عملی کار با APIها (Rest API یا GraphQL).
- تجربه کار با ریپازیتوریهای git.
- تجربه در نوشتن تست برای کدها.
سوالهای مصاحبه فرانتاند
سوالهای رایجی که شاید در مصاحبه کاری از شما بپرسند:
- آیا از پیشپردازندههای CSS استفاده میکنید؟ جوانب مثبت و منفی آنها چیست؟ تفاوتهای میان Flexbox و CSS Grid را توضیح دهید. چه زمانی از هر کدام یک از آنها استفاده خواهید کرد؟ قوت و ضعف آنها در چیست؟
- BEM (Block Element Modifier) چیست و چرا باید از آن استفاده کرد؟
- توضیح دهید که چگونه میتوان از توابعی مانند forEach، Map یا Reduce استفاده کرد؟
- اغلب سوالهای رایج در رابطه با زبان جاوااسکریپت را میتوان موارد مربوط با ES6 و نسخههای جدیدتر آن که شامل arrow functionها و نحوه عملکردشان، تفاوتهای میان var، let، const و چنین مواردی دانست.
- تفاوت Async/Await و Promiseها چیست؟
- React چیست و چگونگی استفاده از مزیتهای PureComponent را بگویید.
- HOC (higher-order components) در React چیست؟ چگونه میتوانید از آنها استفاده کنید؟
- نظر شما در رابطه با آخرین بهروزرسانیهای React چیست؟ بیشتر درباره مزایای React Hooks بگویید.
نکات مهم
تمام روند مصاحبه درباره مهارتهای شما نخواهد بود. موفقیت شما در طول مصاحبه به برنامهریزی، وضعیت ذهن و تصور کلی شما نیز بستگی دارد. برای بهبود شانس خود این نکات را دنبال کنید:
- خواب کامل قبل از مصاحبه باعث میشود شما با دقت و اطمینان بیشتری در مصاحبه حاضر شوید.
- به موقع در محل مصاحبه حاضر شوید، عجله فقط شما را عصبی میکند. اگر با اتومبیل هستید حتما جایی را برای پارک کردن ماشین درنظر بگیرید.
- از آنجایی که قصد دارید کار جدیدی را شروع کنید، حتما دقیق بدانید که چرا میخواهید در آنجا کار کنید. اگر از شما در این باره پرسیدند، تعجب نکنید.
- انتظارات شما برای کار در آن شرکت چیست؟ آماده باشید تا به این نوع از سوالها پاسخ مناسبی دهید.
- درباره کارتان سوال کنید، باید چهکاری در آن شرکت انجام دهید؟ اهداف شرکت چیست؟ این موارد را قبل از مصاحبه یادداشت کنید.
- خیلی سخت تلاش نکنید که در همه موارد خوب به نظر برسید و بر روی نقاط قوت خود تمرکز داشته باشید.
چکیده
در این بخش مهمترین مواردی را که درباره آنها صحبت کردهایم را مجددا یادآوری خواهیم کرد:
- فناوریها بخش اصلی مصاحبه خواهند بود پس مطمئن شوید که خود را آماده کردهاید. البته باید افزود که لازم نیست در تمام موارد خوش بدرخشید.
- در یک مصاحبه معمولی از شما خواسته میشود برخی موارد را به صورت عملی انجام دهید. با سوالهای رایجی که ممکن است در مصاحبه از شما پرسیده شود آشنایی پیدا کنید اما فقط به عنوان یک راهنمایی به آنها نگاه کنید چون این سوالها قطعی نیستند.
- ابتکار عمل داشته باشید و به استخدام کنندگان پروژههای خود را نشان دهید، درمورد شرکت و نقش خود در آن شرکت سوال کنید.