This is the 9th day of my participation in Gwen Challenge

These two weeks, shenzhen never intermittent rain; I’m constantly looking for my next job.

I have submitted and opened my resume to 51job.com/Laigou/Zhaopin.com, and received 20 or so email/phone interview invitations (shenxin/Yuedong/Lvmi, etc.), among which, a few of the tests are in line with the crawler position (the direction is not in accordance with the long-term plan, so I have declined). Finally, I interviewed 10 of them (I interviewed two in one afternoon), and finally received my satisfactory offer.

In this process, I have gained a lot of knowledge (thank you for your sharing).

Recruitment platform

Among the recruitment platforms I used, 51job.com received the most interview invitations, followed by Laigou, and Zhaopin.com was the least. So I would suggest you to use 51job.com and pull hook, because feedback is the most timely, and Zhaopin.com rarely gives feedback. I did not use BOSS Direct hire, because it is a little troublesome to chat one by one. I prefer to send email interview invitation for face-to-face communication.

Focused knowledge

In the background development job interview I attended, I mainly focused on the following knowledge

  1. Database CRUD operation/query optimization and database knowledge

  2. Framework comparison and understanding/project specific module business logic description

  3. Common sorting algorithms

  4. Common commands of the Linux system and assessment of the understanding of the Linux system

  5. Configuration and knowledge of the server used for project deployment

pluses

  1. Database basic skills must be mastered, but at the same time, it is more important to understand why and how to achieve, expand their knowledge;
  2. Basic principles and understanding of Linux system;
  3. Golang is also becoming popular in the back end. It still needs time to master it.
  4. There is no end to technology. Be willing to learn and accept new technology. Interviewers value technical skills as well as your attitude.
  5. Confident and studious;

Interview questions

The question is given to you, the answer to find it yourself, only through their own efforts will be particularly cherished.

Python related

  1. Implement a singleton pattern
  2. Implement a decorator
  3. Implement fast sorting in Python
  4. If multiple Python versions are required in the system, how do I manage Python versions
  5. How do I implement a global variable? (In addition to global, singleton can also be used)

Database correlation

  1. Is the data in the database updated in real time? Every time you click, the database changes, right?
  2. Number of Redis hashes
  3. How to modify the number of Redis database libraries?
  4. How does Redis database persist
  5. Data types supported by Redis databases
  6. Redis uses AOF mode to persist, and AOF file keeps increasing. How to handle it?
  7. How to set password for Redis database
  8. How is the hash table generated
  9. How does the MySQL database use SQL statements to insert data
  10. MySQL > slow query
  11. How to optimize query in MySQL database
  12. How do many requests access the same key of Redis at the same time? How do you ensure data security
  13. Talk about the Redis elimination mechanism
  14. My MySQL database is fully backed up at 12pm every day. The next day an employee deleted a database by mistake at 9 o ‘clock, but it was discovered at 10 o ‘clock. Q: How can I restore a database that has been mistakenly deleted and retain the data added between 9:00 a.m. and 10:00 a.m. without affecting the normal running of services?
  15. How do I avoid the same keys in the hash slot when there are more and more data?
  16. Where has MongoDB been used?

Project deployment related

  1. Everyone says Nginx is fast? What’s the reason for being fast?
  2. Do you know about RPC?
  3. How do I set the number of service processes on the server?
  4. Talk about forward and reverse proxies

Linux related

  1. How do I check the remaining memory
  2. How do I check whether a port is occupied
  3. How do I view the PID of a program and all its child processes
  4. How do I add permissions to all files in a directory
  5. If you have write permission on a directory, do you have delete permission on all files in that directory?
  6. An understanding of Linux multiplexing
  7. Method for modifying an IP address

The front-end related

  1. What do you know about front-end HTML, CSS and JS? Familiar with?
  2. React and Bootstrap?
  3. How do I optimize HTTP? (Response header setting Content-encoding: gzip)

Network programming related

  1. Talk about the process of establishing a TCP connection and what state did you get into at that time? Why does it only take 3 times to establish a connection and 4 times to disconnect? Why disconnect the second and third time to separate, not together?

Project related

  1. Talk about a process where a request comes back with a response
  2. How do I implement SSO
  3. How are JWT tokens generated and validated
  4. What back-end frameworks do you know about? Does Tornado know?
  5. Know anything about WebApp2
  6. How does Django implement CSRF attack protection
  7. Tell me about the difficulty you encountered in the project and how you solved it
  8. Tell me about the projects that you feel have been the most fulfilling or profound
  9. Know anything about KAFKA? What message queues have you used? Have you used RabbitMQ?
  10. How many people are in the project team? How long did it take to develop?

Version control related

  1. How do I pull branches from a remote repository to a local location
  2. How do I roll back the version

other

  1. Principle of Celery and application scenarios
  2. The principle of Elasticsearch
  3. How do you study at ordinary times? What technologies are focused on?
  4. Docker understanding, common commands, how to expose port
  5. Do you know ERP? Does Odoo understand?