چگونه مصاحبه برنامه‌نویسی خود را انجام دهید

شکل ۱. نقشه راه مصاحبه
شکل ۱. نقشه راه مصاحبه
منتشر‌شده در freecodecamp به تاریخ ۱۰ می ۲۰۲۱
لینک منبع How to Ace Your Coding Interview – Advice from a Senior Software Engineer

مصاحبه‌های فنی یکی از پر‌استرس‌ترین بخش‌های فرود یک شغل در فن‌آوری است. شما نمی‌دانید مصاحبه‌کننده چه سوالاتی خواهد پرسید. چه می‌شود اگر هیچ ایده‌ای نداشته باشید که چگونه مشکل را در مقابل خود حل کنید؟ چه اتفاقی می‌افتد اگر یخ بزنید و طوری به نظر برسید که انگار نمی‌دانید چه کار می‌کنید؟

بسیاری از برنامه‌نویسان مشتاق در‌حالی‌که سعی می‌کنند هر سوال مصاحبه کدنویسی را به خاطر بسپارند، خود را به هیجان می‌آورند. من و شما هر دو می‌دانیم که این رویکرد ناپایدار است. من اینجا هستم تا به شما بگویم که راه ساده‌تری وجود دارد. من به تازگی با دوستم میشل، که یک مهندس ارشد نرم‌افزار در «استیچ فیکس» (یک شرکت به تازگی متعلق به شرکت «IPOd») است، گفتگویی داشتم. او ویژگی‌هایی را که به دنبال آن است را در توسعه‌دهندگان که با آن‌ها مصاحبه می‌کند، به اشتراک گذاشت.

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

شاید مطالعه مقاله اشتباهات رایج هنگام برخورد با پرونده‌های چندگانه پایتون برای شما مفید باشد.

ویژگی‌هایی که باید در مصاحبه کدنویسی ذکر کنید.

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

موفقیت به خاطر سپردن همه مشکلات و راه‌حل‌ها نیست. بلکه درباره یادگیری نحوه حل مشکلات است. به عنوان یک توسعه‌دهنده، یک نوع پاسخ LeetCode وجود نخواهد داشت. اینجاست که چارچوب‌های ذهنی فوق‌العاده مفید هستند. آن‌ها تنها به اندازه کافی قطعیت حل مسئله ایجاد می‌کنند تا بر یک مشکل ظاهرا مبهم غلبه کنند.

در اینجا اجزای کلیدی «میشل» برای ایجاد یک چارچوب ذهنی کشنده برای مصاحبه کدگذاری شما آورده شده است.

کنجکاو باشید

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

بنابراین من باید راهی پیدا کنم تا بررسی کنم که آیا یک مجموعه از کاراکترها شامل هیچ عددی هستند یا نه؟

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

  • آیا اعدادی که من به دنبالش هستم حاوی اعشار هستند؟
  • آیا قبل از چک کردن آن‌ها باید کاراکترها را به هر طریقی دسته‌بندی کنم؟

با آغوش باز به استقبال پیشنهادها بروید.

چیزی که به راحتی می‌توان آن را فراموش کرد این است که مصاحبه‌کنندگان از شما می‌خواهند که موفق شوید. اکثر مصاحبه‌کنندگان می‌خواهند بازخورد و پیشنهادها فوری را به نامزدها ارائه دهند. اما نامزدها اغلب رویکردی غیر‌کلامی و صریح نسبت به مصاحبه کدگذاری اتخاذ می‌کنند.

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

  • بنابراین من باید راهی برای جدا کردن کاراکترها از اعداد پیدا کنم، درست است؟
  • « من به تکرار مجموعه شخصیت‌ها از انتها به انتها فکر می‌کنم.»
  • « من یک راه برنامه‌ریزی برای تکرار از طریق کاراکترها می‌خواهم، اما از طریق اعداد متوقف می‌شوم.»

هرچه بینش بیشتری داشته باشید، مصاحبه‌کننده بیشتر احساس می‌کند که تمایل به کمک کردن دارد.

کار مشترک

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

  • آیا حلقه برای این راه‌حل بسیار ساده / پیچیده است؟
  • تعیین اینکه آیا شناور وجود دارد یا خیر، چقدر مهم است؟
  • آیا راه‌حلی در ذهن دارید؟
ممکن است علاقمند به مطالعه مقاله به حداکثر رساندن سودآوری کسب‌وکار خود با پایتونباشید.

مشتاق باشید که فقط به دنبال آن بروید.

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

حتی اگر مجبور باشید اجرای خود را رمز گشایی کنید، بهتر از این است که بیش از حد عصبی باشید تا امتحان کنید. قرار دادن چیزی بر روی صفحه شطرنج، بحث را دعوت خواهد کرد، فرصتی برای به اشتراک گذاشتن افکارتان، و فرصتی برای یادگیری. از شکست نترسید! این به این معنی است که شما یک گام به موفقیت نزدیک‌تر هستید.

«فقط به دنبال آن بروید» می‌تواند معانی زیادی داشته باشد. با این حال، در اینجا چند مثال از آنچه که می‌تواند به نظر برسد آورده شده است:

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

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

شما می‌خواهید کنجکاو باشید و پذیرای پیشنهادها باشید. شما باید با مصاحبه‌کننده همکاری کنید. تمایل داشته باشید که به دنبال موفقیتی باشید که می‌خواهید ببینید.

این متن با استفاده از ربات مترجم مقاله برنامه‌نویسی ترجمه شده و به صورت محدود مورد بازبینی انسانی قرار گرفته است.در نتیجه می‌تواند دارای برخی اشکالات ترجمه باشد.
مقالات لینک‌شده در این متن می‌توانند به صورت رایگان با استفاده از مقاله‌خوان ترجمیار به فارسی مطالعه شوند.