عنوان:

‫نمونه سوالات مصاحبه استخدامی


نویسنده: وحید نصیری
تاریخ: ۱۳۸۹/۱۱/۲۹ ۰۲:۱۲:۰۰
آدرس: www.dntips.ir

مطلبی رو در سایت آقای اسکات هنسلمن دیدم که به نظرم برای برگرداندن به فارسی جالب اومد. شاید باعث شود که اندکی به فکر فرو رویم که ... چکار داریم می‌کنیم و قرار است به کجا برویم/برسیم.

نمونه سوالات مصاحبه استخدامی برنامه نویس‌های ارشد

  • - آیا هنوز کد می‌نویسید؟ آیا به آن علاقمندید؟!
  • - آیا می‌دانید SOLID چیست؟
  • - آیا می‌دانید SRP مخفف چیست و چه اهمیتی دارد؟
  • - پروژه‌ای مبتنی بر یک فناوری جدید به شما انتساب داده شده است. چگونه آن‌را آغاز خواهید کرد؟
  • - در مورد IOC یا Inversion of control چه می‌دانید؟ ارتباط آن با dependency injection چیست؟
  • - برنامه 2 tier با برنامه‌ی 3 tier چه تفاوتی دارد؟
  • - فلسفه‌ی وجودی Interface چیست و چه اهمیتی دارد؟
  • - الگوی Repository را شرح دهید. الگوی Factory‌ چیست؟ چرا الگوهای طراحی برنامه نویسی شیءگرا مهم هستند؟
  • - Anti-patterns کدامند؟ توضیح دهید.
  • - آیا تابحال اسم Gang of Four به گوشتان خورده است؟ در چه موردی است؟
  • - ارتباط الگوهای MVP ، MVC و MVVM در چیست؟ هر کدام از این الگوها در چه زمانی‌هایی بهتر است بکار گرفته شوند؟
  • - مفهوم جداسازی وابستگی‌ها (Separation of Concerns) چیست. مزایا و معایب آن کدامند؟
  • - سه ویژگی اصلی طراحی شیءگرا را نام برده و توضیح دهید.
  • - یک الگوی طراحی را توضیح دهید که در خانواده‌ی الگوی Factory قرار نمی‌گیرد. این الگو چه زمانی بهتر است بکار برده شود و چگونه؟
  • - فرض کنید یک پروژه‌ی قدیمی را که از مشکلات حاد نگهداری رنج می‌برد، به شما انتساب داده‌اند. چه فاکتورها و اقداماتی را جهت بهبود این وضعیت درنظر گرفته و چگونه برنامه را به سمت یک پروژه‌ی پایدار پیش خواهید برد؟
  • - مفهوم Service Orientation چه اثری را بر طراحی سیستم‌ها خواهد گذاشت؟ کجاها بهتر است استفاده شود؟
  • - در مورد portfolio تمام برنامه‌هایی که تاکنون بر روی آن‌ها کار کرده‌اید توضیح دهید. شما چه نقشی در طراحی آن داشته‌‌اید؟
  • - منهای بانک‌های اطلاعاتی رابطه‌ای، با چه روش‌هایی جهت ذخیره سازی اطلاعات آشنایی دارید؟ مزایا و معایب آن‌ها چیست؟
  • - در مورد مفهوم convention over configuration توضیح دهید. آخرین مثال عملی که در این مورد دیده‌اید چه بوده است؟
  • - در مورد سیستم‌های بدون حالت و با حالت (stateless and stateful) توضیح دهید. اثر هر کدام بر parallelism چیست؟
  • - تفاوت‌های بین Stubs و Mocks چیست و از هر کدام در کجاها استفاده خواهید کرد؟
  • - مفهوم YAGNI را به همراه یک مثال عملی توضیح دهید.
  • - sandbox چه معنایی دارد؟ آیا می‌توانید مثال‌هایی عملی از این مفهوم را در سیستم‌های موجود نام ببرید؟
- در مورد Concurrency به سوالات زیر پاسخ دهید:
  • - حالت‌های با و بدون قفل در مدل‌های Concurrency چه تفاوتی دارند؟
  • - زمانیکه از مدل‌های با قفل و یا بدون قفل استفاده می‌کنید ممکن است به چه مشکلاتی برخورد کنید؟
  • - مفهوم resource contention را توضیح دهید.
  • - مدل بر مبتنی بر وظیفه با مدل مبتنی بر ریسمان چه تفاوت‌هایی دارند؟ ( task-based model & threaded model )
  • - تفاوت‌های بین asynchrony و concurrency را توضیح دهید.

نظرات

  • مهمان در ۱۳۸۹/۱۱/۲۹ ۲۲:۲۸:۴۶
    واقعا سوالات سختی به نظر می رسند!اما شاید برای ما که در این کشور زندگی میکنیم اینطور به نظر میاد وقتی سوالات استخدامی بزرگترین سازمان ها و ... ی ما از معارف و ادبیات و ریاضیه و بزرگترین شرکت های نرم افزاری هم در نهایت از شما #C را میخوان با یکم ارتباط با db دیگه هیچکس نیازی به یادگیریه این مسائل نداره!
    مشکل جایی بیشتر میشه که این مطالب رو بلد باشی و بخوای در یک شرکت ازش استفاده کنی!مثلا بخوای WPF را جای فرم های Access ایشان کنی!
  • مهمان در ۱۳۸۹/۱۱/۳۰ ۱۱:۵۹:۲۳
    سلام
    نمیدونم چی بگم ولی شاید این سوالات برای کسیه که میخواد تو تیم هانسلمن کار کنه.وگرنه تو سایتهای خارجی هم خیلی ها هستن که ما میتونیم سوالاشونو جواب بدیم و از اونهای خیلی بالاتریم.البته این یه چیز نسبیه.بهر حال اینا نیازمند یه نظام آموزشی پیشرفتس که الان مشاهده نمیشه
  • مهمان در ۱۳۸۹/۱۱/۳۰ ۱۸:۲۹:۱۹
    یه حسی به من میگه نصفش سر کاریه !

    یعنی منظورشون از طرح سوال بیشتر فهمیدن IQ بوده !
  • وحید نصیری در ۱۳۸۹/۱۱/۳۰ ۲۲:۳۵:۳۸
    به 70 درصد این سوالات با خواندن یک کتاب ASP.NET MVC با رویکرد Unit testing و همچنین یک کتاب Design patterns می‌شود پاسخ داد.
    • مهمان در ۱۳۹۱/۰۸/۰۴ ۱۵:۵۸
      کتاب اصول برنامه نویسی (Foundation of Programming) که به فارسی هم ترجمه شده هم منبع خوبی برای شروع می‌تونه باشه.