Primero, lea todas las otras respuestas porque esta realmente requiere que lo haga.
Es posible que haya notado que ninguno de ellos calificaría como desarrollador de pila completa. Aquí están las razones:
Un desarrollador de pila completa [web] tiene que conocer los fundamentos.
Eso significa que HTTP, las capas OSI, entienden DNS, Punto de presencia (POP: por ejemplo, frente a la nube), se mantienen actualizados sobre nuevos protocolos (SPDY, HTTP 2), sobre nuevos estándares y sobre los emergentes. Conozca los impactos de ellos y su poly-fill. Debe saber también sobre SASS & LESS y todo lo que hace mañana hoy. (Por ejemplo, TypeScript)
Saber cuándo hacer SPA (aplicación de una sola página) y cuándo evitarlo.
Como tocará las bases de datos, debe tener un buen conocimiento del tipo de bases de datos y la capacidad de mezclarlas. (Use una base de datos orientada a documentos con una relacional y una gráfica)
- ¿Cómo haría para crear software para rastrear un objeto desde una cámara?
- ¿Por qué son tan importantes las actualizaciones de software? Asegúrese de incluir correcciones de seguridad, errores, adaptación a la nueva disponibilidad de hardware y otras opciones de complementos.
- ¿Existe una relación entre el aprendizaje automático y la programación concurrente?
- Tengo 17 años y quiero estudiar programación de software y ciencia de datos. ¿Cuáles son las habilidades y cosas que más necesito para avanzar?
- Cómo saber como probador si es culpa de un diseñador o de un desarrollador
Soy consultor, vi a muchas personas que con gusto los identificarán como desarrolladores completos, ¡pero no sé ninguno por ahora! Para ser claros, a menos que seas talentoso, no es posible.
Por lo general, full-stack no es full-stack. Significa desarrollo de back-end y frontal con un conjunto de herramientas y tecnologías proporcionadas por autoridades superiores.
Si tuviera que entrevistar a un verdadero desarrollador de full stack, haría las siguientes preguntas:
- ¿Qué escribe en telnet para realizar una solicitud HTTP a “http://www.google.be/index”?
- Explicar cómo “www.google.be” se resuelve en una IP
- ¿Qué es un registro DKIM y qué es un registro SPF?
- ¿Qué son los encabezados CORS?
- ¿Cómo funciona el algoritmo Huffman (se relaciona con gzip)? ¿Cómo se usa en la web?
- ¿Puede el “cliente” decir qué tipo de contenido acepta? Cómo ?
- ¿Cuál es la diferencia entre TCP y UDP?
- ¿Se puede falsificar la IP o el dominio?
- En la base de datos relacional, ¿cuándo usamos “LEFT JOIN” y “OUTER JOIN”?
- ¿Qué es una “expresión de tabla común”? (Perdón por Mysqlers)
- ¿Qué es “elevación variable” en EcmaScript?
- ¿Cuál es el alcance de una variable en EcmaScript?
- ¿Cuál es la utilidad de la propiedad “prototipo” en EcmaScript?
- ¿A qué nos referimos cuando decimos “Modelo de caja” en CSS?
- ¿Cuál es el doctype de una página html5?
- ¿Puede pedirle al navegador que guarde en caché los recursos para su uso sin conexión?
- ¿Es mejor hacer 37 solicitudes en paralelo o emitirlas una por una?
- ¿Cuál es la diferencia entre un servidor que usa un bucle de eventos o trabajadores? ¿Cuál es más rápido y cuándo?
- Fingiendo que su idioma implementa todas las facilidades que ofrece el formato de archivo Zip. ¿Cómo extraerías un archivo en particular de un archivo zip? ¿Cómo enumerarías su contenido?
- Escriba una expresión regular (PERL o POSIX) que valide una fecha y hora ISO. (2015-04-11T09: 33z)
- ¿Qué son SASS y LESS?
- ¿Qué son los sistemas de cuadrícula CSS?
- ¿Qué son las unidades EM, EX, PT y% en CSS?
- ¿Qué significa este selector: “sección> artículo + p [lang ^ = en] div.foo.bar”?
- ¿Qué es el jabón?
- ¿Cuándo es JSON mejor que XML? (y viceversa)
- ¿Qué son XSLT, XQUERY, XPATH, RelaxNg, XSD?
- ¿Cuáles son las principales diferencias entre JAVA o .Net y PHP?
- Dado que tiene suficiente memoria, ¿es una buena idea hacer crecer el caché de consultas MySQL?
- ¿Deberían los disparadores manejar parte de la lógica empresarial que se duplicaría en exceso en el código de la aplicación?
- ¿Qué patrón de diseño está oculto en una aplicación de 3 niveles? (cliente, servidor, base de datos)
- ¿Es seguro md5 para el hashing de contraseñas? ¿Qué pasa con SHA-2, brcypt y scrypt?
- ¿Qué es SSH?
- ¿Qué es FTP, SFTP y SCP?
- ¿Qué son las URL “presignadas”?
- ¿Qué es un “URI”?
- Cuando se usa HTTPS, ¿qué se envía en texto claro?
- ¿Sobre qué principios funciona SSL?
- ¿Qué son CHAP y WSSE?
- ¿Qué es PKCS11?
- ¿Cómo perfilar una aplicación web? (Cliente y servidor)
- ¿Cuál es la diferencia entre los lenguajes “imperativo”, “funcional”, “declarativo”, “prototípico” y “orientado a objetos”?
Estos son los conceptos básicos!
EDITAR: más preguntas
- ¿Qué son los archivos “pfx / p12”, “cer” y “PEM”?
- ¿Cuál es la mejor práctica con respecto al acceso SSH?
- ¿Para qué sirve la máquina DMZ?
- ¿Cuándo es HATEOAS y cuándo es relevante?
- ¿Qué son los verbos HTTP?
- ¿Cuál es la diferencia entre Apache, Node y Nginx?
- ¿Se puede bloquear el “ping”?
- ¿Es el “golpe de puerto” una buena seguridad?
- ¿Qué es OAuth, OpenId, SAML y CAS?
- ¿Cómo transferir un nombre de dominio?
- ¿Qué tipo de bases de datos existen? (Piense en Mongo, Caché, Neo4J)?
- ¿Cuáles son las ventajas de las bases de datos de gráficos y bases de datos de documentos?
- ¿Cuándo es más apropiado el flujo de datos y funcional?
- ¿Qué es el SEO?
- ¿Cómo ayuda RDF al SEO?
- ¿Cuál es la diferencia entre UI (interfaz de usuario) y UX (experiencia de usuario)?
- ¿Qué herramientas puedes probar para la prueba de carga?
- ¿Qué es el jabón?
- ¿Qué son los ORM?
- ¿Son los ORM la panacea?
- ¿Qué son las “promesas” y los “futuros”?
- ¿Cuáles son las principales diferencias entre una lista vinculada y una matriz, cuando cada una es más adecuada?
- ¿Qué son las funciones de alto orden?
- ¿Cuál es la diferencia entre “aplicación parcial” y “curry”?
- Al llamar a una función, ¿dónde suelen ir los parámetros en la memoria?
- ¿Cómo podemos provocar un “desbordamiento de pila”? (En java: “StackOverflowException”)
- ¿Qué es un “segfault”? ¿Cuáles son las posibles razones?
- ¿Qué es un sombreador EGL? ¿Dónde está el código “compilado” y “ejecutado”?
- ¿Es una buena idea crear animaciones en JavaScript ya que CSS3 está respaldado por GPU?
- ¿Qué son los websockets y cómo usarlos?
- ¿Qué son los trabajadores web y cómo usarlos?
- ¿Qué son npm, bower, gruñidos, tragos, cómo usarlos?
- ¿Qué es TypeScript?
- ¿Qué es el ES6?
- ¿Qué es un BNF? ¿Qué tan útil puede ser?
- ¿Cuál es la utilidad de los analizadores PEG?
La pregunta adicional también es básica.
Aquí hay algunas preguntas difíciles (según lo solicitado, sin modificaciones anteriores):
- Una aplicación web está retrasada. Uno edite el “/etc/resolv.conf” y agregue esta línea “nameserver 8.8.8.8”. Parece solucionar el problema. Por qué ?
- Agregamos más RAM al servidor y ahora la aplicación se ha ralentizado. La RAM se probó y está funcionando a su máxima capacidad. ¿Cuál es una causa potencial?
- Una solicitud como esta se envía a un servidor HTTP sin el encabezado HOST. Lo que pasa ?
- ¿Cuándo es útil un “trie”?
- ¿Cuáles son las diferentes cerraduras?
- Escribe dos códigos usando una función recursiva.
Uno que se puede escribir de forma iterativa sin una pila
y uno que realmente necesita uno. - En C, podemos usar punteros para apuntar a una dirección de memoria aleatoria. Suponiendo que no hay seguridad por defecto (sin protección de memoria), ¿por qué un proceso se bloquea después de una escritura “mala”?
- APL utiliza una forma compacta de escribir código. La mayoría de los operadores pueden ser seguidos por un “/” para la reducción. “+ / 1 2 3 4” es la suma de la lista 1 a 4 mientras que “× / 1 2 3 4”. ¿Cuáles son las posibles razones de tiempo de ejecución ?
- Dada esta lista de formas: cuadrado, rectángulo, rombo, trapecio, hexágono, hexágono regular y círculo. Dibuja un diagrama de herencia. (Cada clase tendría propiedades de “nombre”, “área”, “nbSides” y “perímetro”)
- ¿Cuándo es inadecuada la POO?
- Dé ejemplos de consultas mejor manejadas por una base de datos gráfica bien estructurada y una base de datos relacional bien estructurada.
- ¿Es Git una base de datos?
- Un sitio web exhibe un comportamiento extraño “pseudoaleatoriamente”. Al habilitar la depuración, el error desaparece. ¿Cuál puede ser una causa?
- ¿Cuándo es más adecuada la búsqueda n que la búsqueda binaria?
- ¿Cuál es la importancia de los algoritmos de tiempo constante? (Tiempo no limitado delimitado).
- Una función tiene una complejidad cylcomatic de 8. ¿Suena bien? Qué significa ?
- Cite varios métodos para hacer que el código sea fácilmente comprobable.
- Algunos lenguajes tienen propiedades dinámicas y métodos mágicos. ¿Por qué uno no debería abusar de ellos?
- ¿Por qué no indexamos todas las columnas en una tabla?
- Cuando un índice de mapa de bits es más adecuado que BTree o hash?
- ¿Por qué es “scrypt” más adecuado que “md5” en el hashing de contraseñas?
- Explique cómo verificaría una contraseña en una lista de contraseñas pre-hash con sales únicas.
- Lo que es perfecto tiene función; Implemente hashing perfecto para enteros.
- Algunos servidores utilizan bifurcación de otros un bucle par. ¿Cuáles son las ventajas de cada uno?
- ¿Qué tiene de malo el siguiente código teniendo en cuenta que mysql_real_escape_string no tiene errores (consulte la documentación)? :
$ id = mysql_real_escape_string ($ _ GET [‘id’]);
mysql_query ($ h, “SELECCIONAR * DE usuarios DONDE id = $ id”;
- ¿Qué verbos HTTP se usan en JSON-RPC?
- ¿Qué es el jabón?
Notas:
Algunas preguntas difíciles se cargan a propósito e incluso engañan la forma en que están escritas. Obviamente no espero la misma respuesta de un desarrollador full stack junior y senior.