Reproduced from 「 Liu Yue's technology blog 」https://v3u.cn/a_id_183
2021 year , For friends who are looking for a job , Under the novel coronavirus pneumonia epidemic , This year's employment season is even more challenging , More interesting , Whenever this time , All kinds of interview experience sharing is just like crossing the river , can be found everywhere , Because there are too many examples , This is not a detailed example . However, most of these interview experiences stay in the theoretical stage , This creates a problem ： Theory and practice , How different is it ？ Zeng wenzhenggong, a famous official in ancient China, once said ：“ Things in the world , Yell and talk outside , It's always useless , You have to bow in , I'm very responsible , Only in this way can we hope for success .” Revolutionary martyr Mr. Li Dazhao also sighed ：“ Do everything down to earth , Don't run away from fantasy , Don't focus on empty voice , But only with the attitude of seeking truth can we make practical efforts . Study with this attitude , Then the truth can be made clear , Do things with this attitude , Then the achievement can be .” So this time we're going to have a real online interview , It is the so-called empty talk that harms the country , Work hard to prosper the country , Practice is the only way to test truth .
First, open a famous vertical recruitment app Software , Looking for our prey ：
You can see , We found a senior manager of an enterprise in Beijing python Development position , It is the so-called "no war without preparation" , Before the official interview , We need to analyze the position , Try to figure out the questions that might be asked in the interview , First of all, the position requires flask/django/tornado Experience , Then I can be sure ,web Development must be the main task , In especial flask, It is likely to be the main framework of the position , So we need to prepare python Basics 、 Network protocol 、 as well as flask and django Some of the relevant knowledge to deal with . secondly , Requirements for mysql/pgsql/es/redis And so on database has the use experience , Then we can infer that we should be proficient in using the database , especially pgsql, Be prepared to pgsql And mysql Similarities and differences , It is also noted that es, Then we need to be prepared for the knowledge points related to full-text retrieval , Last redis dependent nosql Database knowledge points must also be consolidated , For a rainy day . Last , The position mentioned the need to be familiar with linux Common commands and docker The ecological system , It's also about selenium Automation test experience . It can be inferred from this that ： This position may need to participate in operation and maintenance or deployment work , At the same time, there is also a great opportunity to participate in the automation test project , So for docker and selenium The preparation of relevant knowledge points is urgent , besides , If we can also prepare some cases and projects for in-depth learning, it will be even more icing on the cake .
everything , Choose an auspicious day , We started the interview ：
interviewer ： Please introduce yourself ？
Interviewers ： Hello! , I am a 15 Graduated in , I studied computer in Inner Mongolia University for nationalities , After graduation , I've been teaching high school computer for two years , After working for more than two years, I found a local company to develop wechat apps , Then we use this front end mp-vue frame , The back end is to use Django, It's about a C E-commerce platform on the Internet , Recently, daily life has been maintained at 5 All around .
I'm mainly responsible for the back end Django Some of the interface logic development , Mainly dealing with business , I've also been involved in continuous delivery deployment , We're using this container deployment (docker), There are also grayscale testing and monitoring, as well as some daily sql Statement to extract data bug Repairing this kind of work , Recently, I think this is required in this position in our company selenium,
I've also studied it recently selenium, And wrote a little script , It can automatically upload form data . This is some of my recent work .
In fact, the most taboo part of self introduction is talking nonsense , Such as name 、 Age is reflected in these resumes , So we're going to say something that's not in the resume , Such as my own project , Achievements and achievements （ Diurnal activity 5 ten thousand , Daily life is a very important indicator , For late growth products , A key improvement indicator is to be active , although 5 Wanrihuo can't be realized yet , But it's one from 0 To 1 The process of , It's the foundation of a million days ）, Even intentionally or unintentionally , The technical point can be inclined to the job description , For example, in the job description django、 Deploy 、docker、selenium Technology , All can reappear in the self introduction of the interview , Suggest that you are a perfect match for the position , make the old and new contrast and complement each other . It should be noted that , It's best to use honorifics throughout the interview ： you , To show respect .
interviewer ： well , You can just say this es Full text search ,
Interviewers ：es It's like this , At that time, we just wanted to do this retrieval function , But the boss's request is that his response time should be relatively short , So we use this es,es It is based on memory, and its response speed is relatively fast , Second, it's based on this inverted index , Faster than that mysql The positive index of ,io The loss of operation should be smaller , So at that time, I was combining stuttering participle. I don't know if you've heard of it ？
interviewer ： I heard a little about it .
Interviewers ： We can understand it as , The user will search the statement for word segmentation operation , Cut words for it. After cutting words , I do this index by part of speech , Let me just give you a simple example , For example, he wants to search this ultrathin notebook , But in fact, thin and notebook are adjectives , One is the noun , Actually, I use this part of speech as the search level , The priority of adjectives is 2; The priority of nouns is 1. stay es Do the hierarchical index in the database , Retrieve data according to priority .
Start a formal technical interview , First, the interviewer asked about the technical points in the job description ：es Full text search , Let's briefly introduce the background of the project 、 Underlying principle , And at the right time , Ask rhetorical questions , The significance of rhetorical question is , Avoid the boring question and answer mode , Can increase interaction , Adjust the mood , Finally, in terms of technical details , The best example is , Not in general , This is both a user search “ Ultrathin notebook ” As an example , Elaborate on the back end es Search strategy , About retrieval strategy , In fact, the essence of the discussion is the search term weight （ Term weight , Also known as Term Necessity,Query Term Weight） problem , It's part of key word analysis . Anyone familiar with inverted index knows , Documents are usually indexed at the granularity of words . So the analysis of words , It is a very important work in retrieval and analysis , among , It's not just about identifying target words correctly , It also includes all kinds of feature extraction around the target words , therefore , When the search term text contains more than one word , The complexity of the problem increases exponentially . The user's search has more specific needs , The most intuitive manifestation is the growth of text length , There are more supplements around the target words 、 Limit . At the same time, the word order is more free than the article text , The solution is to segment the key words by stuttering , When there are multiple words in the search term , The importance of each word is different , On the basis of word recall , Prioritize words ( Based on part of speech ), So as to achieve the semantic level similar to the user's original requirements .
interviewer ： Please talk about the login module of the system .
Interviewers ： The login module started with a relatively simple verification function , Then I did some optimization in the future , It's changed to this openldap, I don't know if you've heard of , It's a unified management system based on hierarchical structure .
interviewer ： I don't seem to have heard of .
Interviewers ： It's a bit like es, Search speed is very fast , It is also convenient for unified management , It's also for easy expansion , To prevent multiple projects from going online one after another in the future , meanwhile ,B If there are some new projects on the Internet , It's convenient for me to do it single sign on, It's single sign on . This is also a small system for my own personal follow-up transformation , It can be understood as unified authentication , It's to pull out the login as a micro service .
Login module for most applications , They are the most basic modules . It seems simple , But it is intertwined with a considerable number of product function user scenarios , By product type 、 User positioning 、 Business logic 、 Use scenarios 、 User operation and other factors , So at this time we need to raise the product height , Avoid the description of daily account , But point out the unified authentication (openldap) And microservice Architecture , Also use rhetorical questions to test the depth of each other's knowledge system , Finally, based on the unified authentication system , Point out the final function practice ：Single Sign On( Single sign on ).
interviewer ：ok, understand , How is your backstage authority management designed ？ Used to xadmin Do you ？
Interviewers ： Background authority system is our own research and development , Yes, of course , At the beginning of the technology selection, we also considered xadmin, But you should have known about the system design in it , It's the second time it opens , The threshold is quite high , Because of the complexity of logic design , If I want to change his template , Or I want to make some extensions in his middle key , A little bit of a problem , So I took him out alone and made it myself .
interviewer ： Can you talk about it in detail ？
Interviewers ： I've transformed xadmin The authority system of is a bit operation system , I don't know if you know bit arithmetic .
interviewer ： It's a binary operation ？
Interviewers ： Yes , I'm mapping different system nodes to the bits of each binary bit , Then I'll focus on the permission node that the user brings , Do this bit and operation on the corresponding bit , To get permission , For authorization operation, bit or operation is used .
Actually, about the permission system , It's just the use of permission model (acl/rbac/abac), But if you make a little innovation in the form of permission design , So it's like the nuclear bomb that was born suddenly in the age of gunpowder , It's going to impress the interviewer , For example, the bottom foundation of the computer ： An operation . as everyone knows , It's fast 、 Efficient 、 Save storage space 、 Very flexible access control . All languages provide bit operators , Include Python, Systems that we can implement in different languages 、 Even the database uses bit operation to realize the management of user rights . Yes, of course , Bit operation also brings some limitations , As the permission code increases , The length of the data increases accordingly . This requires that the permission code should not exceed the operation length of the calculation itself , When storing the permission code in the database , The length of permission code cannot exceed the data type used . Such as ： stay 32 Bit system , The number of permission nodes cannot be more than 32 individual . And if it's based on mySQL Database BIGINT, Its storage space is 8Byte, Use BIGINT When you store the code , The number of permissions cannot be more than 64 individual .
interviewer ： well , Can you tell me the reason for leaving ？
Interviewers ： I think so , I just think that people , It should be to pursue higher development , A bigger environment , We need a bigger market to train ourselves , Right ？
interviewer ： Um. .
Interviewers ： Of course, this is my personal opinion , And now I think the situation is going against the current , move forward , or you 'll fall behind , Because the epidemic situation in Beijing is still very serious , But I think this is my real chance , I should catch .
interviewer ： well , and you? 4 Can you come to the company on the 7th ？
Interviewers ： Sure , I've bought my ticket. I've .
At this stage of the interview , Basically the technical side is over , The rest is about human resources , Many friends like to talk about the reasons for leaving the company, such as the collapse of the company 、 Move 、 Layoffs and so on are caused by , But actually , These reasons are not the interviewer “ Want to ” Listen to , So from the perspective of human resource management , What does the interviewer want to hear ？ He wants some positive and active reasons , Rather than some passive reason , Because of layoffs 、 Relocation and closure are passive , you “ Forced to ” Leave the company . So to put it bluntly , He needs you to give him a little sense of purpose , Ambition is when one does something , Or the willingness to achieve a set goal . The intensity of ambition , It depends on the size of the will , If the will is stronger , The more ambitious it is , The higher the chance of success , therefore , Of course , You need to prove to him that you're trying to interview .
interviewer ： well , See you later ？
Interviewers ： well , Thank you very much for this interview
interviewer ： Don't be so polite ,88
Interviewers ： well , bye
Last , We need to end the interview with a thank you , Whether the interview is successful or not , A sincere thanks will make a good impression on the interviewer , While thanking each other , Thank you for your efforts . Video about the whole interview process , Please move ：
Conclusion ： It's like 《 Two cities 》 That's what it says ： This is the best time , This is the worst of times ; This is the age of wisdom , This is the age of stupidity ; This is the time of faith , This is a time of doubt ; This is the season of light , This is the season of darkness ; This is the spring of hope , This is the winter of disappointment ; There are all kinds of things in front of people , There is nothing in front of people ; People are going straight to heaven , People are going straight to hell . In this age of fickle outbreaks , Sometimes it makes people feel like they have unlimited expectations , Sometimes it makes people fall into infinite despair , But anyway , We always have to face the difficulties , Start a new journey , Instead of sitting back and talking about it , It's better to get up and do it , Learn to live in life , Learn to interview in an interview .
Reproduced from 「 Liu Yue's technology blog 」 https://v3u.cn/a_id_183