سوالات جدید مصاحبه کاری برای مهندسین نرم افزار
پنجشنبه 27 آبان 1395در این مقاله، مجموعه ای از سوالاتی که در مصاحبات کاری برای مهندسین نرم افزار مطرح میشود را جمع آوری کرده ایم . این سوالات بیشتر روی طراحی نرم افزار تمرکز دارند.
این مقاله درباره " چگونگی داشتن یک مصاحبه کاری خوب " نیست ، بلکه هدف از ارائه این مقاله آشنایی با سوالاتی است که ممکن است در مصاحبه های کاری برای مهندسان نرم افزار مطرح شود :
در زیر چیزی که برای شما جمعآوری کردیم را مشاهده میکنید :
- به عنوان یک developer ، چه کار اساسی ای برای بهبود دادن زندگی حرفه ای خود ، کرده اید ؟!
- آیا خودت رو به عنوان یک استادکار قبول داری ، و این چه معنی برای تو دارد ؟!
- پیاده سازی یک Data Structure ساده با یک زبان برنامه نویسی بر روی کاغذ ، تخته یا notepad .
- SOLID چیست ؟!
- به چه دلیل اصل مسئولیت پذیری مهم است ؟
- Inversion of Control چیست ؟ و چه رابطه ای با Dependency Injection دارد ؟
- چند مثال در مورد anti-patternها ارائه دهید .
- چه رابطه ای بین MVC , MVp و MVVm وجود دارد ؟ و چه زمانی از اینها استفاده میکنیم ؟
- مفهوم Concern of Separation را توضیح دهید .
- نام سه Attribute اصلی طراحی شی گرا را نام ببرید . مفهوم انها را توضیح دهید و بگویید چرا آنها مهم میباشند .
- یک pattern که Factory Pattern نیست را ، شرح دهید . چه زمانی و چگونه از آن استفاده میکنیم .
- شما در یک پروژه مشکلات نگهداری از کد را خواهید داشت . چه کاری برای بهبود این امر انجام خواهید داد ؟
- فهرستی از پروژه هایی که روی آن کار کردید را ارائه دهید ، و درباره انها توضیح دهید .
- چه راه های جایگزینی غیر از پایگاه داده رابطه ای برای ذخیره داده ها وجود دارد ؟
- concept of convention در Configuration را توضیح دهید و در مورد convention هایی که تا کنون مشاهده کرده اید ، توضیحاتی را ارائه دهید .
- تفاوت بین سیستم های Stateless و Stateful را شرح دهید .
- تفاوت بین Mocks و Stubs/Fakes را شرح دهید .
- در مورد concept of YAGNI بحث کنید .
- مفهوم Sandbox را توضیح دهید و دلیل استفاده از آن را نیز شرح دهید .
- همزمانی :
• چه تفاوتی بین Locking و Lockless در مدل های همزمانی چیست ؟
• ما در استفاده از مدل های Locking با مشکلاتی مواجه خواهیم شد ؟ در مورد Lockless چگونه است ؟!
• برای منابع رقابتی چه چیز هایی را سبک سنگین میکنید ؟
• چه تفاوت هایی بین asynchrony و concurrency وجود دارد ؟
- هنوز کد مینویسید ؟ آیا علاقه ای به آن دارید ؟
- زمانی که با در پروژه باید از تکنولوژی استفاده کنید که با آن آشنایی ندارید ، کار را چگونه شروع میکنید ؟
- افزونه Service Orientation چگونه باعث تغییر در سیستم میشود ؟ چه زمانی فرصت استفاده از آن است ؟
- چه کار هایی برای بروز نگه داشتن خود در مورد تکنولوژی ها و ابزار ها میکنید .
- چه تفاوت هایی بین منطق "set" و منطق "procedular" وجود دارد ،در چه زمانی از کدام منطق استفاده میکنید؟
- با چه سیستم های کنترل منابعی کار کرده اید ؟
- همبندی پیوسته (Continuous Integration) چیست ؟ تجربه استفاده ازآن را دارید ؟ به چه دلیلی مهم است ؟
- چرخه تولید یک نرم افزاری که آن را مدیریت کرده اید را شرح دهید .
- در برابر انتقادات مردم به کدها و برنامه هایتان چه واکنشی نشان میدهید ؟
- کدام blogها و podcastها رادنبال میکنید ؟
- درباره پروژه هایی که برای سرگرمی انجام داده اید توضیح دهید ؟
- آخرین کتاب مرتبط با برنامه نویسی ای که مطالعه کرده اید ، چی بوده است ؟
- درباره ی ساختار و محتوای یک design document توضیح دهید .
- چه مطلب جالبی در مورد تکنولوژی های روز دنیا میدانید ؟
- زمانی که به یک مشکل بر میخورید که توانایی حل آن را ندارید ، چه واکنشی نشان میدهید ؟
- اگر پایگاه داده شما تحت فشار سخت باشد ، اولین کاری که برای بالا بردن سرعت آن میکنید ، چیست ؟
- SQL Injection چیست ؟
- چه تفاوت هایی بین unit test و integration test وجود دارد ؟
- در مورد سه شکستی که در پروژه هایتان داشته اید ، مطالبی را بیان کنید .
- Refactoring چیست ؟ تا بحال تجربه استفاده از آن را داشته اید ؟ نام سه تا از Refactoring را بیان کنید .
-شما دو کامپیوتر دارید و میخواهید اطلاعاتی را از این سیستم به دیگری منتقل کنید ، از چه روشی استفاده میکنید ؟
- تفاوت های بین web server, web farm و web garden را بیان کنید . برای هر کدام برنامه شما نیاز به چه تغییراتی دارد .
- کدام مولفه های OO design مستعد و آماده آسیب رساندن هستند ؟ برای کم کردن این آسیب ها چه باید کرد ؟
- چگونه متوجه میشوید که کدهای شما برای محصول نهایی آماده است ؟
- YAGNI چیست ؟
- ویژگی های یک کد بد که دیده اید را توضیح دهید .
- برنامه نویسان
- 9k بازدید
- 7 تشکر