¿Cuáles son algunas preguntas de la entrevista (o pueden hacerse) relacionadas con Django y Python?

Había compilado algunas preguntas de la entrevista de Python .

Esta lista puede ser útil tanto para el entrevistador como para el entrevistado.

  1. ¿Qué son las estructuras de datos mutables e inmutables en Python?
  2. ¿Qué son las tuplas?
  3. ¿Cuál es la diferencia entre tuple y list? ¿Dónde usará tupla y dónde usará la lista?
  4. ¿Qué es la escritura dinámica?
  5. Justifique esta afirmación: ¿Todo es objeto en Python?
  6. ¿Python es llamada por valor o llamada por referencia?
  7. ¿Cómo se crea un diccionario que pueda preservar el orden de los pares?
  8. ¿Se puede utilizar la estructura de datos mutables como clave en los diccionarios?
  9. ¿Para qué sirve enumerate () en Python?
  10. ¿Qué son * args, ** kwargs?
  11. ¿Cómo las variables de instancia son diferentes de las variables de clase?
  12. ¿Diferenciar entre el archivo “* .py” y el archivo “* .pyc”?
  13. ¿Explicar la diferencia entre Map vs Reduce Vs Filter?
  14. ¿Qué son las funciones de Lamda?
  15. ¿Qué es la comprensión de la lista?
  16. ¿Qué son las funciones __init__?
  17. ¿Qué son los generadores?
  18. ¿Qué son los iteradores?
  19. ¿Se puede usar el generador para crear iteradores? Da un ejemplo
  20. ¿Se pueden usar iteradores para crear un generador?
  21. ¿Diferenciar entre rango y Xrange?
  22. ¿Qué es la orden de resolución de método?
  23. Python admite herencia de niveles múltiples o herencia múltiple o ambas?
  24. ¿Python admite subprocesos múltiples?
  25. ¿Qué es multi-threading? ¿Qué es el problema GIL (bloqueo global del intérprete)?
  26. ¿Qué son los decoradores? ¿Cómo crear decorador personalizado?
  27. ¿Cómo se gestiona la memoria en Python?
  28. ¿Cómo funciona la recolección de basura de Python?
  29. ¿Qué son las expresiones regulares?
  30. ¿Diferenciar entre los métodos append () y extend ()?
  31. ¿Qué es el web scraping? ¿Cómo lo logras en Python?
  32. ¿Explicar el uso de la declaración “con” en Python?
  33. ¿Qué son los middlewares?
  34. ¿Qué es el parcheado de mono? Da un ejemplo ?
  35. ¿Cuál es la diferencia entre py2.xy py3.x?
  36. ¿Dar ejemplos de Python Framework?

Aunque no voy a dar una explicación como creo, para aprender cualquier lenguaje de programación necesitas hacer algunos esfuerzos. Intenta encontrar las respuestas. Ref: Python Org

Preguntas de la entrevista de Python

Pitón

  1. Qué es Python, explica las características de Python.
  2. Cómo se interpreta Python.
  3. Explicar dict.
  4. Cómo pasar argumentos opcionales o de palabras clave.
  5. Explicar la indexación y el corte.
  6. ¿Qué es lambda?
  7. Diferencia entre str () y repr ().
  8. Explicar la serialización y deserialización / Decapado y descortezado.
  9. Qué es la compresión list / dict.
  10. ¿Qué son las funciones de orden superior?
  11. Cómo copiar objetos en Python. Diferencia entre copia superficial y copia profunda.
  12. Cómo hacer una matriz en python.
  13. Cómo generar números aleatorios.
  14. Cómo manejar excepciones.
  15. Cuándo usar list / tuple / set.
  16. Desventaja de python.
  17. Rango de diferencia () y xrannge ()
  18. ¿Qué es PEP8?
  19. ¿Qué es virtualenv?
  20. Diferencia entre Python 2. * y 3. *
  21. ¿Qué es el decorador, el uso?
  22. Con declaración y su uso.
  23. Qué es clase y qué es uno mismo.
  24. Explicar isinstance ()
  25. ¿Qué es el método estático, el método de clase y el método de instancia?
  26. Pisando en pitón
  27. ¿Qué son los iteradores y generadores?
  28. Explicar mapa, filtrar, reducir y lambda.
  29. Diferencia entre las clases con estilo nuevo y las clases con estilo antiguo.
  30. ¿Qué es la diferencia entre Python y Java?
  31. ¿Qué es el procesador de contexto?
  32. ¿Qué es exec () y eval ()?
  33. Cómo pasar el argumento de la línea de comando.
  34. ¿Qué es el rendimiento?
  35. ¿Qué es ord () y chr ()?
  36. ¿Qué son las metaclases?
  37. ¿Qué es el descriptor?
  38. Cualquier paquete de 10 pitones que haya usado.
  39. ¿Qué es el espacio de nombres en Python? espacio de nombres vs alcance?
  40. ¿Qué es el MRO?
  41. == vs es?
  42. mutable vs inmutable

