برنامه نویسی

تنها اشتباهی که مهندسان همیشه در مصاحبه های طراحی سیستم مرتکب می شوند

این مقاله توسط فهیم الحق، بنیانگذار و مدیر عامل Educative نوشته شده است.

در بیش از 15 سالی که مصاحبه‌های طراحی سیستم را انجام می‌دهم، نامزدهای ماهری را دیده‌ام فرصت های شغلی را از دست بدهند به یک اشتباه شگفت انگیز

این یک جزء در طراحی آنها را فراموش نمی کند. این هم نیست که پایگاه داده SQL یا noSQL را انتخاب کنند.

البته، فرصت‌های زیادی برای اشتباهات فنی در مصاحبه طراحی سیستم وجود دارد – این به ویژه برای نامزدهایی که تازه وارد طراحی سیستم شده‌اند صادق است.

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

آن اشتباه یک است عدم نشان دادن مهارت های نرم. می تواند اشکال مختلفی داشته باشد:

  • مهارت شنیداری ضعیف
  • عدم پاسخگویی مناسب به بازخوردها
  • طراحی حول مفروضات
  • عدم برقراری ارتباط با روند فکری خود

از بسیاری جهات، مصاحبه طراحی سیستم، سطح ارشدیت شما را تعیین می کند. (مصاحبه طراحی سیستم قوی می تواند به معنای تفاوت بین شروع در فیس بوک به عنوان E5 به جای E3 باشد.) همانطور که برای نقش های بالاتر مصاحبه می کنید، از شما انتظار می رود که نشان دهید مهارت های پیشرفته تر طراحی سیستم و مهارت های نرم – دومی از این دو جایی است که اکثر نامزدها ناآماده می آیند.

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

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

چرا مهارت های نرم در مصاحبه طراحی سیستم اینقدر اهمیت دارند؟

برای روشن بودن، آمادگی مصاحبه شما باید اصول فنی را به طور کامل پوشش دهد.

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

وجود دارد بدون پاسخ عینی درست یا غلط به یک مشکل مصاحبه طراحی سیستم. بلکه راه حل های متعددی وجود دارد.

این بدان معنی است که راه حل فنی شما به تنهایی نشان دهنده موفقیت شما نخواهد بود – اینگونه است که شما به آنجا می رسید که به حساب می آید.

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

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

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

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

مصاحبه طراحی سیستم

4 رفتاری که مصاحبه کنندگان در مصاحبه های طراحی سیستم به دنبال آن هستند

رفتارهایی که “سیگنال های قابل استخدام” را به مصاحبه کنندگان می فرستند تا حد زیادی می توانند به چهار ستون تقسیم شوند.

1.) برقراری ارتباط موثر

چرا؟ نمایش مهارت های نرم شما کاملاً به توانایی شما در برقراری ارتباط متکی است.

ارتباط در تمام طول مصاحبه اتفاق می افتد. شما باید در بسیاری از موارد شرکت کنید گفتگو – چه در مکالمه با مصاحبه کننده یا روایت شما از روند فکرتان.

مکالمه با مصاحبه کننده شما تا حد زیادی توسط شما هدایت می شود سوالات. هر مصاحبه طراحی سیستم با یک اعلان مبهم آغاز می شود. برای درک مشکل خود، باید سؤالاتی بپرسید تا ناشناخته ها را روشن کنید.

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

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

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

2.) پیمایش مبادلات

چرا؟ مدیریت موثر مبادلات نیازمند مهارت های اولویت بندی و توجه به جزئیات است.

معاوضه های مصاحبه

هنگامی که الزامات و محدودیت های کلیدی یک سیستم را شناسایی کردید، باید بر اساس مبادلات طراحی کنید.

آ مصالحه سازش بین دو ویژگی مطلوب و ناسازگار است. به عنوان مثال، شما نمی توانید یک برنامه بانکی داشته باشید که هم از امنیت بالایی برخوردار باشد و هم در دسترس باشد. شما باید حول محور حیاتی ترین ویژگی برای مشکل در دست بهینه سازی کنید.

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

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

