Hundreds of questions for software developers

Source: Internet
Author: User
It is not easy to hire a smart person who is engaged in software development. If you are not careful, you will get a bunch of low-performance baboons. I encountered this kind of thing last year. You certainly don't want. Listen to me. That's right. No standing meeting door opens on the tree.

Difficult questionsIt can help you separate smart people from baboons. I decided to organize it myself.Hundreds of questions for software developersI hope it will help you.

This list covers most of the knowledge domains defined in the software development knowledge system. Of course, if you only want to find outstanding programmers, you only need to talk about structures, algorithms, data structures, and tests. If you want to hire an architect, you can only consider requirements, functional design, and technical design.

However, whatever you do, remember one thing:

There are no right or wrong answers to most questions here!

You can take my questions as an example to discuss them.For example, the reason for using static methods or Singleton is as follows. If the interview goes on for a long time, he may be a smart and competent guy! If he looks at you with a blank face, it's obvious that this is just a babbling. Likewise, there are many ways to determine whether a number is a multiplication operator of 2, but if the interviewer wants to use the MOD operator, well ...... You know what I mean. (You don't know, it doesn't matter. Why don't you get a banana ?)

Requirement

  1. Can you give examples of non-functional (or quality) requirements?
  2. If the customer needs high performance, extremely convenient use, and high security, what advice would you give him?
  3. Can you provide different technologies to describe the requirements? What scenarios are they applicable?
  4. What does requirement tracking mean? What is forward tracing and what is Backward Tracing?
  5. What tools do you like to use to track requirements?
  6. What do you think of demand changes? Is it good or bad? Give your reasons.
  7. How do you study requirements and discover requirements? What resources can be used?
  8. How do you set a priority for a requirement? What technologies are there?
  9. What are the responsibilities of users, customers, and developers in the demand process?
  10. How do you deal with incomplete or confusing needs?

Function Design

  1. What are the metaphors in functional design? Several successful examples are provided.
  2. If some functions have been executed for a long time, how can users not feel too long to wait?
  3. If you have to select multiple entries from a regular list in a small area, what controls do you use?
  4. What methods can be used to ensure the integrity of data items?
  5. What technologies are involved in building a system prototype?
  6. How can applications establish user behavior expectations? Some examples are provided.
  7. How can you design a group of massive and complex features? Can you give me some design ideas?
  8. There is a list with 10 elements, and each element has 20 fields to edit. How do you design this situation? If there are 1000 elements, what if each element has 3 fields?
  9. How can I highlight text in a piece of text in different colors?
  10. What are the restrictions on the web environment and Windows environment?

Technical Design

  1. What is low coupling and high aggregation? What is the encapsulation principle?
  2. In Web applications, How do you avoid conflicts caused by several people editing the same data segment?
  3. Do you know the design pattern? What design patterns have you used? In what scenarios?
  4. Do you know what a stateless business layer is? How can long transactions adapt to it?
  5. How many images have you used to build an architecture or technical design?
  6. What are the layers in the n-layer architecture? What are their respective responsibilities?
  7. What methods can be used to ensure that the data in the architecture is correct and robust?
  8. What are the differences between object-oriented design and component-oriented design?
  9. How to model user authorization, user configuration, and permission management in the database?
  10. How can we build a model for the animal kingdom (including various species and their respective actions) according to the hierarchy?

Structure

  1. How do you ensure that your code can handle various error events?
  2. Explain what is test-driven development and cite some principles in extreme programming.
  3. What do you most care about when looking at other people's code?
  4. When to use abstract classes and interfaces?
  5. What tools do you like besides ide?
  6. How do you ensure that code execution is fast without any problems?
  7. When is polymorphism or delegation used?
  8. When do I use a class with static members and a singleton instance?
  9. In the code, how do you handle demand changes in advance? Here are some examples.
  10. Describe the process of implementing a piece of code, from requirement to final delivery.

