عصر یک روز کاری علیرضا رفیق و همکارم در شرکت سابق به من پیام داد: "کافه بازار درخواست استخدام توسعه دهنده Front-End رو در صفحه جذب نیروش گذاشته، بد نیست تو هم روزمه بدی". من دنبال کار نبودم و قصد جابهجایی هم نداشتم از طرفی نسبتا شرایط موجود هم برای این کار خوب نبود، ترنم،دخترم هم در حال قدم گذاشت به این دنیا بود. واسه همین گفتم بیخیال بذار زندگیمون رو بکنیم منو وارد این بازیا نکن?.
یک روز گذشت ولی فکرش مدام ذهن من رو قلقلک میداد. کافه بازار بین توسعه دهندهها برند خوبی هست، من بارها در موردش شنیده بودم. همیشه علاقه به جاهایی داشتم که امکان رشد در اونها وجود داره و همه چیز فقط کار کردن و تسک دان کردن نیست. از سر کنجکاوی و با این نیت که حداقل برم آشنا بشم و یه سنجشی هم میشه واسه خودم روزمه رو ارسال کردم.
اواخر اسفند 97 بود که فرستادم، بعد از یک هفته ایمیل آمد که شما جز گزینههای منتخب ما هستید ولی شرکت تا 17 فروردین تعطیله و واسه بعدش با هم قرار میذاریم. 17 فروردین بود که زنگ زدن برای تعیین قرار مصاحبه تلفنی و قرار شد 2 روز دیگه یعنی 19 فروردین ساعت 12 ظهر مصاحبه تلفنی داشته باشم.
چون نیت من سنجش آنچه که بودم بود،خواستم با آنچه که در چنته داشتم به دوئل برم ?! با این حال وقتی صبح 19ام رفتم شرکت یک قلقک ذهنی باز آمد سراغم که حداقل یک مرور کن پسر?! در همین حال بودم که خانومم با گریه زنگ زد بیا که ترنم قصد آمدن داره?! من هم با عجله رفتم خونه و کلا مصاحبه و هر چی که بود از ذهنم رفت. دکتر گفت چند هفته کوچولوتون عجله داره و امروز میخواد به دنیا بیاد?. چون زود آمدن کمی داستان داره برای اطمینان رفتیم تا خانومم رو به پزشک خودش نشون بدیم و اون هم همین رو تایید کرد و گفت سریع برین تا بستری بشه.
در حال رفتن به بیمارستان بودیم که ساعت 12 شد و مهتدی حسن پور برای مصاحبه زنگ زد. چون قبلش زنگ نزدم برای کنسل و این اولین باب آشنایی ما بود، گفتم اگر بگم باشه برای چند روز دیگه در بدو آشنایی یک آدم بد قول رو در ذهن اون خواهم ساخت و بخش زیادی از تلاشم در آینده صرفا برای حذف این تلخی تلف خواهد شد. برای همین ریسک نکردم و جواب دادم و گوشی رو روی اسپیکر گذاشتم و رانندگی کنان به سمت بیمارستان به سوالاش جواب میدادم.
در توصیف اون سکنانس فقط یک کارگردان هالیودی میتونه موفق باشه و من همین قدر بگم که خودم در حال رانندگی سریع به سمت بیمارستان،خانومم کنارم در حال درد کشیدن و مهتدی در حال سوال کردن! خلاصه رسیدیم بیمارستان و خانومم و مادرم خانومم جلو بخش پیاده شدن ولی مهتدی ول کن ماجرا نبود?. هر چی جواب میدادم سوالات رو سختتر میکرد تا جایی که کار به تعاریف پایهای و کاملا آکادمیک رسید و من تو دلم میگفتم آخه کیه که توی کد زدن این تعاریف به کارش بیاد ول کن تو رو خدا مگه میخوای استاد دانشگاه استخدام کنی?.
راستش چون زیر استرس شدید بودم خیلی یادم نیست چطور گذشت و سوالات چی بود ولی چندتایی که یادم مونده ایناست و حدودا یک ساعت و نیم مصاحبه طول کشید:
1- از خودت بگو و کارهایی که کردی.
2- با ES6 کار کردی؟
3- چه تفاوتهای رو ایجاد کرده و مزایاش چی هست؟
4- تفاوت let، const و var چی هست.
5- با OOP جاوا اسکریپت کار کردی؟
6- در جاوا اسکریپت چطور یک کلاس رو تعریف میکنن؟
7- تفاوت propertyهای خود کلاس و اونهایی که به اون prototype میشه چیه؟
8- بگو prototype chain چی هست و چه کاربردهایی داره و چه رفتارهایی رو میشه با اون تعریف کرد
9- با html 5 کارکردی؟ چه ویژگیهای جدید داره چندتاشو بگو
10- با local storage کارکردی؟ فرقش با کوکی چیه؟
11- با SCSS کارکردی؟ چه ویژگیهایی رو در CSS ایجاد کرده؟
12- بگو position در CSS چه کاری میکنه و چه مقادیری داره و تفاوتهاشون چیه؟
ساعت 00:25 بامداد 20 فروردین 98 به دنیا آمد ? ? و یک ماه شبانه روز ما رو سرگرم خودش کرد. در عین جذابت و حال خوبی که داشتیم بیخوابی شدیدی هم داشت و متاسفانه باعث شد من هر چیزی جز خانواده رو رها کنم.
در اون زمان علاوه بر شرکت وظیفه مدیریت جامعه ریاکت ایران رو هم داشتم که به تازگی با عامر لطفی تاسیسش کرده بودیم و اون هم مثل فرزندم بود. با این حال ترنم الویت خودش رو به رخ کشید و جامعه رو برای مدتی به بچهها سپردم و دورا دور نظارت داشتم.
حدودا یک ماه بود که خبری ندادن و طبیعی هست که در این شرایط حتی اگر کافه بازار دعوت نامه و فرش قرمز هم پهن میکرد من نمیتونستم برم و خوشحال بودم که خبری ازشون نیست ?(صادقانه). حدودا یک ماه بعد از مصاحبه اول با من تماس گرفتن که شما قبول شدی و تاریخی برای مصاحبه حضوری رو با هم تعیین کردیم. خیلی با خودم کلنجار که زنگ بزنم و کنسل کنم. چون اصلا شرایط جابهجایی رو نداشتم حتی اینقدر ذهنم خسته بود و بیخوابی کشیده بودم که به جای کار دنبال یه جا واسه خواب بودم ?.
خانومم در طول این مدت همیشه حمایتم کرد و حتی روز تولد ترنم هم جای غر زدن با این که درد داشت سعی کرد ساکت باشه تا من مصاحبهام رو انجام بدم. خانومم گفت برو و کنسل نکن برو خودت گفتی که. با این که خودم اصلا شرایط لازم برای چنین مصاحبهای رو نداشتم قبول کردم و اواخر اردیبهشت رفتم برای مصاحبه حضوری با آرش .
ساعت 15:40 یعنی بیست دقیقه زودتر رسیدم، وارد ساختمان که شدم سمت راست پیشخوان نگهبانی بود و گفتم مصاحبه داشتم، گفت آقای ابراهیمی ؟ (با تعجب) گفتم بله! گفت بشینید من اطلاع میدم. گوشه سالن یک فضا برای نشستن بود و منتظر نشستم و راس 4 آرش با لبخند وارد لابی شد و ازم دعوت کرد همراهش به اتاق مصاحبه برم.
وارد فضای پشت لابی شدیم که یک کافی شاپ بود و رو به روی اون یک درب قرار داشت که ما وارد اون شدیم. یک راه رو بود که دو طرف اون اتاقهای وجود داشت که سه وجهش آجری و وجه مجاور به راهرو شیشه سکوریت بود. هر اتاق یک رنگ بود و معلوم بود خاص ملاقاتهای دو نفره و مصاحبهها طراحی شده. وارد اتاق اول شدیم و گویا از قبل میدونستن ما میام و روی میز پذیرایی آماده کرده بودن. دو تا فنجون آبجوش و در کنارش چندتا کیک و چای و نسکافنه. بعد از نشستن آرش ازم خواست از خودم تعریف کنم و در بین این گپ و گفت منو به خوردن هم دعوت کرد.
باید اعتراف کنم معادلاتم اشتباه بود و اونجا واقعا عالیتر از چیزی که فکر میکردم بود. راستش تصور من از شرکتهای ایرانی چیزی هست که اکثرتون دید و این سبک بخورد و منظم بودن همه چیز و محیطی که خاص و ویژه برای اون شرکت و آدمهاش طراحی شده بود باعث استرس من شده بود. خب من توی مرکز تحقیقات کامپیوتری هم کار کرده بودم و اونجا هم خاص اون سیستم طراحی شده بود ولی تفاوت ویژه اون در به روز بود و سبک استارتآپی اون بود (نه رسمی و خشک شبیه ادارات دولتی).
راستش هیجان زده شده بودم و مدام پیش خودم میگفتم چرا من تلاش نکردم و هیچ مروری نداشتم و یه راست پا شدم آمدم اینجا. چرا با این حال خسته و فکر داغون آمدم. بعضی چیزا حسی هست و تعریف خاصی براش وجود نداره. حتما برای شما هم پیش آمده که بعد از دیدن کسی یهو ازش بدتون بیاد یا خوشتون بیاد و دلیلشو هم ندونید. محیط اونجا جوری من رو جذب کرد که واقعا دوست داشتم جزئی از اون مجموعه باشم در حالی که تا قبل از اون اصلا برام مهم نبود که چی میشه برای همین هیچ تلاشی هم نکردم!
سوالات شروع شد. میتونم بگم همه سوالات الگوریتی بود و برعکس دفعه قبل که اکثرا تعریفی بود این بار با حل مسئله قرار بود به چالش کشیده بشم. از من در کل 4 سوال پرسیده شد و حدودا هم یک و نیم ساعت مصاحبه طول کشید. در اونجا سیستمی نبود یا بهتر بگم IDE وجود نداشت که به شما کمک کنه و طبیعتا اینترنتی هم وجود نداشت که بتونید از stackoverflow کمک بگیرید و این یعنی دوئل با دانشی هسا که در ذهن دارید، اون هم بر روی کاغذ!
این مسئلهها داده شد و باید الگوریتم حل اون بر اساس javascript رو مینوشتم البته مورد آخر باید به صورت شبه کد نوشت میشد یعنی قسمتهای الگوریتمی کد باشه و موارد معمولی شبه کد و تعریفی از کد.
1- repeat([2,[4,3],'1')(2) => [2,2,[4,3],[4,3],'1','1']
2- flat([2,[3,4,[5,6],5],4,[2,3]) => [2,3,4,5,6,5,4,2,3]
3- یک layout کشید و گفت کد html و css اون رو بگو
4- بخش دسته بندی یک وبلاگ کار به طور کامل پیاده سازی نماید.
با اون خستگی فکریای که داشتم و استرس که گرفته بودم و اعتماد به نفسم به شدت افتاده بود ولی خدا رو شکر همشون رو تونستم جواب بدم و از خودم راضی بودم البته چون به IDE عادت کرده بودم یه جاهایی سوتی میدادم که آرش کمک میکرد و نقش اون IDE رو تا حدی بازی میکرد. در اخر جلسه با آرش خوش و بش کردیم و گفت سوالی نداری و من از سبک و سیستم کاری شرکت پرسیدم.
گفت اینجا ما به شکل مایکرو سرویسی عمل میکنیم و هر محصول یک تیم چهار پنج نفره داره واسه خودش که توی هر تیم یا هر چند تیم یک توسعه دهنده Front-End وجود داره. همه جور تکنولوژیای هم استفاده میشه از pure javascript و jQuery تا React و Vue و نیرو Front-End بین تیمها ممکنه جا به جا بشه ولی Back-Endها عمدتا ثابت اون تیم هستن. حدود ۷-۸ نفری الان توسعه دهنده Front-End هستن که اخر هر هفته با هم جلسه میذارن و مشورت میکنن و ساختار سلسله مراتبی و بخشی هم وجود نداره و به صورت Flat مدیریت میشه.
یکسری سوالات هم در مورد ساعت کاری و اینا پرسیدم که نمیدونم چرا یادم نمیاد چی جواب داد ? ولی یادمه یکی از سبکها نرمال و مرسوم بود.
در آخر گفت کی میتونی بیای؟ و داستان این که چی شد سر از کافه بازار در آوردم رو تعریف کردم و گفتم راستش من الان یکم شرایطم خاصه و چون واقعا به نیت جا به جایی هم نیامدم هنوز حتی حرف رفتن رو هم به جایی که هستم نزدیم و اگر الان بگی اوکی من نهایت ۳ ماه دیگه میتونم بیام چون اون طرف باید کارهام رو تحویل بدم. بعد گفت حقوق درخواستیت چقدر هست که گفتم راستش اگر ده به بالا باشه این جا به جایی برای من میصرفه ولی کمترش رو باید فکر کنم که گفت حالا در مورد اینها بچههای منابع انسانی نظرم میدن و بهت میگن.
بابای کردیم و خوشحال و خندان برگشتم خونه. من فکر میکردم نمرهای در حدود 16 تا 18 رو گرفته باشه و حداقل به مرحله بعدی که آرش گفت اونجا دیگه باید با سیستم کد بزنی برم. بعد از حدود دو هفته ایمیل ریجکت شدنم آمد. بدون این که توضیح بدن چرا و به چه دلیل! بدون این که بگن نقصهای تو اینها بود برو و درستشون کن و این در حالی هست که گفتن اگر در مصاحبه ما رد بشین میتونین 6 ماه بعد دوباره درخواست بدید ولی هیچ کارنامهای ارائه نمیدن که شخص بدونه روی چی کار کنه!
حدس و گمان برای منی که به هدف سنجش پا توی این ماجرا گذاشته بودم کافی نبود. من باید میدونستم مشکلم چی بوده تا بتونم رفعش کنم برای همین دست به دامن اینترنت و افراد شدم تا شماره آرش رو گیر بیارم ولی تقریبا تیرهام به سنگ خورد و شمارش رو عوض کرده بود. نهایتا یک ID تلگرام ازش یافتم و بش پیام دادم. فردا اون روز این جواب رو داد:
سلام محمد جان
بیشتر کامنتهای بچهها اینجوری بود که توانایی حل مساله (اون یک ساعت آخر که سوال دستهبندی بود) خوب بوده، ینی توی تحلیل کردن مساله و راهکار دادن و اینا نسبتا خوب بودی، و همین چیزیه که معمولا اکثر ریجکتهامون بخاطرش هست و خیلی سخت و زمانبر میشه توی این قضیه پیشرفت کرد و یاد گرفت.
در عین حال بچهها میگفتن توی domain knowledge زیاد قوی نیست، خیلی مرزی بود و جلسه حضوری کمیته استخدام برگذار شد کلی صحبت داشتیم. در کل به نظرم بهتره رفرنس کامل مثلا خود زبان جاوااسکریپت رو بخونی که دقیقا هر چیزی چطور کار میکنه و اون پشت چه خبره، یا داکیومنت دقیق ریاکت که دقیقا چه توابعی داره و کجاها میتونه کارت رو سادهتر کنه، یا اینکه مثلا vdom چیه و ریاکت چجوری تغییرات رو اعمال میکنه. یه کتابی که قدیما بچهها توصیه میکردن اسمش You don't know js بود، سرچ کنی پیداش میکنی. قطعا بیشترش رو میدونی، ولی خیلی جزییات زیادی هست که توی کار میتونه کمک کنه. غیر از اون مثلا آشنایی با یه فریمورک غیرریاکتی مثل vue میتونه کمک کنه ذهنت بازتر باشه و محدود به صرفا ریاکت نباشه.
در ضمن دانشت توی css واقعا خوب بود و هیچ انتقادی نبوده روش.
بعد از دریافت این پیام از آرش تشکر کردم و گفتم تلاشم رو میکنم تا در مصاحبه بعدی قبول بشم و این بار جدی خواهم بود.
نمی گم عالی بودم و بی نقص چون سوتیهایی هم میدادم ولی حتی رتبه یک کنکور هم همه دروس رو صد درصد نمیزنه! حداقل مطمئنم توانای رفتن به مرحله بعد رو داشتم. برای من هم این ریجکت کمی عجیب بودی ولی بیشتر دوست داشتم قبولش کنم تا هم شرایط زندگیم متعادلتر بشه و هم نهایت استفاده رو از انگیزهای که برای رشدم ایجاد شده بود ببرم.
البته من از اون ریجکت بیشتر سود کردم تا ضرر، چون مقالات و مطالب زیادی رو خوندم تا سطح خودم رو بالاببرم.
همه چیز داشت به این شکل پیش میرفت که از طریق دوستانی که بعدا باشون آشنا شدم خبری به گوشم رسید که دلیل ریجکت من در اصل از سمت منابع انسانی بخاطر حقوق درخواستی و شرایط طولانی جابهجایی بوده!
البته من اگر کمی فکر میکردم هم متوجه این داستان میشدم. شرایط نامساعد و احوالاتم ذهنم رو به سمت پذیرش اون دلیل برد چون برای شرایط من مناسبتر بود. مگر نه من هفته قبل مصاحبه خودم در کانال جامعه ریاکت ایران لینک دانلود کتاب You don't know js رو گذاشته بودم و مدتها بود در حال خوندنش بودم هر چند تا اون روز هنوز تمومش نکرده بودم. از همه جالبتر این که بارها در گروه تلگرام جامعه ریاکت ایران برای دوستان موضوع "vdom چیه و ریاکت چجوری تغییرات رو اعمال میکنه" رو توضیح دادم و اطرافیانم همه میدونن که من اینا رو میدونستم! اصلا از من در مصاحبه این سوالات پرسیده نشد که حالا من جواب ندم یا جوابی اشتباه بدم! یا حتی از من خواسته نشد کدی رو به Vue بزنم یا سوال کنن یاد داری یا نه تا من بشون بگم که من ریاکت رو توی یک هفته یاد گرفتم و یک فریم ورک SPA با معماری Vue خودم نوشتم و مهم پایه دانش هست نه ساختارها و تعاریف حفظی و آکادمیک!
من شنیده بودم کافه بازار حقوقهای خوبی میده ولی گویا داستان آواز دهل از دور شنیدن خوش است بوده و مثل سایر شرکتهای برند منطق این هست که ما چون برند هستیم پس خیلیها دوست دارن برای ما کار کنن و این رقابت طبق اصل عرضه و تقاضا در اقتصاد منجر به کاهش هزینه ما میشه و دلیلی نداره وقتی میتونیم با قیمت کمتر استخدام کنیم با قیمت بالا این کار رو بکنیم.