ترجمه و اقتباس از مقاله Ace Your Technical Interview: What Got Me Into Google, Microsoft and More in The Startup Community on Medium. قبل از اولین مصاحبه کارآموزی، نمیدانستم که سؤالات فنی نیز مطرح شود. تصور میکردم که فقط یک سری سؤالات «درباره خودت به من بگو» در انتظار من باشد. با این حال، من هم آمادگی مناسبی برای آنها نداشتم. دو ساعت را در مرکز راهنمایی شغلی گذراندم و سعی کردم از همه توصیههای ارزشمندی دریافت کنم و دو ساعت دیگر را در خانه به تمرین پاسخ به سؤالات مختلف پرداختم. اما وقتی برای مصاحبه آمدم، مصاحبه کننده در مورد نقاط قوت و ضعف من نپرسید. در عوض، یک نشانگر به من دادند و گفتند که به تخته بروم. و حتی فکرش را هم نمیکردم که ابتدا مهارتهای فنی من را بررسی کنند! این مرا غافلگیر کرد. نمی دانستم چگونه به سؤالات پاسخ درست بدهم و چند ساعت بعد ایمیلی دریافت کردم که مودبانه امتناع می کرد. خوشبختانه بعد از این اتفاق مصاحبه های موفق زیادی داشتم. من در پنجاه مصاحبه فنی شرکت کرده ام و بسیاری از دوستانم را برای آنها آماده کرده ام. به نظر میرسد رویکرد من کاملاً خوب عمل میکند، زیرا به من و دیگران در مصاحبههای شرکتهایی مانند گوگل، مایکروسافت، اپل، آمازون و غیره کمک کرده است. من می خواهم شخصاً به همه کمک کنم، اما زمان کافی برای این کار وجود ندارد. بهترین کاری که می توانم انجام دهم این است که یک راهنمای گام به گام در مورد نحوه انجام مصاحبه های فنی به اشتراک بگذارم. من از طریق آزمون و خطا یاد گرفتم که در چنین شرایطی چه کارهایی را می توان و نمی توان انجام داد. بنابراین در اینجا لیستی از نکات مفید از من است که طی چندین سال تمرین گردآوری کرده ام.
1. مستقیما وارد مصاحبه های ساختگی نشوید.
مردم معمولاً توصیه می کنند تا حد امکان مصاحبه های ساختگی انجام دهید - و حق با آنهاست. اما اگر آمادگی ندارید، یک مصاحبه ساختگی میتواند بیاثر، ارعابکننده و حتی تضعیف کننده روحیه باشد. من از روی تجربه می توانم به شما بگویم: اگر من با شخصی که کاملاً ناآماده بود به عنوان تمرین مصاحبه می کردم، در نهایت احساس بی انگیزگی می کرد زیرا در سؤالات "شور" می کرد و به خوبی پاسخ نمی داد. برای آماده شدن بهتر و درک اینکه مصاحبه فنی چگونه است، وقت بگذارید. در اینجا یک مثال خوب از یک مصاحبه ساختگی در گوگل آورده شده است:
2. مهارت های ارتباطی > سطح آموزش فنی
بسیاری از مردم با صرف ساعت ها در سایت هایی مانند LeetCode و Hackerrank برای مصاحبه های فنی آماده می شوند. اینها بسترهای عالی برای تمرین هستند. اما بهتر است قبل از اینکه چند ساعت را برای حل مشکلاتی که فکر میکنید در مصاحبه با آنها روبرو خواهید شد، هدر دهید، کمی استراحت کنید. این یک رویکرد ناکارآمد است: در یک مصاحبه حداقل با یک سؤال روبرو می شوید که قبلاً در هیچ کجا ندیده اید. برخی از دوستانم برنامه نویسان قوی تری نسبت به من دارند و من اغلب از این که چرا در تست های سوابق فنی خود شرکت کردم در حالی که آنها (گاهی اوقات) این کار را نکردند، تعجب می کردم. بزرگترین تفاوت بین ما احتمالاً این است که من زمان زیادی را صرف تمرین مهارت های ارتباطی خود کردم. به طور جدی: اگر نتوانید منطق راه حل خود را به وضوح توضیح دهید، دانستن چگونگی حل 100 کار فنی برتر کمکی نخواهد کرد. یادگیری فرمول بندی افکار بسیار مهم است. در ابتدا ممکن است همه اینها سخت، ناهنجار و غیرطبیعی به نظر برسد، اما تمرین کمک می کند. مهم است که پیشینه فنی خود را به روز نگه دارید، اما توسعه مهارت های ارتباطی شما شاید حتی مهم تر باشد. اگر قبل از مصاحبه آینده تحت فشار هستید، بهتر است بر روی ارتباطات تمرکز کنید تا اینکه سعی کنید مطالبی را که دو سال برای مطالعه در علوم کامپیوتر گذراندهاید در دو روز دوباره تکرار کنید. قبل از مصاحبه فنی بعدی، سعی کنید این را یاد بگیرید:
2.1 یاد بگیرید که سوالات روشن کننده بپرسید
یکی از مزیت های اصلی مصاحبه توانایی شفاف سازی سوالی است که از شما پرسیده شده است. معمولا کسانی که مصاحبه می کنند همه اطلاعات را نمی دهند، بنابراین باید جزئیات بیشتری را از آنها استخراج کنید. شما نمی توانید یک مشکل را بدون درک کامل آن حل کنید! برای تمرین، می توانید چند سوال از مصاحبه های فنی بگیرید و یک سری سوال روشن کننده برای آنها مطرح کنید. برای مثال، اگر از شما خواسته شود فهرستی را مرتب کنید، ممکن است بپرسید:
- چگونه یک لیست را به ترتیب صعودی یا نزولی مرتب کنیم؟
- لیست شامل چه نوع داده هایی است؟
- آیا میتوانید مثالی بزنید که ورودی و خروجی داده برای این نوع کار چگونه باید باشد؟
- و غیره.
ممکن است سوالات زیادی وجود داشته باشد - اینها فقط چند نمونه هستند. دقت کنید که تفاوت های ظریف مختلف را روشن کنید: نمونه ای از ورودی و خروجی را بخواهید
- نوع داده را مشخص کنید
- بررسی کنید که آیا محدودیتی در محدوده مقادیر وجود دارد یا خیر
- بپرسید که آیا باید با لبهها سر و کار داشته باشید
- دریابید که آیا می توانید از کتابخانه ها و ویژگی های خاصی از زبانی که در آن برنامه نویسی می کنید استفاده کنید یا خیر
2.2 بیان افکار را بیاموزید
هنگامی که تمام سؤالات روشنگر را پرسیدید و دقیقاً بدانید که برای حل مشکل به چه چیزی نیاز دارید، وقت آن است که یاد بگیرید چگونه ماهیت راه حل خود را به درستی بیان کنید. اگر فقط شروع به نوشتن کد کنید بدون اینکه توضیح دهید چرا این کار را در طول مسیر انجام می دهید، برای مصاحبه کننده دشوار خواهد بود که بفهمد آیا شما درست می گویید یا نه. برای این کار امتیازی دریافت نخواهید کرد، نه به این نکته که ممکن است در نهایت راه حل اشتباه بنویسید. وقتی منطق پشت تصمیم خود را در طول مسیر توضیح می دهید، مصاحبه کننده می تواند شما را در مسیر درست راهنمایی کند، اگر کمی از مسیر درست خارج شوید. قبل از نوشتن هر کدی، این را امتحان کنید:
- به همکار خود در مورد راه حل احتمالی خود بگویید - آیا می توانید مشکل را "به صورت" حل کنید و آیا این امکان وجود دارد یا می توان به نحوی آن را بهبود بخشید؟
- راه حل خود را گام به گام با یک مثال دنبال کنید تا به اصل کار آن پی ببرید.
- راه حل را به چند مرحله تقسیم کنید و شبه کد یا "اسکلت" را بنویسید تا مصاحبه کننده روند فکر شما را درک کند.
- راه حل خود را با موارد مختلف لبه تست کنید تا ببینید آیا همه چیز را پوشش داده اید یا خیر. نظر مصاحبه کننده را بخواهید.
برای تمرین، یک سوال مصاحبه کار شده را مطرح کنید و سعی کنید پاسخ صحیح (راه حل) را به یک دوست بگویید. اگر دوستی پیدا نکردید، یک حیوان عروسکی یا هر چیز دیگری بردارید و روی آنها تمرین کنید.
3. دانش فنی و مهارت های خود را بهبود بخشید
هنگامی که نحوه برقراری ارتباط صحیح در مصاحبه را یاد گرفتید، می توانید تمام انرژی خود را برای بهبود دانش فنی خود صرف کنید. حتما الگوریتمها و ساختارهای داده را بررسی کنید. مطمئن شوید که موضوعات کلیدی مانند ساختارهای داده، مرتبسازی، کار با الگوریتمها، عملگرهای بیتی، نمادهای Big O و غیره را درک میکنید.
لیست چیزهایی که باید بدانید بسته به موقعیتی که برای آن درخواست می کنید متفاوت است.
4. تمرین کنید!
اکنون با ارتقای مهارت ها و دانش لازم، می توانید تمام انرژی خود را به تمرین بریزید.
دوره JavaRush شامل بسیاری از وظایف "پازل" و کل پروژه ها برای ایجاد راه حل های کاربردی است. |
سعی کنید نه فقط یک راه حل بنویسید، بلکه به مراحل آن فکر کنید: ذهنی سؤالات روشن کننده بپرسید، در ساختار فکر کنید و تنها پس از آن راه حل را بنویسید. این به شما کمک می کند در مصاحبه اعتماد به نفس بیشتری داشته باشید و اعتماد به نفس پادشاه است!
5. اگر در طول مصاحبه "موقعیت" گرفتید چه باید کرد؟
حالا بیایید تصور کنید که وارد یک مصاحبه واقعی شده اید و ناگهان متوجه شده اید که این سوال شما را گیج کرده است. شما نمی دانید چه کاری باید انجام شود و چگونه مشکل را حل کنید. می خواهی فقط از اتاق فرار کنی و برنگردی. من درک می کنم - من در موقعیت هایی بوده ام که هنوز در کابوس خواب آنها را می بینم. اما نگران نباشید-هنوز همه امیدها از بین نرفته است. این بیش از یک بار در طول مصاحبه اتفاق افتاد، اما آنها معمولا با یک پیشنهاد به پایان می رسید. سخت است، اعصاب شما را خرد می کند، اما هر چیزی ممکن است.
کمی استراحت کنید و فکر کنید. نفس بکش، افکارت را مرتب کن. شاید شما یک "سرنخ" داشته باشید.
راه حل خود را با یک مثال ساده تست کنید. سعی کنید یک نسخه ساده از راه حل برای یک مشکل مشابه ایجاد کنید، اما ساده تر، با توجه به اقدامات گام به گام. به عنوان مثال، اگر شما نیاز به مرتب سازی یک لیست دارید، چه کاری انجام می دهید؟ شما کوچکترین عدد را پیدا کرده و در ابتدا قرار می دهید. چگونه این راه حل را در کد پیاده سازی می کنید؟
در مورد راه حل خصوصی به ما بگویید. اگر راه حل کاملی پیدا نشد، اشکالی ندارد. این را به مصاحبه کننده بگویید، اما اجازه دهید او در رشته افکار شما وارد شود. آیا این چالش شبیه چالش هایی است که با آن مواجه شده اید؟ آیا به نظر می رسد که باید از یک ساختار داده خاص برای حل آن استفاده کنید؟ منطقی که شما را راهنمایی می کند به اشتراک بگذارید.
صادق باشید. اگر مطمئن هستید که سوالی که از شما پرسیده شده مربوط به حوزه ای از دانش است که برای شما ناآشنا است، در مورد آن به مصاحبه کننده بگویید. بگویید که برای یافتن راه حل آماده اید، اما هنوز مهارت های لازم را ندارید. یک بار از من سوالی در رابطه با امنیت شبکه پرسیده شد. آن زمان در این زمینه تمرینی نداشتم که به مصاحبه کنندگان گفتم. اصول لازم را برایم توضیح دادند تا بتوانم از پس کار بربیایم. افراد واقعی با شما مصاحبه خواهند کرد :) آنها شما را کاملا درک می کنند، زیرا خودشان در موقعیت های مشابه بوده اند. اینها همه نکاتی است که من در طی چندین سال مصاحبه به آن دست یافته ام. آنها به من و دوستانم کمک کردند تا وارد شرکت های برتر شویم. در جستجو موفق باشید!
GO TO FULL VERSION