چگونه به سوالات یک مصاحبه کدگذاری پاسخ دهیم؟

شکل ۱. کدنویسی
شکل ۱. کدنویسی
منتشر‌شده در: towardsdatascience به تاریخ ۱۴ ژوئن ۲۰۲۱
لینک منبع How to Answer a Coding Interview Question?

مصاحبه‌های کدگذاری بخش مهمی از موقعیت‌های مختلف مربوط به نرم‌افزار مانند مهندس نرم‌افزار، مهندس یادگیری ماشینی، دانشمند داده و غیره هستند. اکثر شرکت‌ها از کدگذاری برای غربالگری فنی خود استفاده می‌کنند. این به این معنی است که اگر شما نمی‌توانید کد گذاری خوبی داشته باشید، آن‌ها روند مصاحبه شما را پیش نمی‌برند. اوایل امسال، زمانی که من برای موقعیت‌های مختلف مهندس ML درخواست داده بودم، تقریبا ۸۵٪ از مصاحبه‌های غربالگری فنی اولیه من شامل مراحل کدگذاری بود.

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

با چه چیزی شما را ارزیابی می‌کنند؟

اولین چیزی که باید درک کنیم این است که مصاحبه‌کنندگان به چه چیزی علاقه دارند تا ما بتوانیم آن‌ها را براساس آن مخاطب قرار دهیم. مصاحبه‌کننده معمولا شما را براساس معیارهای ارزیابی زیر ارزیابی می‌کند (EC)

مورد (EC1)-توانایی درک سوال

مورد [EC2]-توانایی جمع‌آوری اطلاعات در صورت نیاز

مورد [ EC3 ]-فرآیند فکری شما زمانی که با یک مشکل نشان داده می‌شود

مورد [ EC4 ]-توانایی کد کردن به شیوه‌ای سازمان‌یافته / مدولار

مورد[ EC5 ]-مهارت‌های کدگذاری و توانایی شما برای ارزیابی محدودیت‌های زمان اجرا

مورد (EC6)-توانایی تحقق بخشیدن به بهبود در کارتان

قالب کدگذاری

من متوجه شدم که واقعا تعریف یک الگو و استفاده از آن در طول مصاحبه‌های کدگذاری مفید است. این الگو به بخش‌بندی فرآیند فکری شما به شیوه‌ای سازمان‌یافته کمک می‌کند تا از صحبت بیش از حد در مورد یک چیز جلوگیری کرده و زمانی برای دیگران باقی نگذارد. همچنین به هدف قرار دادن عوامل لازم (EC1-EC6) که مصاحبه‌کننده به دنبالش است کمک می‌کند.

چگونه به یک سوال کدگذاری پاسخ دهیم؟ قالب (تصویر نویسنده)

۱. به سوال گوش دهید:

مصاحبه‌کننده این سوال را توضیح می‌دهد و به سراغ یک مثال اسباب‌بازی می‌رود تا به شما کمک کند مشکل را درک کنید. در حالی که مصاحبه‌کننده آن را توضیح می‌دهد، نکات مهم را در یک برگه جداگانه یادداشت کنید، که فکر می‌کنید موارد مهمی هستند.

هدف: [ EC1 ]

۲. در مورد درک خود از این سوال صحبت کنید:

پس از گوش دادن به سوال، داخل برنامه نروید و شروع به کد نوشتن نکنید (حتی اگر دقیقا بدانید مشکل چیست و چگونه باید آن را حل کنید). در عوض، سوال را تکرار کنید و درک خود را تایید کنید. از پرسش‌های روشن‌کننده مانند

  1. نوع داده ورودی / خروجی چه محدودیت‌هایی دارد؟
  2. آیا محدودیتی در اندازه / طول ورودی وجود دارد؟
  3. اگر ورودی نامعتبر باشد چه اتفاقی می‌افتد؟
  4. موارد خاص / کورنر: سوالات خاص مساله مانند چه اتفاقی می‌افتد وقتی شما یک کاراکتر غیررقمی را در یک رشته می‌بینید که در آن رشته‌های دو رقمی باید تکثیر شوند؟ (آیا آن را به عنوان ورودی نامعتبر در نظر می‌گیرید، یا کاراکتر غیر رقمی را نادیده می‌گیرید؟

اغلب اوقات مصاحبه‌کننده تمام اطلاعات مورد نیاز را به شما نمی‌دهد. یکی از چیزهایی که مصاحبه‌کننده به دنبال یک نامزد است این است که بتواند سوالات درست را برای جمع‌آوری تمام اطلاعات لازم بپرسد.

هدف: [ EC1 ]، [ EC2 ]

۳. درباره رویکرد خود بحث کنید:

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

هدف: [ EC3 ]

۴. کدگذاری را آغاز کنید:

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

« اکنون ما یک حلقه را برای تکرار روی فهرست xyz یک عنصر در یک زمان تعریف می‌کنیم به طوری که می‌توانیم هر عنصر را با توجه به خروجی مورد نظر [ یا دلیل خاص مساله ] پردازش کنیم.»

در صورتی که شما در جایی گیر کرده باشید، مصاحبه‌کننده اشارات ظریفی به شما خواهد کرد. دقت کنید که به این اشارات توجه کنید.

هدف: [ EC4 ]، [ EC5 ]

۵. درباره پیچیدگی زمان و فضا بحث کنید

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

هدف: [ EC5 ]

۶. رویکرد را بهینه‌سازی کنید (در صورت امکان یا پیشنهاد مصاحبه‌کننده)

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

هدف: [ EC5 ]، [ EC6 ]

این الگوی ۶ مرحله‌ای به شما کمک می‌کند سوال مصاحبه را تقسیم و حل کنید.

خلاصه:

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

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