¿Cuáles son las preguntas de la entrevista para los ingenieros backend de Python?
1. ¿Recomiendas el mejor libro sobre Python que hayas leído?
2. ¿Hablar sobre decorador, iterador y rendimiento de Python?
3. ¿Qué cola de la biblioteca estándar es segura para subprocesos? ¿Cuál es inseguro? ¿Es seguro el hilo de registro?
4.4.¿Cuáles son los escenarios adecuados para Python? ¿Qué debe hacer cuando se enfrenta a una tarea computacionalmente intensiva?
5. ¿Solución de alta concurrencia en Python? Me gustaría escuchar Twisted -> Tornado -> Gevent, más bien Golang y Erlang.
Dos. El sistema operativo
puede considerarse directamente como Linux. Después de todo, la mayoría de las personas de back-end manejan Linux.
1. ¿Cuál es la diferencia entre TCP y UDP? ¿Qué pasa con el atasco de paquetes TCP y cómo solucionarlo? ¿Existe un paquete adhesivo para udp?
2. ¿Qué es 2.time_wait? ¿Cuál podría ser el motivo de demasiados close_wait?
3.¿Cuál es la diferencia entre EPOLL y SELECT? ¿Cuál es la diferencia entre disparo por flanco y disparo por nivel?
Tres. Almacenamiento; reserva
El almacenamiento puede incluir rdbms, nosql, caché, etc. Usaré MySQL y Redis como ejemplos.
Relevancia de MySQL
1. ¿Hablar sobre el juego de caracteres de MySQL y las reglas de intercalación?
2.2. ¿Cuál es la diferencia entre varchar y char? ¿Restricciones de tamaño? ¿Cuántos caracteres puede almacenar varchar en el conjunto de caracteres utf8?
3.3. ¿Cuál es la diferencia entre clave primaria y única?
4. ¿Para qué sirven las claves foráneas? ¿Deberían utilizarse claves foráneas? ¿Es necesario indexar las claves externas?
5.5. ¿Cuál es la diferencia entre myisam e innodb? ¿Qué es el protocolo de bloqueo de dos fases de innodb?
6. ¿Para qué sirve el índice? ¿Cuál es el principio general? ¿A qué debemos prestar atención al diseñar índices?
Relevancia de Redis
1. ¿En qué escenarios se utiliza Redis y por qué MySQL no es adecuado?
2. ¿Hablar sobre el negocio de Redis? ¿Simular operaciones atómicas 1 con transacciones? ¿Existen otras soluciones para las operaciones atómicas?
3.3. ¿Qué pasará si la memoria de Redis está llena?
Cuatro. Seguridad
Relacionada con la seguridad de la red
1. ¿Cómo se produce la inyección SQL y cómo prevenirla?
2. ¿Cómo prevenir 2.xss? ¿Se puede evitar xss después de htmlescape?
3. ¿Qué es 3.csrf? ¿Cómo se defiende Django?
Criptotecnología
1. ¿Qué es el cifrado de bloques? ¿Qué modos de cifrado existen? ¿Cuál es la diferencia entre los modos bce y cbc? ¿Por qué se necesita una inyección intravenosa?
2. En pocas palabras, el departamento de análisis de datos del Centro de soporte de operaciones de juegos de Longtu está reclutando personas; creo que hay un problema, entonces, ¿a qué estás esperando? Ven y charla conmigo.
Actualización: El foro está ocupado. Algunos dicen que es fácil, otros dicen que es difícil. De hecho, creo que solo es adecuado entrevistar a ingenieros de back-end con 2 o 3 años de experiencia laboral. Realmente no pregunté
Este es un tema difícil, pero tal vez no le prestes atención.
Aquí te recomendamos algunos libros.
El manual de referencia de Python definitivamente te llevará al siguiente nivel.
Tecnología de contraseña gráfica, la mejor opción para ingresar contraseña
Mysql Technology Insider Quinta edición, es un poco grueso al leer el manual, tenga paciencia, MySQL de alto rendimiento también es altamente recomendado para leer.
Programación tcp/ip efectiva
¿Por qué las áreas de comentarios son tan diferentes? Creo que mi experiencia personal es diferente. Si estuviera trabajando en la web, sería relativamente débil en sistemas operativos y criptografía, pero si fuera ingeniero de sistemas o servidor de juegos, sería significativamente más fuerte.
Posdata del verbo intransitivo
He entrevistado recientemente muchos zapatos para niños y descubrí que muy pocos pueden cumplir con los requisitos. Mucha gente de RR.HH. dice que Python es el trabajo más difícil de encontrar y creo que tiene sentido. ¿Realmente vale la pena reflexionar?
Creo que parte de la razón se debe al lenguaje Python. Mucha gente puede escribir Python, pero pocas pueden escribirlo bien. La mayoría de ellos escriben Python como scripts y carecen de ideas orientadas a objetos y patrones. Pensando en Java, todos están acostumbrados a la separación de interfaz e implementación. Los patrones de diseño se han utilizado en Java durante muchos años, especialmente los tres principales marcos ssh. Aunque tiene algunas deficiencias, sin duda es un gran progreso para el desarrollo de Java a nivel empresarial.
Por otro lado, Python, especialmente los generadores, coprocesadores y metaclases, inyecta mucha flexibilidad en Python. No es difícil escribir Python, pero de hecho Python solo tiene muy pocas características avanzadas. , mátalo y desaparecerá.
Cuando sientas que Python ha encontrado un cuello de botella, es mejor que te detengas y pienses en ello. Estudie patrones de diseño, piense en la refactorización, comprenda el diseño impulsado por dominios y el desarrollo ágil, y luego regrese y lea el código que escribió antes. A medida que sus horizontes se vuelvan más altos, su código se volverá más hermoso.
Por supuesto, la mejora en el pensamiento no se producirá de la noche a la mañana. Los patrones y principios tienden a enredarte. Si está confundido, lo pensará y encontrará una solución por su cuenta. Por supuesto, todos los caminos conducen a Roma.
Las tecnologías de almacenamiento, como las bases de datos, son un obstáculo para los ingenieros de RD. Tome la base de datos relacional mysql como ejemplo. Debes saber claramente qué campo seleccionar, qué tipo, tamaño de byte y límites. Esto también es fácil de entender. Piénselo, como una colección. Para admitir operaciones como intersección y fusión, solo se pueden almacenar 8 categorías en 1 byte. El tipo de datos está hecho, aquí está el índice. ¿Qué son los tipos de índice mysql? Clave primaria, índice único, índice universal. Categoría de índice, índice BTree, índice hash. Las ventajas y desventajas de los índices, el principio de búsqueda de índices de MySQL, el principio de unión (principalmente bucles anidados) y algunos casos especiales, como la lentitud de las subconsultas de MySQL. De hecho, los ingenieros de RD son casi los mismos aquí. Por supuesto, puede continuar profundizando, como la separación de lectura y escritura, la administración de clústeres e incluso algunos ajustes de parámetros.