Today's interview summary for a Python web engineer may help you learn about Python.
1
Personal situation
Let me introduce my situation: communication background, less than two years of work in a year. have been doing in C + + MFC software Interface development work, the company for a depressed state-owned Enterprise Research Institute (well, my work experience is very water: 1 is the direction is not right; 2 is the industry deviation).
It is now looking for the Python back end to develop this piece of work, using the framework for Django; previously, through CSDN and several other technical blogs/forums to absorb the experience of everyone, in gratitude, but also want to output something for the benefit of everyone, so there is this hydrology, I hope that we can learn a lot from my experience and learn to find a satisfactory job at an early date.
2
Interview situation
Beijing's two start-up companies, the scale is between 40-50 people; The nutshell (stops on the telephone surface, the hook throws), knows (stops on the telephone surface, after the forum Post's push), Archie Art (the hook to cast), Hangzhou NetEase (schoolmate pushes).
Interview this round down, the biggest feeling on one: usually must adhere to the code point every day. Even if the project is rotten, also insist on uploading GitHub. Really, as long as you can adhere to more than 5 days a week can continue to upload git, six months down, the interviewer absolutely impressed you.
Other feelings: Different companies focus on the same, but really as this blog blogger said, the bucket principle, which can not be less. I just focus on doing my own small blog system, and did not do other parts, leading to love art fell on the handwriting code above ... Alas, sadness. Usually many brush leetcode, see Sword refers to offer/interview gold code, is a routine AH ~ ~
The interview/pencil questions that the company has encountered are the following to be remembered. Although most of them may be the basis, but I hope you do not just look at the past, it is best to pretend you were asked this question, you come to the answer or write out: (not according to the company)
3
Python syntax and other basic parts
1. Variable and immutable types
2. The realization way and difference between shallow copy and deep copy; deepcopy If you design, how to achieve
The difference between __new__ () and __init__ ()
3. You know several design patterns
4. Coding and decoding did you ever know?
5). List derivation of the pros and cons of lists comprehension and generators
6. What is an adorner; what should you do if you want to decorate it after the function?
7). Write a single case pattern with an adorner implemented by handwriting
8. What is the difference between a single example using an adorner and a single example using another method, in subsequent use
9). Handwriting: Regular email address
10. Introduction of garbage Collection: reference count/generational recycle/Orphan reference ring
11. The difference between multiple processes and multithreading, CPU-intensive fit with what
12. There are several ways in which the process communicates
13. Describes the next process, why faster than the thread
The difference between range and xrange
4
Algorithm sort part
1. Handwritten quick-row; heap row; How complex is the algorithm of several kinds of commonly used sorts; how much is the average complexity of the fast row?
2. Handwriting: Known as a length of the unordered list of n, elements are numbers, requires a combination of all the interval D to find out, you write the algorithm complexity of how many
3. Handwriting: A list A=[a1,a2,...,an] that requires all the combinations in the list to be printed;
4. Handwriting: Write 1+2+3+...+10**8 in one line of Python
5. Handwriting python: A recursive way of judging whether a string is a palindrome
6. The length of one-way linked list is unknown, how to determine whether there is a ring
7. One-way linked list How to use the fast sorting algorithm to sort
8. Handwriting: A list of unordered numeric elements of length n, how to find the median, how to estimate the median, 9 as soon as possible. How complex is your algorithm?
10. How to traverse an internal unknown folder (two tree priority traversal method)
5
Network Basics Section
1). Which layer of TCP/IP is in the model respectively
2. What does the socket length connection mean?
3). Select and Epoll you know what the difference is?
4). TCP UDP difference; three handshake four times, wave.
5). Time_wait too much because of what?
6. HTTP the whole process of a connection: you to the next from the user initiated request--to the user received response
7. HTTP connection mode. The difference between get and post, do you know the other way?
8). RESTful you know what?
9. Status code how much do you know, like 200/403/404/504 and so on?
6
Database section
1). There are several MySQL locks, how the deadlock is generated, why, and how to partition, the table;
2). The difference between MySQL's char varchar text:
What's the difference between a join, a left join B, the result of the query, the part of B that's not shown (NULL)
3. There are several types of index, the difference between Btree index and hash index (I didn't answer the difference between the two on the disk structure)
4. Handwriting: How to optimize query commands
5). NoSQL understand that, and the difference between relational databases, Redis has several common storage types
7
Linux section
Tell me about your usual linux/git commands and functions;
See what the current process is using, in addition to the file-related operations, what do you usually have to operate orders;
(Because I myself Linux is very water, will only basic operation, so this part of the interviewer also basically didn't how to ask.) Anyway, just ask Kango.
8
Django Project section
It's all about having a simple introduction to your project in the company, whether it's backend related or not, primarily to reflect what you've done
1. What is the hardest part of your project and how do you solve it; Have you seen the Django admin source?
2. Have seen the source code of flask, how do you understand open source
3). MVC/MTV, what's the use of caching, middleware?
4). What CSRF is, how Django is avoided, XSS
5). If you design login, simply say the idea
6. Session and cookie contact and differences, why the session is said to be safe
7). The role of Uwsgi and Nginx;
the rookie for you to learn the exchange of Python Learning Group: