این جلسه رادیو بیدار به مرور دو فصل ابتدایی کتاب “Cracking the Coding Interview” با حضور فرشاد کاظمی، مهندس ارشد نرمافزار پرداخته است.
خلاصه فصل اول:
نویسنده در این فصل توضیح میدهد که مصاحبههای برنامهنویسی معمولا شامل چهار بخش کلیدی هستند:
تفکر تحلیلی: بررسی نحوه تفکر و تحلیل مسئله.
مهارت کدنویسی: توانایی تبدیل راهحلها به کد.
دانش فنی: دانش پایه علوم کامپیوتر.
تطابق فرهنگی: سازگاری با فرهنگ شرکت.
نویسنده اذعان دارد که این آزمونها همیشه تضمینی برای ارزیابی صحیح نیستند، اما برای کاهش خطای استخدام ضروریاند. همچنین، توانایی حل مسئله، ساختار دادهها و الگوریتمها از اولویتهای مهم هستند، زیرا این موارد به کارایی برنامهنویسان کمک میکنند.
خلاصه فصل دوم:
این فصل به پشت پرده مصاحبه در شرکتهای بزرگ مثل مایکروسافت، آمازون، گوگل، اپل، و فیسبوک میپردازد. نویسنده برای هر شرکت توضیح میدهد که روند مصاحبهها چگونه است و نکات متمایز هر یک چیست:
مایکروسافت به آشنایی با محصولات و کدنویسی روی وایتبرد اهمیت میدهد.
آمازون بر طراحی سیستمهای مقیاسپذیر و وجود مصاحبهگری با حق وتو تمرکز دارد.
گوگل بیشتر روی الگوریتمها و طراحی سیستم تاکید میکند و تصمیم نهایی توسط مدیران گرفته میشود.
اپل، علاقهمندی به محصولات و روحیه کارآفرینی متقاضی را مد نظر دارد.
فیسبوک با یک دوره آموزشی آغاز میکند تا کارمندان با ابزارها و فرهنگ شرکت آشنا شوند.
نکات کلیدی:
مصاحبههای برنامهنویسی بر تفکر تحلیلی، دانش فنی، مهارت حل مسئله و تطابق فرهنگی تمرکز دارند.
هر شرکت فرایند خاصی برای ارزیابی مهارتها و سازگاری فرهنگی متقاضی دارد.
آمادگی برای پرسشهای طراحی سیستم و الگوریتمها در شرکتهای بزرگ اهمیت بالایی دارد.
متن جلسه:
درود بر همه شما دوستان امشب جلسه ۸۸ رادیو بیدا را با بررسی کتاب کرکینگ د کدینگ انترویو با حضور جناب آقای فرشاد کاظمی مهندس ارشد نرم افزار با بیش از شش سال فعالیت در این حوزه برگزار میکنیم آقای کاظمی خوشحالیم که امروز در خدمت شما هستیم برای گفتگو در مورد خلاصه دو بخش اول کتاب خواهش میکنم بفرمایید
مرسی از معرفی بله خوب کتاب بود که یه مدتی با دوستان میخونیم حالا بخاطر اینکه شرایط بهتر باشه سعی میکنیم که چیزی سر ضبط نشه معمولا ولی خلاصه هاشو آقای محمد آقا پیشنهاد دادن که ما بزریم و فصل یک و دو که تمام شده تقریبا گفتیم وقتشه از فصل یک شروع میکنیم اول از همه هم اینو بگم که کسایی هم که میخوان بیان جلسه رو خوشحال میشم و خوشحال میشیم چون یک نفر نیست من فقط حالا کسانی کتاب رو میخونه خوشحال میشیم داشته باشیم ش سه شنبه ها ساعت هشت شب الان و پنجشنبه ها هم پنجشنبه ها هم ساعت هشت شب سه شنبه ها کتاب رو میخونیم پنجشنبه ها هم مسئله است سعی میکنیم فصل اول فصل اولش خب خیلی چیز بیشتر مقدمه است یه جورایی داره سعی میکنه شما رو قانع کنه که بریم به سمت اینکه داستان چیه چیزی که تو این فصل بررسی میکنه حالا پیشگفتار بیشتر راجع به این صحبت میکنیم که آقا چی شد که اصلا این کتابو نوشته و چی شده که واسش مهمه این حل کردن مسائل به عنوان کسی که خود نویسنده کسی که مصاحبه میکنه و مهندس ارشد نرم افزار شروع میکنم به اینکه آقا کلا انترویوس معمولا چه شکلیه میگه چهار تا بخش داره یکی طرز فکر به اصطلاح انلیتیکال فکینگ طرز فکر آنالیز آنلیتیکال حالایک شما بررسی میکنه که اینکه شما چجوری فکر میکن میتونی سال الگوریتم راه حل خوب بهش بدیم یه راه حل خوب براش پیدا کنی یه معماری خوب براش بده این مهمه یه چیزی که مصاحبه گر از شما انتظار داره به عنوان برنامه نویس اینه که مهارت های کد نویسی ش چطوریه محله کد نویسی مثل اینکه حالا شما به اصطلاح فهمیدی که آقا این مسئله رو چجوری باید حل کرد یه راه حل پیشنهاد دادی با یک با یه سری حالا معماری خاص حالا آیا میتونید تبدیل کنید به الگوریتم میتونی شروع کنی و کد بنویسی حداقل معمولا در حد سود کد میخوند شاید خیلی واسشون مهم نباشه که تو سینتکس یا مثلا آخر کدذااری ولی مهمه که بتونی کدویسی بخش سوم که واسه ش مهمه بحث تکنیکال نالج یا اون دانش فنی و مربوط به کامپیوتر ساینس مثلا خیلی از اوقات اگر کار با سیستم عامل باشه مثلا شما چه میدونم ۳۰۰ ۳۰۰ حالا نمیشه گفت الان خیلی شاید خیلی چیز امبرلاترنیه خیلی ترم گسترده شاید شما مث کارت با سیستم عامل باشه بخوای سرور مدیریت کنی صد میپرسه آقا چجوری کار میکنه فردینگ چجوریه تو لینوکس چیزای این هر کاری نالج خودش میخواد الزاما هم شما بنا نیست که همه کورس های کورس های بلد باشید ولی یک چیز دیگه که مطرحه اینه که بالاخره دانش مرتبطش باید داشته باشید و مورد آخر هم مورد کالچfت میگه یا به اصطلاح تطابق فرهنگی که فرهنگ شما با فرهنگ کمپانی بخونه بعضی کمپانی ها واسشون خلاقیت اولویت بعضی ها سخت کوشی برشون اولویت بعضی ها مهمه که کارمند ش راضی باشه بعضی ها مهم اینه که کارمند های که میمونن تو شرکت هستند مهمتر باشه هر کس اولویت هاش فرق میکنه و وقتی با شما صحبت میکنه با توجه به کمپانی که هست چک میشه که آیا شما فرهنگ تو میخوره به این مثلا اگر شما کسی بودین که همیشه تو شرکت های کوچک کار کردین و سریع عادت داریم کار انجام میشه توی شرکت بزرگ واسشون خیلی قابل قبول نیست خیلی فرهنگ خوبی نیست یا برعکس همه اینا باز هم حالا شرایط خودش داره و اچ آر کسی که تشخیص میده که فرهنگ شما میخوره یا نه ولی خب یه بحثی که باید در ادامه مطرح میکنه میگه آقا اصلا چرا این پروسه هست آره خوب همه میدونیم که سال الگوریتم از شما میپرسن هیچ ملاک قاطعی نیست برای اینکه شما فرد مناسبی هستین برای کار یا نه و بحث همینه بحث اینه که نویسنده هم میگه من میدونم قبولم دارم ولی چند تا چند تا پارامتر مطرح میکنه یکی اینکه میگه که شرکت های که استخدام میکن پازتیوا رو کمتر کنند یعنی کسایی که به اشتباه استخدام میکنند کمتر کنند داشته باشد کسایی که یعنی حالا تعریف کسایی که به اشتباه یا رد میشن یا ریجکت میشن یعنی نگتیو میشه کسی که خوب بوده ولی ریجکت شده به اشتباه و اینو قبول میکنم میدونم که خیلی از مثلا شاید خیلی از کسایی که مصاحبه کنن و الگوری خوب کنند شاید کارمند های خوبی باشه ولی به این رسیدن که ما این ضرر رو قبول میکنیم در ازاش کسایی که میگیریم یعنی کسانی نیستند که به درد شرکت نخوره و این یه چیز خیلی مهمیه که دیدگاه اون شرکت و اون تیم استخدام شرکت رو بدونیم یکی دیگه هم مطرح میکنه میگه که مهارت های حل مسئله واقعا مهمه اینکه شما بتونی یه مسئله رو حل کنی که بتونی یه مسئله رو صفر تا صد این مسئله تعریف کنند و شما یه راه حل براش ارائه بدی به صورت الگوریتمی حتی در سطح بالا خیلی واسه شرکت مهمه بالاخره همه میتونیم کم کم کد نویسی رو یاد بگیریم قطعا زبان میبره قطعا هزینه بره ولی یه شرکت ترجیح میده رو افراد باهوشی سرمایه گذاری کنه که بتونه مهارت حل مسئله داشته باش چون این مهارت حل مسئله شاید سخت تر باشه به اصطلاح توسعه اش تو یک فرد تفکر الگوریتمی و تفکر اهل مرحله یه مورد بعدی که میگه آقا بیسیک دیتا استراکچر الگوریت واقعا مهمه و کاربردیه درسته که حالا شما هر روز سورت بزنیم هر روز نمیایم یه یه چه میدونم یه حلقه خیلی عجیب و غریب بنویسیم ولی واقعیتش اینه که اگه ندونیم که اصلا یه سری ال وجود داره نمیتونیم ازشون استفاده نمیدیم دنبالش که ازش استفاده کنیم و راه حل های غیر بهینه استفاده میکنیم مثلا اگر ندونیم که لیست وجود داره مییم با آرایه حلش میکنیم و این سرعت کار سرعت و بهینه بودن نرم افزار اثر تاثیر میذاره روش و این اینکه شما یک سری یه نالج بیس داشته باشی خیلی مهمه در عین حال خیلی از این مفاهیم اونقدر ساده است و بیسیک که شما همون نالج بیسیک رو داشته باشید میتونید مسائل جواب بده حالا شاید توی شرکت های بزرگ این یکم سر اون بحث رقابت تعداد بالاتری که اپلای میکن فرق کنه ولی شرکت های خیلی از شرکت ها واقعا مسائل سخت نمیپرسن حداقل تجربه من و مورد آخری هم که بحث میکنه میگه آقا خود همین وایت برد وقتی برد بحث میکنیم به شما کمک میکنه که رو چیزی که مهمه فوکوس کنیم نه اینکه روی از روی کد یا روی یه زبان خاص به جای اینکه بیاد یه نیرو رو بگیره که مثلا فقط جاوا اسکریپت فقط تایپ اسکریپت بلدشی یا هر زبان دیگه یه نیرویی میگیره که میتونه مسئله رو حل کنه میتونه مسئله رو بشکنه میتونه مسئله رو تیکه تیکه حل کنه به شیوه که مناسب همه این صحبت ها رو میکنه ولی آخرش هم میگه که آره آقا میدونیم همه این بهانه است همه اینا توجیه های که میتونیم بیاریم خوبه که بدونیم چه خبره ولی تهش یه سری شرکت هم تصمیم گرفتن اینجوری آدم استخدام کنن و ما هم میخویم استخدام بشیم و فعلا باید با این قضیه کنار بیایم همینه که هست حالا برای یکم بحث میکنه راجع به اینکه خب انترویو چجوری شما رو ریت میکنه چجوری بتونیم چه معیاری داره برای اینکه به شما نمره بده و این به اصطلاح ریت دادن و اینکه اکسپت ریجکت کنه حالا یکم میگه که گات فیلینگ طرفین که چه حسی داره اینجوری نیست که به شما یه عدد از صفر تا پنج عدد از دو تا سه مثلا دو7۵ یکی دو7۶ شد اون بهتره چون همچین معیاری وجود نداره حتی ممکنه سوال های شما فرق کنه با مصاحبه ولی از همه کس که تا الان مصاحبه کرده از کس که باهاشون کار کرده یه حس میکنه که شما آدمی هستی که می ارزی واسه اینجا می ارزی واسه این تیم می ارزی واسه اینکه شرکت استخدامت کنه یا نه خیلی از اوقات و اینکه رلتیو نسبیه الزاما به شما کاری نداره پس اگر مصاحبه میکن این روزها رد میشی یا یا قبول نمیشین امیدوارم به خودتون نگیرید و گاهی اوقات مارکت اشباع میشه گاهی اوقات هم مارکت اشباع نمیشه مهم اینه که ما تلاشون را بکنیم و تمرین مون داشته باشیم این خلاصه فصل یک بود اگه موافق باشین خلاصه فصل دور آخ جلسه مطرح خیلی خیلی ممنون متشکرم خب واسه خلاصه فصل دو اگر بخواهیم بگیم تو فصل دو نویسنده میاد چیکار میکنه میاد یه نگاهی میندازه به به قول خودش پشت پرده قضایا نگاه میکنه کمپانی بزرگتری که حالا این رویه رو دارند که الگوریتم میپرسند هر کدوم پروسهاش چه جوریه چه جوری واسش باید آماده شد و چه چیزی تو اون کمپانی منحصر به فرد شروع میکنه نویسنده از این صحبت میکنه خب کلاً میگه پروسه پروسه اینجوریه که یه دونه فونسی یک یا چند تا فون اسکرینینگ داریم که بهتون زنگ میزنند بعد آن سایت میشه خود همون یکی از اون هد های که میخوین کار کنید یا شرکت گوگل یا اپل یا هر جایی که هست حالا این عوض شده الان یکم بیشتر بحث میکنیم راجع بهش ولی میریم اونجا و اونجا حضوری با چند نفر مصاحبه میکنیم بعد که تموم شد آخر وقت معمولا نتیجه اش میاد که حالا شما تصمیم میگیرن که آقا شما را استخدام کنند یا نه شروع میکنم با مایکروسافت میگه مایکروسافت من فقط نکات مهمش میگم میگه که مایکروسافت پراسس خیلی مهمه بدونید سعی کنیدش حرف بزنید اگه که باهاش حرف زدین آخر پراسس با منجر هم خوبیه تو آن سایت و اینکه ازتون میخواد کد روی برد کد بنویسید احتمالا و دقیقا نیاز نیست کدتون دقیق باشه ولی خب باید بتونید کد بنویسید چیزی که میگه واسشون مهمه میگه باید نشون بدین که راجع بهشن محصول دولوپ میکن حالا یه سری کانسپت های که هست و اینکه چی راجع بهشون متفاوته میگه مایکروسافت تیم ها یکم آزادی بیشتری دارند و این آزادی بهشون کمک میکنه که نیرو که میخوند با سلیقه خودشون انتخاب کنند مث همون شاید به تیم یه نگاه بندازیم بد نباشه بعد سراغ آمازون میگه آمازون همون شیوه شبیه مایکروسافته معمولا یه یه اسکرین میگیرین یه تعداد کمی هستند که دوتا یا چند تا میگیند حالا دلیلش میتونه متفاوت باشه یا تست کرده طرف واسه تیم دیگه خوبین یا که میخو مطمئن بشه که شما سهمی رول خوب با یه تیم تیم مصاحبه میکن انترویو با شما مصاحبه میکنه بعد از اینکه گذشت آن سایت میشه باتون حرف میزنه و یک و چند تا انترویو رفت یکی از آنها شخصی به اسم با ریزر یا کسی که است بار میبره بالا و سطح مصاحبه میبره بالا و این فرد کسی که شما بهتره که تحت تاثیر قرارش بده و حق وتو داره و خلاصه آدم آدمی که آدمی که در واقع ترین شده بخاطر اینکه سطح همه مصاحبه ها رو یه جورایی یکسان کنه و به سطح استاندارد برسونه چیزی که واسه شما مهمه بدونین اینه که واسه آماده شدن راجع به اسکیل آمازون خیلی بحث میکنه و راجع به آب دیزاین خیلی واسش مهمه و چیزی که راجعش متفاوته یکی وجود همین با کسی که سطح مصاحبه یکی میکنه و اینکه کلا آمازون خیلی پویااست واسه همین این چیزایی که حالا گفته ما میگیم اینجا خیلی شاید صدا نکنه الزاما یه جورایی خودش زیر سوال برد یه چیزی اینجا مطرح کنم قبل از اینکه بریم جلوتر کلا این کتاب نسخه اش اگر اشتباه نکنم ۲۰۱۶ همه چیز که میشنوید قطعا یه بخشش عوض شده یه بخش عوض نشده به عنوان همه این رو میگن با این چاشنی شک نگاه کنیم ولی به این نگاه کنیم که یک زمان یک کمپانی خیلی خوب داشته از این مت استفاده میکرده و فعلا هم هنوز یه روش خلاقانه خیلی جدید نیامده چیزها فرایند ها مشابه پس شما همین که اینو بدونید و آماده کنید مثبت و نهایتا گوگل بکنید تو ردیت و جاهای دیگه میتونید ببینید که الان دقیقا با چه پروسه طی میشه ولی در کل اینکه الزاما رفتیم اونجا انتظار داشته باشید دقیقا با همین سرعت و با همین جزئیات اتفاق بیفته ممکنه نباشه مثلا مورد بعدی که گوگل این چی گفتش گفته که نویسنده میگه که آقا ما یه سری شایعه وجود داره که خیلی سخته ولی خیلی فرق نداره با بقیه فول اسکرینینگ داره که ممکنه داکیومنت شعر کنند توجه اصلی شان روی الگوریتم و اینکه آن سایت شش نفر باشه یک استراک چر نداره از اینکه چی و چه از چی میپرسند و از کجا میپرسند و اینکه بهتره که یکی از انترویو انترویو تحت تاثیر قرار بده که یه جوری شما چپین استخدام کن نمره بالاتری و هر کدوم ش حالا آخر بعد از اینکه مصاحبه کردن فیدبک ش میفرستند و اون موقع و آخر با هم حرف بزنن و ریکامندیشن ش میگن به های یه چیزی که مثلاً گوگل اضافه کردی مرحله است که به شما بریم گوگل مرحله اولشو بخوایم حذف کنیم که یه لینک میفرسته یه سری سوال سوال شخصیت شناسیه قبل از همه ایناست خیلی سرچ کنید خیلی سختی هم نیست فقط مهم خاطر اینه که شما شخصیت آدمی نیستیم که شکاک باشیم دو دل باشید کسی هستین که قاطع تصمیم میگیرین حالا مسائل دیگه یه جورایی جز بیبی ولی فیلتر اولیه است این یکی از تغییراتی که مثلا چند وقتی گوگل انجام داد حالا میگه که چی با چجوری خودتونو آماده کنید میگه دیزاین یه سیستم اسکبل طراحی کنیم خوب پس باید آماده باشیم واسه دیزاین همچین سیستم های و یکی هم اینکه الگوریتمسشون مهمه خوب پس طبیعتا خونده باشید انترویو و چه چیزی راجع بهش متفاوته اینکه انترو تو تصمیم نمیگیرن راجع به شما فقط فیدبک میدن و یه هاتی که ممکنه توش نباشه و اون توصیه نهایی میکنه به تیم مدیریتی و آنها باز تصمیم میگیند که آیا این توصیه خوبه و شما حالا اگه گفته استخدام کنید نکنید عمل کنند یا اینکه نه خودشون چه تصمیم بگیرند حتی ممکنه اگرچه خیلی رایج نیست ولی علیه برخلاف اون توصیه هم عمل شرکت بعدی که میگه اپله یه اپل شش تا هشت انترویو داره و یه سری هاشون هم اعضای تیمی که شما میخوید بهش جوین بشید بعضی از مصاحبه ها یک به یک یا دو به یک آخر آخر روز که این حالا بعد از این فرایندهای ف اسکرینینگ طبیعتا آن سایت بیشتر بحث میکنم چون اسکرین اکثر شرکت ها یک یا دوتاست و میاد میگه که خوب آخر روز که میشه با هم یه جلسه میزارن با شما با وی پی شرکت جلسه داری اگر که فیدبک هاشون مثبت باشه وگرنه شما رو خوش آمد میگن تا دم در و دیگه هم جواب نمیگن نمیگن چه خبر شد دیگه منتظر نباشید خلاصه جواب منفی چی واسشون مهمه مهم اینه که شما راجع به شرکت و محصولات پشنت باشید که میپرسند و چی متفاوت باز هم همین که دوست داره که واقعا محصولاتش استفاده کنید کرده باشید یا حداقل بشناسید فیسبوک فیسبوک میاد دوتا ف اسکرین داره بازم مثل گوگل شاید توی دا میفرسته ممکنه به کوسشن بده و اینکه انترویوور اثر کمتری روی انترویو داره چرا چون همه انترویو ها یه سری ترینینگ دیدند و این سعی میکنه اثرش خنثی کنه چند تا رول های مختلف دارند یک سری ها ش بی من یه سریشون هم دیزاین و این بعد از اینکه باید مصاحبه کردن فیدبک هاش میفرستم و بعد با هم حرف میزنند در مورد این چیز مثبتی که اگر یکی خراب کردین مصاحبه بعدی اصلا نمیذاره چیزی که دوست چیزی که خودتون آماده کنید که سعی کنید روحیه کارآفرینی و اینکه آقا من هک روی هکر بودن حالا اینکه آقا من این مسئله حل میکنم نشون بده و اینکه میتونید سوشن های که ارائه میدین اسکیلبل باشه بازم چون شرکت بزرگیه چیزی راجع بهش متفاوته اینکه بازم تو آن انترویو داریم یکی از چیزاش وقتی که جو باید بدونید ولی یه نکته متش اینه که مثل خیلی از شرکت ها نیست که به بحث استخدام شروع کار برین شروع کنید توی تیم کار کردن جو بود کمپ شش هفته ای میشین تو اونجا باید کد بزنید یک آماده بشین با فرهنگ ش آشنا بشین با ابزار های که دارند و بعد از شش هفته معمولا به یه تیم اس می میشه این نکته متفاوتشه این بهتون کمک میکنه که تو انتخاب تیم تو بیشتری داشته باشید یه شرکت دیگه که آخر گفته اسمش پلنتییر پلتییر اینجوری کار میکنه که به جای اینکه بیاد به عنوان نیرو استخدام کنه واسه شرکت میاد نیروی استخدام میکنه برای یه تیم خاص واسه همین یکم سوال اسپسیف تر دوتا داریم3 تا 45 دقیقه اگر موفق شدید میریم با تقریبا تا پنج نفر آدم های که باهاشون مصاحبه میکن و ازتون سوال میپرسند سوال کد و حالا سوال فنی و دانشجوی مرتبط تو چی خودتون آماده کنید تا میتونید سوال برنامه نویسی حل کنید اگر خواستین و الگوریتم خیلی سخته سیستم دیزاین ش خیلی مهمه و سوال های سختی ازش مطرح چی منحصر به فرد سوالهای سختی سوالاش یکم منحصر به فرد راجع به این ولی همونجوری که خود نویسنده میگه معنی نیست که خیلی خوب جواب ندادی سادگی سوال سختی نیست که اگه درست جواب ندیم استخدام نمیشه بیشتر همونجوری که تو فصل یک هم گفت گفت مهم این گاد فیلینگ مصاحبه کننده است این خلاصه فصل یک و دو و بعد از این دیگه میریم سراغ فصل سه جای خوشحال میشیم بعد دوستان مختلف جوین بشن اگه دوست داشتن و ببینیم حالا اسم فصل است اسپشیال یا موقعیت های خاص خیلی ممنون متشکرم لطف کردید