برنامه نویسی

چه کسی واقعاً نیاز به کرک کردن مصاحبه کدنویسی دارد؟

عبارت “کرک کردن مصاحبه کدگذاری” از کتاب شناخته شد کرک کردن مصاحبه کد نویسی نوشته شده توسط Gayle Laakmann McDowell (مهندس نرم افزار، سابق گوگل، مایکروسافت و اپل).
این کتاب مجموعه ای از تمرین های کدنویسی است که اغلب در طول مصاحبه های فنی در بسیاری از شرکت ها، به ویژه در FAANG (فیس بوک، آمازون، اپل، نتفلیکس، گوگل) پرسیده می شود. هدف کتاب این است که داوطلب را برای پاسخگویی به این نوع سوالات آماده کند.

من واقعاً از صحبت کردن در مورد این موضوع لذت می برم و اخیراً به جلسه پایتون میلانو دعوت شده بودم تا در این مورد صحبت کنم (این بحث است).

چرا این کتاب را خواندم

من در این نوع مصاحبه ها خوب نیستم. اما من می خواستم در این زمینه بهتر شوم. اگرچه منابع خوب آنلاین زیادی وجود دارد (مثلاً رتبه هکر و leetcode)، من می‌خواستم از این کتاب برای سنجش مهارت‌هایم استفاده کنم.
من همچنین شک داشتم، زیرا فکر نمی‌کنم برای اینکه یک مهندس نرم‌افزار خوب باشید، باید در این زمینه ذوق داشته باشید.

تعجب

من آن را امتحان کردم و چیزی غیرمنتظره پیدا کردم. نویسنده در مقدمه کتاب می گوید:

  • من آموخته ام که بسیاری از مصاحبه کنندگان از این کتاب برای یادگیری نحوه مصاحبه استفاده می کنند. واقعاً هدف کتاب این نبود
  • این برای همه، هر شرکت یا هر موقعیتی مناسب نیست
  • دقیقاً همین سوال را در اینجا نپرسید

این ذهن من را به هم ریخت در واقع، من همیشه فکر می‌کردم که بسیاری از مردم فقط به این دلیل که فکر می‌کنند باید این کار را بکنند، این گونه سوالات را می‌پرسند. این نوع اعتقادات من را تایید کرد.

باشه اما… چه جور مصاحبه ای؟

اگر با موضوع آشنا نیستید، در اینجا یک مثال ساده برای درک آنچه من در مورد آن صحبت می کنم آورده شده است:

Write a function that takes a list as an argument and returns the most common element of that list

توضیحات تصویر

من می دانم که این به نظر بسیار آسان است، اما وقتی در طول مصاحبه از او پرسیده می شود ممکن است حل کردن آن سخت باشد.
در اینجا چند نکته سریع وجود دارد که به نظر من واقعاً مفید است:

نکن

  • نوشتن کد را شروع کنید: اغلب باید سؤال را بیش از یک بار دوباره بخوانید تا بفهمید چه کاری باید انجام دهید
  • ساکت باشید: مصاحبه‌کننده می‌خواهد بفهمد که آیا می‌تواند با شما کار کند و بداند که شما در مورد یک مشکل چگونه فکر می‌کنید. بلند فکر نکردن نشانه خوبی نیست
  • به دنبال راه حل بهینه بروید: گاهی اوقات بهتر است به دنبال آن بروید آ راه حل، نه را راه حل

انجام دادن

  • سوالات روشن کننده بپرسید: سعی کنید مشکل را عمیقاً درک کنید، این باعث صرفه جویی در وقت شما می شود (حتی در مشکلات زندگی واقعی نیز)
  • با صدای بلند صحبت کنید: به این موضوع به عنوان یک گفتگو با مصاحبه کننده فکر کنید، نه به عنوان یک مصاحبه شغلی
  • ابتدا حل کنید، بعداً بهینه سازی کنید: بالا را ببینید

ارزشش رو داره؟

حتی اگر فکر نمی‌کنم لازم است در این تمرین‌ها خوب باشید، فکر می‌کنم که تمرین روی آن‌ها می‌تواند به شما در بهبود مهارت‌ها و یادگیری چیزهای جدید کمک کند (مثلاً برخی از راه‌های رایج برای حل مشکلات). به علاوه، اگر می خواهید برای شرکت هایی مانند FAANG کار کنید، اجباری است.
بنابراین توصیه من این است که مدتی را به کار روی این موضوع اختصاص دهید و حتی مقداری پول خرج کنید (مثلاً در کتاب یا در یک دوره آموزشی خود را آماده کنید).
این مانند یک سرمایه گذاری روی خودتان است و در این صورت می توانید مطمئن باشید که بازدهی خوبی از سرمایه خود خواهید داشت. زمانی که برای تمرین صرف می کنید همیشه به خوبی صرف می شود.

کدنویسی-مصاحبه-در مقابل-کار-واقعی

اما پس از آن، ظهور