Django

  1. ¿Qué es django? ¿Por qué django?
  2. Características de django
  3. MVC vs MTV?
  4. render vs render_to_response
  5. flujo de django
  6. ¿Qué es django-admin y manage.py?
  7. señales de django
  8. Qué es el middleware y su uso. Middleware Custum
  9. Sesiones en django
  10. ¿Qué son las etiquetas de plantilla?
  11. order_by, group_by
  12. ¿Cómo django maneja muchas relaciones?
  13. django con base de datos múltiple
  14. ¿Qué son los objetos Q en django?
  15. Resumen detallado de los objetos de solicitud y respuesta
  16. ¿Cuáles son las vistas basadas en la clase?
  17. ¿Cómo usar sesiones en django? ¿Diferentes formas de almacenar sesiones en django?
  18. ¿Formas modelo?

Pitón:
¿Qué son las comprensiones de listas?
¿Cuándo usar las comprensiones de listas y cuándo evitarlas?
¿Diferencia entre rango y xrange?
¿Qué es la función lambda?
¿Qué son las funciones de mapa, filtro y reducción?
¿Diferencia entre copia profunda y copia superficial?
¿Cuáles son los diferentes tipos de excepciones generadas en python?
¿Cómo escribir su propio manejo de excepciones personalizado?
¿Diferencia entre input y raw_input?
¿Por qué escribimos __name__ == “__main__” en un script de Python?
Por favor, explique la declaración ‘con’ en python
¿Por qué el manejo de excepciones tiene un bloqueo finalmente?
¿Python proporciona subprocesos múltiples seguros para subprocesos?
¿Qué quieres decir con no bloquear IO?
¿Cómo usar * args y ** kwargs en python?

Django:

¿Qué es el middleware django?
¿Cuál es la diferencia entre syncdb y el comando migrate?
¿Qué son middleware de solicitud y middleware de respuesta?
¿Qué quieres decir con vista de direct_to_template en django?
¿Qué son las vistas genéricas basadas en clases modulares?
¿Por qué se usa el token CSRF en Django?
¿Qué hace el comando collectstatic?
¿Cómo cambiar la zona horaria predeterminada en django?
¿Qué quieres decir con herencia de plantilla en django?
¿Por qué usar la herencia de plantilla?
¿Django tiene una arquitectura débilmente acoplada? Explica lo mismo.
¿Cuál es el propósito del archivo wsgi.py en el proyecto django?
¿Cuál es la diferencia entre ruta absoluta y ruta relativa?
¿Qué es la vista de lista en django?
¿Qué es la vista de plantilla en django?
¿Qué quiere decir con paginación de conjunto de resultados?
¿Cómo acceder a una variable de configuración de django?
¿Por qué tenemos un archivo “__init__.py” en una aplicación django?

Descripción

The Project requiere que construyas un panel de análisis usando datos de Twitter. La aplicación debe mostrar información de uso para un hashtag particular de su elección y debe recuperar periódicamente los datos de la API de Twitter y almacenar los resultados. La aplicación debe ser interactiva y de alto rendimiento. Dado que los usuarios interactuarán con los datos almacenados en caché en su aplicación en lugar de solicitarlos de Twitter.

Para el hashtag que elija, el tablero debe mostrar:

  • Un histograma de fecha de uso de hashtag, por hora, para los 7 días anteriores
  • Tuit más retuiteado, por día, durante los 7 días anteriores
  • Alguna otra métrica de su elección, que le pareció interesante al explorar los datos.

Especificación completa del proyecto

Pila de backend

La aplicación del servidor debe escribirse en Python 3 con Django 1.9 . Los datos deben recuperarse de forma asincrónica utilizando Celery en un intervalo programado con Celerybeat . Para este proyecto, Django puede servir como Celery Broker y como backend de resultados.

Los datos recuperados de Twitter deben almacenarse utilizando el Django ORM en una PostgreSQL datos PostgreSQL , y deben enviarse a la UI a través de una API RESTful construida con Django Rest Framework .

UI Stack

La interfaz de usuario debe ser una aplicación web moderna y compatible con los estándares que use Bootstrap 3 como marco CSS. Tiene la opción de elegir el marco Javascript que prefiera para construir la aplicación. Obtendrás puntos de bonificación por usar React.js o EmberJS

