راهنمای مصاحبه 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 میکنن ذکر نشده)موفق باشید.