This document contains a list of technical questions covering topics like object oriented programming, .NET framework, C#, XML, web services, databases, algorithms, data structures, and testing. The questions are intended to help distinguish skilled software developers from less qualified candidates during the hiring process. While there may be multiple valid answers, the goal is to start interesting discussions rather than identify single right answers.
Download as DOC, PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
37 views
SD Question List
This document contains a list of technical questions covering topics like object oriented programming, .NET framework, C#, XML, web services, databases, algorithms, data structures, and testing. The questions are intended to help distinguish skilled software developers from less qualified candidates during the hiring process. While there may be multiple valid answers, the goal is to start interesting discussions rather than identify single right answers.
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 10
Technical Questions
Object Oriented Programming
1. Encapsulation 2. Abstraction 3. Composition 4. Coupling /Cohesion 5. Class 6. Object 7. nheritance !. "iamon# $roblem %. $ol&morphism '(tatic/"&namic) 1*.O+erloa#ing 11.O+erri#ing 12.(ha#o,ing 13."esign $attern .Net Framework 1. -hat is the .net .rame,or/ 2. Common language runtime purpose 3. C0( 4. nterme#iate language 5. 1ust in time compiler 6. 2arbage Collector 7. 3e4ection !. Assembl& %. 2AC 1*.$ri+ate +s. 2lobal Assembl& 11.(5.e6e 12.Assembl& +ersioning Language [C# 1. 2enerics 2. $artial class 3. Enumeration 4. 3e.erence +s. +alue t&pe 'heap +s. stac/) 5. Access mo#i7er 6. Our8 re. /e& ,or#s 7. (tatic !. Collection t&pes %. 3e4ection 1*.5amespace 11.(eale# 12.(eriali9ation 13.:hrea#ing 14.0amb#a e6pression 15.05; 16.<=0 relate# classes 17.A#o.net a. "ataset b. "ata3ea#er c. $ro+i#ers #. "ata a#apter e. "ata>ie, .. 3o,7lter g. Acceptchanges !"L 1. -ell .orme# 6ml 2. >ali# 6ml 3. Attributes +s element 4. 5amespace 5. <s# 6. <slt 7. <path !. <?uer& #CF 1. -hat is it 2. -hat is A@C 3. -hich protocols it support 4. -hatAs the usage #indows $er%ice 1. -hat is it 2. Bo, to #eplo& 3. Bo, to #ebug &eneral 1. 3e4ector 2. O3 mapper 3. Ob.uscator 's(.net 1. (tate =anagement 2. (er+er +s. Client si#e 3. (er+er si#e state sa+ing object 4. Client si#e state sa+ing objects 5. $age li.e c&cle 6. -eb application +s. ,ebsite project #iCerence 7. -eb.con7g !. 2lobal.asa6 %. :hemes 1*.(/in 7le +s. css 7le 11.=aster $age 12.Custom control 13.Dser control 14.$age #irecti+es 15.-eb part 16.>ali#ation controls 17.Custom +ali#ator client/ser+er +ali#ation 1!.Aja6 '6mlhttpre?uest) 1%."ata controls 2*.2ri# +ie, E+ents 21.Authentication/Authori9ation 22.3esponse.3e#irect +s.(er+er.trans.er 23.Bttp han#ler )atabase Question 1. AC" 2. 3"@=( 3. 5ormali9ation 4. "emorali9ation 5. n#e6es 6. 1oins 7. $rimar& /e& +s. uni?ue /e& !. Composite /e&8 Can#i#ate /e& %. 3e.erential integrit& 1*.Eunction +s. (tore# $roce#ure 11.(?l ser+er +ersion relate# ?uestions 12.1oins 't&pe 13.0e.t join 14.Bo, #o &ou implement oneFtoFone8 oneFtoFman& an# man&FtoFman& relationships ,hile #esigning tables 15.Bo, transaction is implemente# Hiring smart software developers is not easy. If you're not careful you might end up hiring a bunch of moronic mandrills, like I did last year. And you don't want that. Trust me. Stand-up meetings are very hard to do in a tree. The key is to ask challenging questions that enable you to distinguish the smart software developers from the moronic mandrills. And to help you with that, I decided to publish my private list of 100 interview questions for software developers. This list covers most of the knowledge areas as defined by the Software ngineering !ody of "nowledge. #f course, if you're $ust looking for brilliant programmers, you may want to limit the topics to Construction, Algorithms, Data Structures and Testing. And if you're looking for architects, you can $ust consider the %uestions under the headings Requirements, Functional Design and Technical Design. !ut whatever you do, keep this in mind& For most of the questions in this list there are no right and wrong answers' My questions are simply starting points for interesting discussions. (or e)ample& there is a %uestion about reasons to use static methods vs. singletons. If this triggers your candidate to start a tirade againt both static methods and singletons, there's a good chance you're dealing with a smart software developer' !ut if the candidate can produce nothing more than a blank stare and this sound, then he might very well be a moronic mandrill. *ikewise, there are many correct ways to find out whether a number is a power of +. !ut if the candidate suggests using the mod operator, well... you know what I mean. ,And if you don't, no problem. (ancy a banana-. Requirements /. 0an you name a number of non-functional ,or %uality. re%uirements- +. 1hat is your advice when a customer wants high performance, high usability and high security- 2. 0an you name a number of different techni%ues for specifying re%uirements- 1hat works best in which case- 3. 1hat is re%uirements tracing- 1hat is backward tracing vs. forward tracing- 4. 1hich tools do you like to use for keeping track of re%uirements- 5. 6ow do you treat changing re%uirements- Are they good or bad- 1hy- 7. 6ow do you search and find re%uirements- 1hat are possible sources- 8. 6ow do you prioriti9e re%uirements- :o you know different techni%ues- ;. 0an you name the responsibilities of the user, the customer and the developer in the re%uirements process- /<. 1hat do you do with re%uirements that are incomplete or incomprehensible- Functional Design /. 1hat are metaphors used for in functional design- 0an you name some successful e)amples- +. 6ow can you reduce the user's perception of waiting when some functions take a lot of time- 2. 1hich controls would you use when a user must select multiple items from a big list, in a minimal amount of space- 3. 0an you name different measures to guarantee correctness of data entry- 4. 0an you name different techni%ues for prototyping an application- 5. 0an you name e)amples of how an application can anticipate user behavior- 7. 0an you name different ways of designing access to a large and comple) list of features- 8. 6ow would you design editing twenty fields for a list of /< items- And editing 2 fields for a list of /<<< items- ;. 1hat is the problem of using different colors when highlighting pieces of a te)t- /<. 0an you name some limitations of a web environment vs. a 1indows environment- Technical Design /. 1hat do low coupling and high cohesion mean- 1hat does the principle of encapsulation mean- +. 6ow do you manage conflicts in a web application when different people are editing the same data- 2. :o you know about design patterns- 1hich design patterns have you used, and in what situations- 3. :o you know what a stateless business layer is- 1here do long-running transactions fit into that picture- 4. 1hat kinds of diagrams have you used in designing parts of an architecture, or a technical design- 5. 0an you name the different tiers and responsibilities in an =-tier architecture- 7. 0an you name different measures to guarantee correctness and robustness of data in an architecture- 8. 0an you name any differences between ob$ect-oriented design and component-based design- ;. 6ow would you model user authori9ation, user profiles and permissions in a database- /<. 6ow would you model the animal kingdom ,with species and their behavior. as a class system- Construction /. 6ow do you make sure that your code can handle different kinds of error situations- +. 0an you e)plain what Test-:riven :evelopment is- 0an you name some principles of )treme >rogramming- 2. 1hat do you care about most when reviewing somebody else's code- 3. 1hen do you use an abstract class and when do you use an interface- 4. Apart from the I:, which other favorite tools do you use that you think are essential to you- 5. 6ow do you make sure that your code is both safe and fast- 7. 1hen do you use polymorphism and when do you use delegates- 8. 1hen would you use a class with static members and when would you use a Singleton class- ;. 0an you name e)amples of anticipating changing re%uirements in your code- /<. 0an you describe the process you use for writing a piece of code, from re%uirements to delivery- lgorithms /. 6ow do you find out if a number is a power of +- And how do you know if it is an odd number- +. 6ow do you find the middle item in a linked list- 2. 6ow would you change the format of all the phone numbers in /<,<<< static html web pages- 3. 0an you name an e)ample of a recursive solution that you created- 4. 1hich is faster& finding an item in a hashtable or in a sorted list- 5. 1hat is the last thing you learned about algorithms from a book, maga9ine or web site- 7. 6ow would you write a function to reverse a string- And can you do that without a temporary string- 8. 1hat type of language do you prefer for writing comple) algorithms- ;. In an array with integers between / and /,<<<,<<< one value is in the array twice. 6ow do you determine which one- /<. :o you know about the Traveling Salesman >roblem- Data !tructures /. 6ow would you implement the structure of the *ondon underground in a computer's memory- +. 6ow would you store the value of a color in a database, as efficiently as possible- 2. 1hat is the difference between a %ueue and a stack- 3. 1hat is the difference between storing data on the heap vs. on the stack- 4. 6ow would you store a vector in = dimensions in a datatable- 5. 1hat type of language do you prefer for writing comple) data structures- 7. 1hat is the number +/ in binary format- And in he)- 8. 1hat is the last thing you learned about data structures from a book, maga9ine or web site- ;. 6ow would you store the results of a soccer?football competition ,with teams and scores. in an @A* document- /<. 0an you name some different te)t file formats for storing unicode characters- Testing /. :o you know what a regression test is- 6ow do you verify that new changes have not broken e)isting features- +. 6ow can you implement unit testing when there are dependencies between a business layer and a data layer- 2. 1hich tools are essential to you for testing the %uality of your code- 3. 1hat types of problems have you encountered most often in your products after deployment- 4. :o you know what code coverage is- 1hat types of code coverage are there- 5. :o you know the difference between functional testing and e)ploratory testing- 6ow would you test a web site- 7. 1hat is the difference between a test suite, a test case and a test plan- 6ow would you organi9e testing- 8. 1hat kind of tests would you include for a smoke test of an ecommerce web site- ;. 1hat can you do reduce the chance that a customer finds things that he doesn't like during acceptance testing- /<. 0an you tell me something that you have learned about testing and %uality assurance in the last year- Maintenance /. 1hat kind of tools are important to you for monitoring a product during maintenance- +. 1hat is important when updating a product that is in production and is being used- 2. 6ow do you find an error in a large file with code that you cannot step through- 3. 6ow can you make sure that changes in code will not affect any other parts of the product- 4. 6ow do you create technical documentation for your products- 5. 1hat measures have you taken to make your software products more easily maintainable- 7. 6ow can you debug a system in a production environment, while it is being used- 8. :o you know what load balancing is- 0an you name different types of load balancing- ;. 0an you name reasons why maintenance of software is the biggest?most e)pensive part of an application's life cycle- /<. 1hat is the difference between re-engineering and reverse engineering- Configuration Management /. :o you know what a baseline is in configuration management- 6ow do you free9e an important moment in a pro$ect- +. 1hich items do you normally place under version control- 2. 6ow can you make sure that team members know who changed what in a software pro$ect- 3. :o you know the differences between tags and branches- 1hen do you use which- 4. 6ow would you manage changes to technical documentation, like the architecture of a product- 5. 1hich tools do you need to manage the state of all digital information in a pro$ect- 1hich tools do you like best- 7. 6ow do you deal with changes that a customer wants in a released product- 8. Are there differences in managing versions and releases- ;. 1hat is the difference between managing changes in te)t files vs. managing changes in binary files- /<. 6ow would you treat simultaneous development of multiple Bf0's or increments and maintenance issues- "ro#ect Management /. 6ow many of the three variables scope, time and cost can be fi)ed by the customer- +. 1ho should make estimates for the effort of a pro$ect- 1ho is allowed to set the deadline- 2. :o you prefer minimi9ation of the number of releases or minimi9ation of the amount of work-in-progress- 3. 1hich kind of diagrams do you use to track progress in a pro$ect- 4. 1hat is the difference between iteration and an increment- 5. 0an you e)plain the practice of risk management- 6ow should risks be managed- 7. :o you prefer a work breakdown structure or a rolling wave planning- 8. 1hat do you need to be able to determine if a pro$ect is on time and within budget- ;. 0an you name some differences between :S:A, >rince+ and Scrum- /<. 6ow do you agree on scope and time with the customer, when the customer wants too much-