Las visualizaciones de datos se pueden implementar usando Flot , d3.js (incluidos derivados como NVD3 ) o Chart.js . Los sistemas de compilación front-end son completamente opcionales, pero últimamente hemos estado disfrutando de webpack .

Funcionalidad

La aplicación de IU debe requerir autenticación básica (un nombre de usuario y contraseña) y tener la capacidad de crear nuevas cuentas de usuario a pedido. El sistema de autenticación incorporado de Django está bien, siempre que esté configurado para funcionar correctamente con Django Rest Framework .

Los datos de Twitter deben almacenarse en una sola tabla de modelo / base de datos. El esquema depende de usted, pero las agregaciones deben ocurrir en tiempo de ejecución, ya sea a nivel de la base de datos o en Python, si puede optimizar el rendimiento lo suficientemente bien.

La aplicación debe constar de tres vistas. Estas vistas pueden implementarse como un SPA (Aplicación de página única) en JavaScript o como tres vistas separadas de Django . No hay penalidad o beneficio al elegir uno u otro.

  • Vista de inicio de sesiónLos usuarios no autenticados se dirigen aquí
  • Vista del tablero Los usuarios autenticados se dirigen aquí y pueden ver el tablero
  • Vista de gestión de usuarios La cuenta de usuario CRUD ocurre aquí.

Toda interacción de datos con el backend debe ocurrir a través de la API REST

Flujo de trabajo e infraestructura

La aplicación ( Django y Celery ) debe implementarse en un servidor Amazon EC2 . Una instancia t2.micro será más que adecuada. La instancia debe ejecutar Ubuntu 14.04 y la base de datos debe implementarse en Amazon RDS. Debería poder crear todas estas instancias en el nivel gratuito de Amazon Web Service sin costo para usted.

Django debe implementarse utilizando uWSGI , que debe ejecutarse detrás de Nginx través de un proxy inverso.

Django:
– ¿Cómo maneja Django el enrutamiento y las vistas?
– ¿Cómo define su propio middleware personalizado?
– ¿Cuáles son las principales diferencias entre las versiones de Django?
– ¿Por qué debería usar formularios?
– ¿Cuándo debería crear una nueva aplicación django (subdirectorio)?
– ¿Qué es el apio?
– ¿Deberías usar MySQL o Postgres, por qué o por qué no?
– ¿Cómo harías para la seguridad?
– ¿Cómo abordaría la escalabilidad?
– ¿Cómo harías para el despliegue?
– ¿Qué es el sur?

Pitón:
– ¿Cómo puedes implementar programación funcional y por qué lo harías?
– Explica los tipos y por qué los usarías.
– ¿Qué es la herencia múltiple y cuándo debe usarla?
– ¿Qué es una metaclase?
– ¿Qué son las propiedades y cuál es el punto?
– ¿Qué son los decoradores, cómo defino los míos?
– ¿Por qué / cuándo usaría una función lambda?
– ¿Cuál es la diferencia entre 2.7+ y 3?
– ¿Qué es una cadena Unicode?
– ¿Qué hace la declaración de rendimiento?
– ¿Qué es un generador?
– ¿Por qué usaría uno?
– ¿Qué es el polimorfismo, cuándo lo usaría?
– ¿Cómo haces para empaquetar el código de Python?
– ¿Se compila Python ?, en caso afirmativo, ¿cómo?
– ¿Qué significa __some-variable__?
– ¿Debo importar un módulo completo?
– ¿Qué significa dinámico / pato escrito?
– ¿Cuándo no usaría Python?
– ¿Qué es DRY? ¿Cómo puedo aplicarlo a través de OOP o FP?
– ¿Cuándo usaría Python?

1) Su url conf es el punto de entrada en la aplicación django.
2) Cuando un visitante llega a su sitio de django:
i) Primero se consulta su url conf y se encuentra la vista adecuada.
ii) Después de encontrar la vista adecuada, su solicitud se procesa, incluidas las consultas de la base de datos, si las hubiera.
iii) La respuesta se envía a la plantilla para su visualización y se muestra el resultado.
3) DRY es un principio para evitar escribir el mismo código varias veces.

1. ¿Puede explicar qué es un punto de entrada en la aplicación Django?
2. Explique de principio a fin cómo se procesará una url ingresada en el navegador y la secuencia de archivos que entrarán en imágenes paso a paso.
3. Explicar los principios DRY y CoC.

Qué cosas amas en Django Framework que no hiciste en el resto del framework / lenguaje que has usado.

Sobre Django, por regla general, haga preguntas generales. En qué proyectos trabajó, qué bibliotecas de terceros utilizó, cuál es la arquitectura de esos proyectos.