0% 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.
Copyright
© © All Rights Reserved
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
0% 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.
Copyright
© © All Rights Reserved
Available Formats
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-

You might also like