Python back end interview FAQ summary

Time:2019-11-8

Data structure and algorithm:

  1. Array and linked list tree and graph
  2. Fast sorting (consider recursion to increase the depth of the call stack, and distinguish the use scenarios of for loop and recursion)
  3. Binary tree breadth first search element (encapsulated into a class to achieve pre / middle / post order traversal search element)
  4. Implementation principle of Python Dictionary (typical hash table data structure, which can be realized by array and linked list)

data base

  1. Scenarios of sub tables and sub databases (divided according to specific business scenarios)
  2. Dynamic query optimization problem (redis cache MySQL view)
  3. The principle of index and when to add index (examination room of B + tree data structure)
  4. Acid of database (pay attention to the implementation principle, level and scenario configuration of transaction isolation mechanism)
  5. How to call Alibaba SMS service interface in case of high concurrency (asynchronous call in message queue)
  6. How to query the record {fieldname: {$exists: false}} of the missing field for mongodb
  7. Database style
  8. The implementation principle of redis database
  9. The difference between relational database and non relational database

Web Framework

  1. Django and flask‘s data model design of many to many
  2. The function of flash on the global context variable g session request current app
  3. On the processing of flag request isolation mechanism (ThreadLocal Implementation)
  4. Django and flask query queryset optimization problem (Sqlalchemy comes with limit, but Django’s filter doesn’t have limit, which is mostly implemented with SQL)
  5. How to implement cross domain request with flash
  6. About the difference between WSGI uwsgi uwsgi
  7. Understanding degree of gunnicorn and cellery principle (common components of the broken of cellery)
  8. Implementation of common middleware (handwritten filtering specific requests — IP limit request frequency control)

Network programming

  1. How can TCP realize communication security?
  2. How to judge the different resources of server response?
  3. How to manage different processes on the server side? For example, the process of message queuing is dead. How to solve it? (monitor the survival status of the process with supervisor)

Python language

  1. Quick sorting (recursion) of nested array and dictionary
  2. Understanding of asynchronous async (similar to promise in JS)
  3. Process thread orchestration
  4. Understanding of object reference (when a function is defined in a test question, its default parameter is like an empty list)
  5. Write a with statement

About project

  1. The technical stack of the project (generally, they will not talk about the business in depth, and TA will pay more attention to your technical stack — they will ask questions in depth until they can’t answer them)
  2. Independent service level of the project
  3. What is the most difficult problem for the project? How to solve it?