Red de conocimiento informático - Problemas con los teléfonos móviles - ¿A qué debe prestar atención al realizar una entrevista como desarrollador backend de un sitio web?

¿A qué debe prestar atención al realizar una entrevista como desarrollador backend de un sitio web?

¿Qué debe buscar durante una entrevista para un desarrollador de backend web? ¿A qué cuestiones debemos prestar atención? Déjame decirte a continuación:

Las preguntas de la entrevista/prueba escrita que se encontraron al entrevistar a estas empresas son las siguientes. Aunque la mayoría de ellas pueden ser preguntas básicas, espero que no mires las respuestas y pases de largo. Es mejor fingir que alguien te está haciendo esta pregunta y dejarte hablar o escribir la respuesta: (No rama)

Sintaxis de Python y otras partes básicas

Tipos variables y tipos inmutables;

Los métodos de implementación y diferencias entre copia superficial y copia profunda, si diseñó una copia profunda, cómo implementarla; it It;

La diferencia entre __new__() y __init__();

Cuántos patrones de diseño conoces;

¿Sabes codificar y decodificar?

Las ventajas y desventajas de los generadores y las listas por comprensión;

Qué es un decorador; qué debes hacer si quieres decorar después de una función;

Escribir uno a mano Patrón Singleton implementado usando decoradores;

¿Cuál es la diferencia en el uso posterior entre singletons que usan decoradores y singletons que usan otros métodos?

Escritura a mano:

Introducción a la recolección de basura: recuento de referencias/reciclaje de generación dividida/aislamiento de ciclos de referencia;

La diferencia entre multiproceso y multiproceso; qué es adecuado para uso intensivo de CPU;

Cuántos ¿Existen procesos? Un método de comunicación;

Introducción a las conexiones, por qué es más rápido que los subprocesos;

La diferencia entre range y xrange (de hecho, aprendí py3...);

Como tengo experiencia en C/C++, me pidieron que escribiera a mano en C: una función que convierte una cadena de dirección IP (como "172.0.0.1") en un número binario de 32 bits.

Parte de clasificación algorítmica

Clasificación rápida escrita a mano; clasificación en montón; cuál es la complejidad de varios algoritmos de clasificación de uso común y cómo manejarlos; peor de los casos Optimizar;

Escritura a mano:...,An], requiere imprimir todas las combinaciones en la lista;

Escritura a mano: use una línea de Python para escribir 1+2+3 +.. .+10**8;

Python escrito a mano: método recursivo para determinar si una cadena es un palíndromo;

Cómo determinar si hay un ciclo en un lista enlazada unidireccional de longitud desconocida;

Cómo ordenar una lista enlazada unidireccional usando el algoritmo de clasificación rápida;

Escritura a mano: una lista de elementos digitales desordenados de longitud n, cómo encuentre la mediana, cómo estimar la mediana lo más rápido posible y cuál es la complejidad de su algoritmo;

Cómo recorrer una carpeta cuya carpeta interna se desconoce (dos métodos para recorrer el árbol primero)

Conocimientos básicos de red

¿En qué capa del modelo está TCP/IP?

¿Qué significa una conexión de socket larga?

¿ ya sabes seleccionar y epoll, y cuál es la diferencia;

p>

La diferencia entre TCP y UDP, hablemos del protocolo de enlace de tres vías y del saludo de cuatro vías;

Por qué hay demasiados TIME_WAIT;

Todo el proceso de conexión http: dijiste desde El usuario inicia una solicitud, hasta que el usuario recibe una respuesta;

Método de conexión http .

La diferencia entre obtener y publicar, ¿conoce otros métodos?

¿Conoce restful?

¿Cuánto sabe sobre códigos de estado como 200/403/404/504?

Parte de la base de datos

Hay varios tipos de bloqueos de MySQL; cómo ocurren los interbloqueos;

Por qué, cómo particionar y dividir tablas;

>MySQL char La diferencia entre varchar text;

Comprende la unión, hay varios tipos, cuáles son las diferencias, A LEFT JOIN B, resultados de la consulta, cómo mostrar la parte que B no tiene (NULL) ;

Tipo de índice Hay varios tipos, la diferencia entre el índice BTree y el índice hash (no respondí la diferencia entre los dos en el disco);

Hay varios tipos de índice , la diferencia entre el índice BTree y el índice hash (no respondí Responda la diferencia entre los dos en el disco);

Escritura a mano: cómo optimizar los comandos de consulta;

Aprenda sobre NoSQL y la diferencia entre este y las bases de datos relacionales; Redis tiene varios tipos de almacenamiento comunes;

Parte de Linux

Qué comandos de Linux/Git usa comúnmente y cuáles son sus funciones;

Compruebe qué comandos utiliza el proceso actual. Además de las operaciones relacionadas con archivos, ¿qué otros comandos operativos suele tener?

(Porque estoy muy familiarizado con Linux y solo conozco el operaciones básicas, por lo que el entrevistador básicamente no preguntó sobre esta parte.

Sección del proyecto Django

Permítanme presentarles brevemente los proyectos de su empresa, ya sea que estén relacionados con el back-end o no. reflejando principalmente lo que has hecho;

¿Qué estás haciendo en el proyecto? ¿Cuál es la parte más difícil y cómo la resolviste?

¿Has visto el código fuente de Django? administrador de Django, ¿has visto el código fuente de Flask? ¿Cómo entiendes el código abierto?

MVC/MTV;

Cómo funciona el almacenamiento en caché;

Qué ¿Qué hace el middleware?

¿Qué es CSRF y cómo lo evita Django? ¿Qué está pasando con XSS?

Si está diseñando el inicio de sesión, hable brevemente sobre sus pensamientos;

p>

¿Cuál es la parte más difícil de tu proyecto?

p>

¿Cuál es la parte más difícil de tu proyecto p>

La conexión y la diferencia? entre sesión y cookie; por qué la sesión es segura;

El papel de uWSGI y Nginx

Lo anterior es el artículo sobre la entrevista sobre desarrollo back-end web que le presentó el editor. Espero que le resulte útil en el proceso de operación real.