Think employed to engage in software development of smart people is not easy. The event of accidentally, it will get a pile of low-energy large baboons. I met last year on this matter. You certainly do not want to do it. Listen to me, that's right. In a tree stand open door meetings are not.

Ask difficult questions points can help you put smart people with the baboons were separated. I have decided to put me out of their own finishing interviews hundred software developers to question the issue of, I hope to help you a favor.

This list covers the software engineering knowledge system as defined in the majority of the knowledge domain. Of course, if you only want to find the best programmers, it only involves the structure, algorithms, data structures, testing of these topics. If you want to architect-employed, you can only consider the demand for functional design, technical design of these places.

But no matter how you make must bear in mind one thing:

The answer most questions here are not right or wrong!

You can put me as a prelude to these questions, discussion. For example, the following have a problem is to use static methods or single-cause cases. If the interview carry out a long-winded, he is likely to be a smart and capable guy! Loss of face if he looked at you, the issue of such voices, it is clear that this is only the baboons. Similarly, a few want to know 2 of involution are not also have a lot of methods, but if people want to interview with mod operator, ... ah ... you know what I mean it. (You do not know if it does not matter to the root of bananas?)

Demand

Can you give some non-functional (or quality) examples of needs it?
If customers need high performance, extremely easy to use and highly secure, you will give him any suggestions?
Can you give some to describe the needs of different technologies么? Their respective applicable to what scenes?
Needs to track what does this mean? What is a forward retrospective, what is the back trace?
What instrument do you enjoy tracking needs?
Change how you look at the demand? It is good or bad? Give your reasons.
How do you research needs and found that demand? What resources can be used?
How do you give the needs of priority? What are the technologies?
On the demand process, the users, customers, developers, what are their responsibilities?
How do you deal with incomplete or puzzling demand?
Functional Design

In the functional design which metaphor? Give a few examples of success.
If some function of execution time is very long, how can users do not feel too long a wait?
If the user must be in a small area, usually from a select list of multiple entries, you will control what?
What are the ways to guarantee the integrity of the data item?
Prototype system which has set up technology?
Application how to set up the anticipated user behavior? Give some examples.
How to start a group of the large number of design and complex features, you can give some design ideas吗?
Have a list, which has 10 elements, each element has 20 fields to edit, how do you design such a situation? If it is 1000 elements, each element has three fields do?
Using different colors on a section of text markup language highlighted, this approach has the problem?
Web environment and the Windows environment, what restrictions?
Technical design

What is the low coupling and high polymerization? Package what is the meaning of the principle?
At Web applications, how do you avoid a few people edit the same paragraph, the data caused by the conflict?
Design Patterns you know it? What are the design patterns you used? At what occasions used?
Does not know what is the status of the business layer? How long Affairs adapt?
Structures at an architecture, or technical design, you spent several map?
At N-tier structure in what layer? Their respective responsibilities are what?
What are the ways to ensure that the architecture of data in a correct and robust?
Object-oriented design and design-oriented components which have different?
How in the database of user authorization, user profile, these rights management functions of modeling?
How to give in accordance with the hierarchy of the animal kingdom (including a variety of species and their behavior) modeling?
Program Design

How do you guarantee that your code can deal with all kinds of wrong case?
Explain what is Test Driven Development, Extreme Programming cited in a number of principles.
Others watch the code, you are most concerned about what place?
When using the abstract class, when using the interface?
Apart from outside the IDE, you also enjoy what an indispensable tool?
How do you ensure that code execution speed, and no problem?
When using many state, when used to appoint?
When used with a static member of the class, when the use of single-Example?
How do you advance in the code which deal with changes in demand? Give some examples.
Describe a section of code implementation process, from demand to final delivery.
Algorithm

How do you know a figure 2 are not the involution? How to judge a few are not odd?
How to find middle element of list?
How to change the 10,000 static HTML pages of all telephone numbers of the format?
You cite an example of recursion used.
In the hash table and sort the list after looking for an element, which the fastest search?
Whether book, magazine or network, you have learned from the last point algorithm knowledge are what?
How to reverse a string? You can not string a temporary Mody?
Would you like to what type of language used to write complex algorithms?
Have an array, which are from 1-1000000 integer, in which a figure has appeared twice, how do you find the duplicate of the figure?
You know, "traveling salesman problem (Traveling Salesman Problem)"么?
Data Structure

How to achieve in memory structure of the London subway?
How the most effective manner at the color value stored in the database?
Queue and stack What is the difference?
Heap or stack storage with data What is the difference?
How in the database stored in N-dimensional vector?
You tend to use language which type of complex data structure?
21 What is the binary value? 16 value of this system?
Whether book, magazine or network, you have learned from the last point data structure of knowledge are what?
How to store XML documents in the results of football matches (including the team and score)?
What are the text format can be preserved for Unicode characters?
Test

What is regression testing? How do you know the new changes introduced to existing function without causing damage?
If the business layer and data layer has to rely on the relationship between, you how to write unit tests?
What are the tools you use to test code quality?
Products at the deployment, you are the most commonly encountered and what types of questions?
What is code coverage? How many code coverage?
Functional testing and exploratory testing What is the difference? How do you conduct tests on the web?
Test suite, test cases, test plan, which is the difference between what? How do you organize the test?
E-commerce sites to make smoke test, you will make what type of test?
Acceptance test at customer will find that things are not satisfied with and how to minimize this situation happen?
You last year in testing and quality assurance aspects of learned what?
Maintenance

What are the tools you use in the maintenance phase of the product to monitor and control?
In order for a product environment is being used to upgrade the product, the attention to which important matters?
If a large document has errors, and code can not be tracked step by step, how do you find an error?
How do you ensure that code changes will not affect other parts of the Products?
How do you prepare technical documentation for the product?
What are the ways you used to ensure software product easier to maintain?
How Products at running system debugging environment?
What is load balancing? Load balancing has what kinds of ways?
Why in the application of life cycle, software maintenance costs of the share of the highest?
Re-engineering (re-engineering) and reverse engineering (reverse engineering) What is the difference?
Configuration Management

Do you know the baseline configuration management in the meaning of it? How to project a significant moment in the freezing?
Generally what you will into the version control?
How can ensure that the team who everyone knows what has changed?
Tag and Branch What is the difference? Under what circumstances the use of tag, when used branch?
How to manage technical documentation - such as product architecture document - changes?
What instrument do you manage projects in the state of all digital information? Which is your favorite instrument?
If customers want to have released a product to make changes, how do you deal with?
Version management and release management what the differences?
Change the text file and binary file changes in management, both have what's the difference?
At the same time deal with a number of change requests, or at the same time the incremental development and maintenance, how you look at this kind of thing?
Project Management

Scope, timing, cost, the three which can be controlled by the client?
Who in the project we have to pay for everything to make estimates? Who has the right to set a deadline?
Reduce the frequency of delivery, or reduce each of the workload of each delivery, which is your favorite?
Which map do you like to use to track project progress?
The difference between iterative and incremental Where?
Try to explain the risk management used in practice. How to manage the risks?
Do you like or mission decomposition rolling plan?
What are the things you need to help you to determine whether the project in line with the time requirements, operating within budget?
DSDM, Prince2, Scrum, this distinction between what?
If clients want too much, you at the scope and time on how to reach an agreement with him then?