3.) نشان دادن سطح تخصص مناسب برای نقش خود

چرا؟ اگر نتوانید چشم انداز مناسبی را برای نقش خود نشان دهید، نمی توانید در ارشدیت بالا بروید.

اگر نمی توانید به مصاحبه کنندگان خود نشان دهید که می توانید دیدگاه مناسبی را برای نقش مورد نظر خود به ارمغان بیاورید، در خطر سقوط قرار دارید.

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

حرفه فنی

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

بنابراین، در پایان مصاحبه خود، باید زمانی را برای غوطه ور شدن در موضوعات خاص صحبت کنید. مربوط به سطح مورد نظر شما (و نقش).

دیدگاه مورد انتظار بسته به نقش متفاوت خواهد بود.

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

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

خارج از مهندسی، مدیران پروژه فنی انتظار می رود به این موضوع بپردازند که چگونه فناوری های انتخابی آنها به متغیرهایی مانند بودجه و تعهدات ذینفعان بستگی دارد.

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

۴) زمان خود را مدیریت کنید

چرا؟ شما باید طرح خود را تکمیل کنید تا زمان کافی برای بحث در مورد آن داشته باشید.

علاوه بر غواصی عمیق‌تر در موضوعات خاص نقش خود، باید برای موارد مختلف در مصاحبه طراحی سیستم خود زمان اختصاص دهید: مقدمه، طراحی، سؤالات و موارد دیگر.

مهم است که استراتژیک باشید زیرا شما فقط 45 دقیقه وقت دارید – و زمان به سرعت خواهد گذشت.

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

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

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

تسلط بر جنبه رفتاری مصاحبه های طراحی سیستم

از هر 5 داوطلب مهندسی نرم افزار تنها 1 نفر کل فرآیند مصاحبه فنی را پشت سر می گذارد – و مصاحبه طراحی سیستم رایج ترین شکست است.

از برقراری ارتباط موثر گرفته تا صحبت کردن مناسب سطح شما، موارد بسیاری وجود دارد نکاتی که ای کاش می توانستم آزادانه تر به اشتراک بگذارم با نامزدهایی که مصاحبه کردم به همین دلیل است که من از به اشتراک گذاشتن آنها در آن هیجان زده هستم اولین دوره ای که من نوشته ام در آموزشی

کتابچه راهنمای آمادگی مصاحبه طراحی سیستم یک است دوره رایگان اختصاص داده شده به بهترین شیوه های رفتاری نادیده گرفته شده در مصاحبه طراحی سیستم.

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

در پایان این دوره، شما قادر خواهید بود با اطمینان وارد مصاحبه طراحی سیستم خود شوید و:

  • از اشتباهات رایجی که می تواند اجتناب کنید بی سر و صدا رد صلاحیت شما
  • بحث کنید نکات صحبت مناسب برای نقش مورد نظر شما
  • نشان دادن همکاری مهارت ها، سازگاری و طرز فکر رشد
  • فرآیند طراحی در دنیای واقعی را شبیه سازی کنید، حتی اگر دارید بدون تجربه قبلی

شما همچنین با یک مجموعه ای از چارچوب ها و ابزارهای اثبات شده به شما کمک می کند تا مهارت های فنی خود را به نمایش بگذارید.

وارسی کتابچه راهنمای آمادگی مصاحبه طراحی سیستم امروز و به من بگویید که چه فکر می کنید!

اگر از دست دادید، به اشتراک گذاشتم نکات بیشتر در مصاحبه طراحی سیستم در حالی که در وبینار اخیرم به سوالات زنده پاسخ می دهم: Cracking the System Design Interview در سال 2023. بازپخش را بررسی کنید تا بیاموزید که چگونه آمادگی مصاحبه خود را در شرکت های خاص هدف قرار دهید، و اینکه چرا تسلط بر مصاحبه طراحی سیستم کمک فوق العاده ای به شما در حرفه شما می کند.

مثل همیشه، یادگیری مبارک!

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

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

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

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