Algorithm

  1. How do I know if a number is a multiplication of 2? How can we determine whether a number is an odd number?
  2. How to find the elements in the center of the linked list?
  3. How can I change the format of all phone numbers on 10,000 static html pages?
  4. Here is an example of recursion you have used.
  5. Find an element in the hash table and sorted list. Which of the following queries is the fastest?
  6. What is the last algorithm knowledge you have learned from books, magazines, and the Internet?
  7. How to reverse the string? Do you need a temporary string?
  8. What types of languages are you willing to use to compile complex algorithms?
  9. There is an array with an integer ranging from 1 to 1,000,000, And a number appears twice. How do you find the repeated number?
  10. Do you know "Traveling Salesman Problem?

Data Structure

  1. How to Implement the London metro structure in the memory?
  2. How to store color values in the database in the most effective way?
  3. What is the difference between a queue and a stack?
  4. What is the difference between storing data using stacks or stacks?
  5. How to store N-dimensional vectors in databases?
  6. Which type of language do you prefer to write complex data structures?
  7. What is the binary value of 21? What about the hexadecimal value?
  8. What is the last point of Data Structure you have learned from books, magazines, and the Internet?
  9. How to store football match results (including team and score) in XML documents )?
  10. Which text formats can save Unicode characters?

Test

  1. What is regression testing? How can we know that the new changes have not damaged the existing functions?
  2. If there is a dependency between the business layer and the data layer, how do you write a unit test?
  3. What tools do you use to test the code quality?
  4. What type of problems do you encounter most often after product deployment?
  5. What is code coverage? How many code coverage rates are there?
  6. What is the difference between functional testing and exploratory testing? How do you test your website?
  7. What are the differences between test stacks, test cases, and test plans? How do you organize testing?
  8. What types of tests will you perform to perform smoke tests on e-commerce websites?
  9. In the acceptance test, the customer finds something unsatisfactory. How can this problem be reduced?
  10. What did you learn in testing and quality assurance last year?

Maintenance

  1. What tools do you use to monitor products during maintenance?
  2. If you want to upgrade a product that is being used in the product environment, what are the important issues?
  3. If an error occurs in a large file and the Code cannot be tracked gradually, how do you find the error?
  4. How do you ensure that changes in Code do not affect other parts of the product?
  5. How do you compile technical documents for the product?
  6. What methods have you used to ensure that software products are easy to maintain?
  7. How to debug the system in the product running environment?
  8. What is Server Load balancer? What are the load balancing methods?
  9. Why does the software maintenance cost the most during the application lifecycle?
  10. What is the difference between re-engineering and reverse engineering?

Configuration Management

  1. Do you know the basic meaning of Configuration Management? How can we freeze an important moment in a project?
  2. What do you usually include in version control?
  3. How can we ensure that everyone in the Team knows who has changed what?
  4. What is the difference between tag and branch? When should I use the tag and branch?
  5. How to manage changes in technical documents, such as product architecture documents?
  6. What do you use to manage the status of all digital information in a project? Which tool do you like most?
  7. What should you do if the customer wants to change a released product?
  8. What is the difference between version management and release management?
  9. What is the difference between managing changes to text files and binary files?
  10. What do you think of this situation when processing multiple change requests or performing incremental development and maintenance at the same time?

Project Management

  1. Which of the following three items can be controlled by customers?
  2. Who should make an estimate of what the project has to do? Who has the right to set the deadline?
  3. Which of the following methods do you like to reduce the number of deliveries or the workload of each delivery?
  4. Which image do you like to use to track the project progress?
  5. What is the difference between iterations and increments?
  6. Try to explain the practices used in risk management. How Should risks be managed?
  7. Do you like task breakdown or rolling plan?
  8. What do you need to help you determine whether the project meets the time requirements and operates within the budget?
  9. What are the differences between DSDM, Prince2, and scrum?
  10. If the customer wants too many things, how can you reach an agreement with him in terms of scope and time?

 

From: http://www.infoq.com/cn/articles/programmer-interview

TranslatorLi JianAuthorJurgen appelo

 

 

Http://blog.csdn.net/KerryZhu

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.