راهنمای مصاحبه frontend در کافه بازار
بر اساس تجربه مصاحبه خودم و اطلاعاتی که درباره کافه بازار دارم میخوام منابعی برای آماده شدن و نکاتی رو ذکر کنم برای کسانی که در آینده میخوان برای موقعیت frontend در کافه بازار اقدام کنند.
مصاحبه این موقعیت توی کافه بازار به دو مرحله تقسیم میشه مرحله اول بیشتر حالت عمومی داره و توش سوالاتی از قبیل چه کار هایی کردین, کی هستین و... همراه با تعدادی سوال ساده درباره frontend از مباحثی مثل cache کردن websocket و همچنین سوالاتی از javascript که مثال هاش در اینترنت زیاد هست درباره مثائلی مانند hoisting و تفاوت let/var/const ... و یک سوال ساده problem-solving در حد sort کردن array, پرسیده میشه. در صورتیکه این مرحله با موفقیت طی کنید در مرحله دوم شما باید با لپ تاپ به سوالاتی که جلوتون گذاشته میشه پاسخ بدین که اکثر سوال ها در راستای سنجیدن اطلاعات کاندید در مباحث پایه ایی جاوااسکریپت و html/css و کمی الگوریتم/حل مسئله پرسیده میشه با این دید که برنامه نویسی که مباحث پایه ایی رو بلد باشه میتونه به راحتی کار با react یا هر چیز دیگه ایی رو یاد بگیره پس انتظار سوالاتی مثل HOC, تفاوت smart/dumb component نحوه structure بندی پروژه و... نداشته باشید.
منابع زیر رو برای آماده شدن technical ایی برای مصاحبه پیشنهاد میکنم:
- خواندن کامل کتاب you-dont-know-js
- یادگیری trick های html/css با خوندن css-tricks و رفرنس w3schools
- حل کردن سوالات نسبتا ساده در leetcode یا codewars و سایت های مشابه
- یادگیری concept های نسبتا عمومی مثل وب سوکت, cache کردن, local storage, سینک کردن دیتا و PWA و...
همچنین نکات زیر برای قبل از مصاحبه:
- اولویت خودتون رو برای مباحث مورد معیار قرار بدین و مثلا خوندن کتاب clean code به بعد از قبولی موکول کنید
- حواستون رو به نکات tricky که جاوااسکریپت داره جمع کنید از جمله:
- تفاوت های محیط های node و browser
- اسینک بودن console.log
- تفاوت متد هایی که در هنگام استفاده array تغییر میدن و اونهایی که نتیجه بر میگردونن
- و مهم ترین سخت ترین نکته تفاوت execution context های جاوااسکریپت و تشخیصشون
و نکات زیر برای قبل از مصاحبه دوم:
- تمرین کنید که بتونید در حین code زدن نحوه فکر کردن رو به خوبی بتونین منتقل کنید
- آمادگی کد زدن و توضیح دادن همزمان بدون استرس و از دست دادن تمرکز داشته باشید
- پیاده سازی بعضی از تابع های lodash قبل از مصاحبه جهت تمرین
- با DOM کار کنین و سعی کنید کارهایی که library ها و framework ها به راحتی انجام میدن رو با js pure پیاده سازی کنین چیزهایی مثل حلقه ها (ng-repeat angular, map react) اپدیت کردن dom بعد از اپدیت شدن state و ...
نکاتی در حین مصاحبه دوم:
- قبل از شروع به جواب دادن از مصاحبه کننده درباره تعداد سوال ها و زمانی که دارین بپرسین تا بدونین برای هر سوال چقدر وقت دارین
- سعی نکنید نکات تمیز کد زدن, نگه داری و... رو در حین حل سوال ها رعایت کنید. مثلا سعی نکنین برای کد از const و immutablity و ... استفاده کنین مهم حل کردن سوال در زمان مناسب با یک راه حل منطقی قابل توضیح هست
- در حین مصاحبه دسترسی به اینترنت دارید ولی از اون برای سرچ کردن سوال استفاده نکنین!!!! در صورت نیاز برای مراجعه به رفرنس javascript یا html/css استفاده کنین
- به هیچ عنوان از روی استرس زمان کم یا دلیل دیگری به سمت فقط به جواب رسیدن نرین. با مشکل به صورت کاملا منطقی برخورد کنید و نحوه فکر کردن و مشکلاتی که وجود داره برای پیاده سازی رو سعی کنید توضیح بدین و نهایتا با راهنمایی های مصاحبه کننده یا حل میشه یا میرین سوال بعدی ولی در هر دو صورت نتیجه خیلی بهتر از آزمون خطا خواهد بود
- سوال رو درست و کامل بخونید و متوجه بشید. !!! درصورتیکه متوجه نمیشین حتما سوال کنین
و نکته ایی برای بعد از مصاحبه
- در صورتیکه رد شدین دنیا به آخر نرسیده, از اشتباهاتتون درس بگیرین و دوباره امتحان کنین(۶ ماه بعد از آخرین مصاحبه میتونین دوباره درخواست بدین)
با ذکر کردن مباحث بالا سعی کردم راه رو برای کسای دیگه ایی که خیلی علاقه دارن در کافه بازار کار کنن هموار تر کنم.
* توجه : نمونه سوالات ذکر شده لزوما سوالات پرسیده شده نیستند/نبودند.( در راستای حفظ integrity سوالاتی که همکاران در کافه بازار هر ۶ ماه طراحی و revise میکنن ذکر نشده)
موفق باشید.