چرا شرکت هایی که این سوالات را می پرسند، این سوالات را می پرسند؟
راه حل این معضل را می توان در آنچه نویسنده کتاب می گوید: من آموخته ام که بسیاری از مصاحبه کنندگان از این کتاب برای یادگیری نحوه مصاحبه استفاده می کنند. واقعاً هدف کتاب این نبود. من فکر می کنم مشکل اینجاست که اغلب مصاحبه کننده آمادگی انجام مصاحبه را ندارد. من نمی گویم این تقصیر آنهاست یا در کارشان خوب نیستند. فقط می‌پرسم آیا آنها وقت داشتند که برای انجام این فعالیت آموزش ببینند؟
بنابراین، من شروع به “مصاحبه” مصاحبه کننده کردم. به عنوان مثال:

  • مصاحبه کننده: متاکلاس ها در پایتون چیست؟
  • من: آیا تا به حال از آنها در کد خود استفاده کرده اید؟
  • مصاحبه کننده: نه، اما می دانم که شخص دیگری این کار را کرده است

نکته اصلی من در اینجا این است که مصاحبه کننده بر روی آنچه که برای کار نیاز دارد تمرکز نکرده است، بلکه فقط روی پرسیدن یک سوال تمرکز کرده است.

آنچه که من دوست دارم

در اینجا لیستی از کارهایی است که من دوست دارم در طول مصاحبه انجام دهم یا شرکتی که با آن مصاحبه می کنم انجام می دهد:

  • شما در واقع کد را می نویسید یا به آن نگاه می کنید: این به شما و مصاحبه کننده چیزی عملی برای صحبت کردن در مورد آن می دهد و درک اینکه آیا می توانید با هم کار کنید می تواند مفید باشد.
  • شما در مورد آزمون ها صحبت می کنید: دیگر نیازی به کلمات نیست
  • مخزن عمومی github: این به درک نحوه کار افراد شرکت کمک می کند
  • مصاحبه کننده از شما می خواهد که موفق شوید و باهوش به نظر نرسید: گاهی اوقات افراد فقط برای اینکه نشان دهند چقدر باهوش هستند سؤال می پرسند، بدون اینکه فکر کنند آیا سؤال برای آنها مفید است یا خیر. لطفا این کار را نکنید
  • فرآیند مصاحبه صریح (که بهتر از ضمنی است): نامزد باید بداند که چقدر زمان برای فرآیند استخدام از او خواسته شده است تا الف) خود را سازماندهی کند و ب) فکر کند که آیا ارزش دارد یا خیر.
  • بازخوردها (+ و -): بازخوردها همیشه مفید هستند و هرگز نمی دانید که آیا نامزد دفعه بعد خوب خواهد بود یا خیر. همچنین، اگر یک شرکت بازخورد نمی دهد، آیا واقعاً در آنجا کار می کنید؟

یک POV دیگر

لازلو بوک، معاون سابق عملیات مردمی @Google، کتابی به نام قوانین کار نوشت! جایی که او در مورد نحوه انجام عملیات افراد توسط گوگل صحبت می کند. در فصل 3 کتاب درباره مصاحبه ها و فرآیند استخدام به طور کلی صحبت می کند:

  • استخدام تنها مهم ترین فعالیت در هر سازمانی است
  • ما متوجه شدیم که بازی های فکری اتلاف کامل زمان هستند. چند توپ گلف را می توانید در هواپیما جا دهید؟ چند پمپ بنزین در منهتن؟ اتلاف وقت کامل آنها چیزی را پیش بینی نمی کنند. آنها در درجه اول این کار را می کنند که مصاحبه کننده احساس باهوشی کند. برخی از مصاحبه کنندگان ما هنوز از آنها می پرسند. من دارم سعی می کنم آنها را متوقف کنم.

آنچه شرکت ها باید انجام دهند

من همیشه به این فکر می کردم استخدام تنها مهم ترین فعالیت در هر سازمانی است به دلایل زیادی مهمترین آنها این است که فرصتی عالی برای درک بهتر شرکت است. نقاط قوت و ضعف شما چیست؟ به چه نوع افرادی نیاز دارید؟ می خواهید چه نوع شرکتی باشید؟
برای انجام این کار، من فکر می کنم که افراد درگیر در هر فرآیند استخدام باید آموزش ببینند که چگونه مصاحبه انجام دهند و بر تعصبی که می تواند منجر به تصمیمات بد شود غلبه کند.
انجام این کار آسان نیست، اما ارزشش را دارد.

منابع


با تشکر برای خواندن! من همیشه آماده دریافت بازخورد، توصیه یا سؤال هستم، در صورت تمایل با من تماس بگیرید!

السیو ایزو، مهندس نرم افزار
لینکدین: https://www.linkedin.com/in/alessio-izzo-06b5398b/
GitHub: https://github.com/aless10
توییتر: https://twitter.com/alessio_izzo86

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا