سئوالات متداول مصاحبه برنامه نویس سی شارپ دات نت

dotnet interview questionsدر این پست به بیان سئوالات متداول و پرکاربرد می پردازم و به زودی پست های دیگری برای پاسخ به این سئوالات منتشر خواهم کرد.به عنوان یک برنامه نویس در ابتدا باید اطلاعات مناسبی از دیتابیس ها داشته باشید، به همین جهت معمولا در مصاحبه های فنی برنامه نویسی، چند سئوال در خصوص دیتابیس ها پرسیده می شود :1- در زمان تعریف ایندکس در دیتابیس برای یک جدول، بر چه اساسی باید ایندکس تعریف کرد؟2-عبارت dead lock چیست و چه مفهومی داره و چه زمانی اتفاق می افتد؟3- سطوح مختلف transaction isolation level را در دیتابیس بگویید؟4- تفاوت SQL database و No-SQL database ها را بگویید؟5- انواع ایندکس گذاری در دیتابیس ها را بگویید؟ تفاوت clustered index و non-clustered index ها را بگویید.6- برای اضافه کردن یک رکورد با کوئری به جدولی که کلید اصلی آن identity هست و می خواهیم عدد مورد نظر را به عنوان کلید اصلی تعیین کنیم، باید چه کار کرد؟اگر به عنوان برنامه نویس ارشد در حال مصاحبه باشید، ممکن است سئوالات سخت تری نیز از شما پرسیده شود، مانند :7- مفاهیم ACID را توضیح بدهید.8- در خصوص window function ها در SQL Server توضیح دهید.9- در خصوص CTE توضیح دهید.10- یک کوئری بنویسید که سومین رکورد از یک لیست 10 تایی محصولات که به ترتیب قیمت مرتب شده را بر گرداند.11 - یک کوئری بنویسید که یک لیست ده تایی از محصولات را که بر اساس قیمت مرتب شده را برگرداند و یک ستون به عنوان ردیف داشته باشد و همچنین یک ستون به عنوان جمع تجمیعی قیمت هر ردیف با ردیف قبلی داشته باشد.12- آیا در یک function در sql server می توان از یک store procedure استفاده کرد؟پس از این سئوالات، نوبت به سئوالات پایه یی در خصوص برنامه نویسی سی شارپ میرسه:1- تفاوت struct و class در چیست ؟ توضیح دهید.2- کلمه pointer یعنی چی ؟ آیا در سی شارپ pointer داریم؟ 3- انواع Stack و Queue در سی شارپ را توضیح دهید؟ تفاوت آنها با Array و List را بگویید.4- کاربرد Multi-Threading را در برنامه نویسی توضیح دهید؟ در خصوص Thread و Task توضیح دهید.5- درباره Lockو Mutex و Semaphore توضیح دهید.6- در مورد حافظه Stack و Heap توضیح دهید و تفاوت و کاربرد آنها را بگویید.7- انواع کلی data type ها در سی شارپ را بگویید. چند مثال در خصوص آنها بزنید.8- در خصوص Middleware در دات نت توضیح دهید.9- در خصوص Dependency Injection پیشفرض در دات نت کور توضیح دهید و انواع حالت های آن را بیان کنید و توضیح دهید.10- در خصوص انواع Filter attribute که در سی شارت دات نت کور وجود دارد توضیح دهید. وقتی که چندین فیلتر بر روی یک اکشن داریم، اولویت اجرا برای فیلترها با کدام فیلتر است ؟11- در خصوص پروتکل http و انواع message های این پروتکل توضیح دهید.12- در خصوص انواع متدها یا verb های پروتکل http توضیح دهید.13- در خصوص exception handling و بلاک های catch و final توضیح دهید.پس از این مدل سئوالات، در صورتی که تا اینجا پاسخ های مناسبی داده باشید، ممکن است چند تا سئوال در خصوص اصول و الگوهای برنامه نویسی پرسیده شود، مانند :1- اصول SOLID را توضیح دهید.2- تفاوت DIP و IoC و DI را بگویید.3- روش پیاده سازی دیزان پترن Singleton را بیان کنید.4- تفاوت دیزاین پترن Factory را با Simple Factory بگویید.5-دو تا از پرکاربرد ترین دیزان پترن ها را در برنامه هایی که تاکنون نوشته اید را بیان کنید و در خصوص آنها توضیح دهید.6- در خصوص Domain Driven Design توضیح دهید؟ DDD چیست ؟7- مفاهیم اصلی DDD را بیان کنید.همچنین قبل از پایان مصاحبه ممکن است که یک مسئله به شما بدهند و بخواهند که آن را بنویسید، مانند این مسئله : /* write c# code : Given a list of words and a string, finds and returns the word in the list that is scrambled up inside the string. There will be at most one matching word. The letters don't need to be in order or next to each other. The letters cannot be reused. Example: words = [&quotcat&quot, &quotbaby&quot, &quotdog&quot, &quotbird&quot, &quotcar&quot, &quotax&quot] string1 = &quottcabnihjs&quot FindEmbeddedWord(words, string1) -> cat (the letters do not have to be in order) */