How to interview Python backend Engineer?

Label PythonInterview
6663 people read comments(13) Collection Report

Some time ago there was a man in the know.Http://, how to interview Python Engineer? I'd answer it,

Eat lunch when I keep thinking about this question, I think, the focus is not on the python but back-end engineers, because Python is only part of the system, Linux based operation to be cooked, SQL to understand it, the message queue to know it, GIT to familiar with it... Wooden bucket theory, each ring can not fall, proficient in which the one or two ring is even better. Basic skills are solid, new things soon learn, code written in a slip command knocked Shun, bug solution good, my mother will not worry I work overtime every day ~ ~ ~

One language

1 recommend a read the best Python books? Open the topic.
2 talk about Python's decoration, iterator, yield?
3 which is the standard library thread safe queue? Which one is not safe? Logging is thread safe?
4.python what is the appropriate scene? What happens when you encounter a computing intensive task?
5.python high concurrency solution? I want to hear twisted->tornado->gevent, can pull to Erlang, golang better

Two. Operating system

Can be directly considered to be Linux, after all, the majority of the back end of the deal with linux.
1.tcp/udp the difference? TCP sticky bag is how to return a responsibility, how to deal with? Does UDP have sticky packets?
2.time_wait what is the situation? What may be the reason for the emergence of excessive close_wait?
3.epoll, the difference between select? Edge triggered, horizontal trigger different?

Three. Storage

Storage may contain RDBMS, NoSQL, and cache, etc., I take the example of MySQL, redis
MySQL correlation
1 to talk about the MySQL character set and collation?
What is the difference between 2.varchar and char? Size limit? Utf8 character set varchar up to how many characters can be stored
The difference between key unique and 3.primary?
4 what is the use of foreign keys, whether the use of foreign keys? A foreign key index?
The difference between 5.myisam and InnoDB? What is the case for the two phase locking protocol for InnoDB?
6 what is the use of the index, what is the principle? What are the points of attention in the design index?
Redis correlation
1 what scenario with redis, why MySQL is not suitable?
2 talk about redis's business? Using transaction simulation atomic +1 operation? Is there any other solution to the atomic operation?
3.redis memory is full of what?

Four. Safety

Web security related
1.sql injection is how to produce, how to prevent?
2.xss how to prevent? Htmlescape after the ability to avoid XSS?
3.csrf what is it? Django is how to prevent?

cryptographic technique

1 what is the packet encryption? Encryption mode? What's the difference between ECB and CBC? Why do you need a IV vector?
2 simple talk about the process of HTTPS?
3 the difference between symmetric encryption and asymmetric encryption?
3 how to generate a shared secret key? How to guard against the middle attack?

Five. Miscellaneous

Are you concerned about the new technology? Rust, golang do you know? Numpy, what is pandas?
Whether to keep up with the trend of the times? Don't go to the micro Bo, brush not know?

Maybe you think I asked the fine, but that many are usually encountered, and need to be resolved, the details can reflect a person.

If you feel a little kiss, welcome your resume to me, dragon game operation support center data analysis department hiring; think there's a bit of a problem, what are you waiting for, please come and I communicate.

Update: discussion area very busy, people say simple, people say good difficult. In fact, I think this is only suitable for the interview 2-3 years working experience in backend engineer. Really did not ask
It's hard, but maybe you don't pay attention to it.
Here I recommend some book.
Python reference manual, so that you are more on the floor
Graphical password technology, password entry choice
MySQL technology insider fifth edition, is a bit thick when read the manual, want to have patience, high performance mysql also strongly suggest
Tcp/ip programming effective

Why is there such a big difference? I think personal experience is not the same as it, if it is engaged in web operating system this and the password technology will be weak, but if as a system engineer or game server this will obviously too strong.

Six postscript.

Recently, I have interviewed many children's shoes, I found that can reach the requirements of really less and less, a lot of HR are that Python is the most difficult to recruit post, I think is justified, which really is worth us to ponder?

I want to have a part of the reason is caused by the python language, write a lot of python, but to write a good person is very few, and most of the python as a script to write, the lack of oriented object and mode of thought. Think of Java. We are accustomed to the interface, realize the separation, design patterns in Java called for many years, especially three SSH framework, with a will of course think that should do it, although there are some disadvantages, but for enterprise java development is undoubtedly a great progress.

In contrast to python, especially in generator, the coroutine metaclass to Python injected great flexibility, and to write the pythonic way with no small difficulty, but in fact some advanced features of the python so few, get rid of the No.

When you think Python is in the neck, stop and think about it. Study design pattern, think of refactoring, understand the domain driven design, agile development, and then come back read before writing the code, when its sights higher, the code is also beautiful.

Of course raise the thought is not an overnight, mode, principle often let you entanglements, tangled will wonder, thinking out of the own way, of course, all roads lead to Rome.

Database storage technology is R & D engineers step, but the threshold, for relational database to MySQL, for example, you must know what field select what type, type size, in bytes, constraints, this thing is very easy to understand, think you can, such as set type to support and etc. the operation. A byte can save 8 categories. The data type is done, the following is the index, MySQL index type? Primary key, unique index, general index. Index category, BTree index, hash index. The advantages and disadvantages of the index, MySQL index search principle, the principle of join (most of them are nested loop), and some special circumstances, such as MySQL slow query. In fact here R & D engineers about, of course, you can go on, such as the separation of read and write, cluster management, and even some parameter tuning.

The revolution has not yet succeeded, and the comrades have to work hard!!!!

Python technology exchange group
QQ group:
Five hundred and thirteen million four hundred and fifty-seven thousand and sixty-four

Guess you're looking for
View comments
* the above user comments only represent their personal views, does not represent the views or position of the CSDN website
    personal data
    • Visit514234 times
    • Integral:Six thousand two hundred and eighty-seven
    • Grade
    • Rank:2025th name
    • Original110
    • Reproduced:11
    • Translation:3
    • Comments:231
    Blog column
    Classification of articles
    Latest comments