You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Este repositorio contiene preguntas de entrevistas a programadores front-end, que pueden ser usadas para revisar a candidatos potenciales. Bajo ningún concepto se recomienda usar todas las preguntas aquí expuestas con el mismo candidato (eso llevaría horas). Escoger algunos elementos de esta lista debería ayudarle a revisar las habilidades que requiere.
4
4
5
5
**Nota:** Tenga en mente que muchas de estas preguntas son abiertas y pueden llevar a interesantes discusiones que le pueden decir más sobre las capacidades de la persona que una simple respuesta.
6
6
7
-
## Índice
7
+
## Indice
8
8
9
9
1.[Preguntas generales](#general)
10
10
1.[Preguntas específicas de HTML](#html)
11
11
1.[Preguntas específicas de CSS](#css)
12
12
1.[Preguntas específicas de JavaScript](#js)
13
+
1.[Preguntas sobre pruebas de código](#testing)
14
+
1.[Preguntas sobre rendimiento](#performance)
15
+
1.[Preguntas sobre conectividad](#network)
13
16
1.[Preguntas de código](#codigojs)
14
17
1.[Preguntas divertidas](#divertidas)
15
18
@@ -19,137 +22,193 @@ Este repositorio contiene preguntas de entrevistas a programadores front-end, qu
* ¿Podría describir algún problema técnico que haya resuelto recientemente?
30
+
* ¿Cuales son las consideraciones del área de interfaces, rendimiento, posicionamiento, mantenimiento o seguridad que toma en cuenta al desarrollar sitios o aplicaciones web?
31
+
* Hable acerca de su ambiente de desarrollo preferido.
24
32
* ¿Qué sistemas de control de versiones ha usado?
25
-
* ¿Cuál es su ambiente de desarrollo favorito?
26
33
* ¿Puede describir el proceso que sigue cuando crea una página web?
34
+
* Si tuviera cinco hojas de estilo distintas, ¿cómo las integraría a su página web?
27
35
* ¿Puede describir la diferencia entre "Progressive Enhancement" y "Graceful Degradation"?
28
-
* Puntos extra si el entrevistado menciona "detección de capacidades".
29
-
* Explique qué significa "HTML Semántico".
30
-
* ¿Cuál es el navegador que utiliza principalmente para el desarrollo y qué herramientas de desarrollo usa?
31
-
* ¿Cómo optimiza los recursos de una web?
32
-
* ¿Por qué es mejor utilizar varios dominios para distribuir los recursos de una página web?
33
-
* ¿Cuántos recursos se pueden descargar simultáneamente de un mismo dominio?
36
+
* ¿Cómo optimizaría los recursos de un sitio web?
37
+
* ¿Cuántos recursos se pueden descargar simultáneamente de un mismo dominio?
38
+
* ¿Cuáles son las excepciones?
34
39
* Mencione tres formas para disminuir el tiempo de carga de una página (tiempo real o percibido).
35
40
* Si se ha unido a un proyecto y los desarrolladores usan tabs y usted usa espacios, ¿qué hace?
36
-
* Escriba una página con una galería sencilla.
37
-
* ¿Qué herramientas usa para probar el rendimiento de su código?
41
+
* Describa como elaboraría una página con una galería sencilla.
38
42
* Si pudiera elegir una tecnología para dominar este año, ¿cuál sería?
39
43
* Explique la importancia de estándares y los grupos que los definen.
40
-
* ¿Sabe que es el FOUC? ¿Cómo lo evita?
44
+
* ¿Sabe que es el _Flash Of Unstyled Content_?, ¿cómo lo evita?
45
+
* Explique qué son las _Aplicaciones de internet enriquecidas y accesibles_ y los lectores de pantalla, además de como hacer una página web accesible
46
+
* Explique las ventajas y desventajas de usar animaciones en CSS contrario a usar animaciones hechas con JavaScript.
47
+
* ¿Qué significa _CORS_ y a qué problema está relacionado?
41
48
42
-
####<aname='html'>Preguntas específicas de HTML:</a>
43
49
44
-
* ¿Qué función cumple el `doctype` y cuántos puede nombrar?
45
-
* ¿Cuál es la diferencia entre el modo convencional y el "quirks mode"?
46
-
* ¿Cuáles son las limitaciones al utilizar páginas XHTML?
47
-
* ¿Hay algún problema al servir las páginas usando: `application/xhtml+xml`?
48
-
* ¿Cómo programaría una página con contenido en varios lenguajes?
49
-
* ¿Qué consideraciones se deben tener cuando se diseñan/desarrollan sitios multi-lenguajes?
50
+
#### <aname='html'>Preguntas específicas de HTML:</a>
51
+
52
+
* ¿Qué función cumple el `doctype` y cuántos tipos puede nombrar?
53
+
* ¿Cuál es la diferencia entre el modo convencional y el "_quirks mode_"?
54
+
* ¿Cuál es la diferencia entre HTML y XHTML?
55
+
* ¿Hay algún problema al servir las páginas usando: `application/xhtml+xml`?
56
+
* ¿Cómo presentaría una página con contenido en varios lenguajes?
57
+
* ¿Qué consideraciones se deben tener cuando se diseñan/desarrollan sitios multi-lenguajes?
58
+
* ¿Para qué son buenos los atributos `data-`?
50
59
* ¿Puede usar sintaxis de XHTML en HTML5?
51
60
* ¿Cómo usa XML en HTML5?
52
-
* ¿Para qué son buenos los atributos `data-`?
53
-
* ¿Cuáles son los modelos de contenido usados en HTML4? ¿Puede compararlos a los de HTML5?
54
-
* Si consideramos HTML5 como una plataforma web abierta, ¿cuáles son las piezas del lego que constituyen HTML5?
55
-
* Describa la diferencia entre cookies, sessionStorage y localStorage.
61
+
* Si consideramos HTML5 como una plataforma web abierta, ¿cuáles son los componentes que constituyen HTML5?
62
+
* Describa la diferencia entre `cookies`, `sessionStorage` y `localStorage`.
63
+
* Describa la diferencia entre `<script>`, `<script async>` y `<script defer>`.
64
+
* Generalmente, ¿por qué es una buena idea agregar la etiqueta `<link>` dentro de la etiqueta `<head>` y la etiqueta `<script>` justo antes de cerrar la etiqueta `<body>`. ¿Conoces algún caso excepcional?
65
+
* ¿Qué es el renderizado progresivo?
66
+
* ¿Haz usado algún motor para creado de plantillas HTML?
56
67
57
-
####<aname='css'>Preguntas específicas de CSS:</a>
58
68
59
-
* Describa qué es un archivo "reset" y por qué es útil.
69
+
#### <aname='css'>Preguntas específicas de CSS:</a>
70
+
71
+
* ¿Cuál es la diferencia entre clases e identificadores en CSS?
72
+
* ¿Cuál es la diferencia entre normalizar y anular el CSS?, ¿cuál usarías y por qué?
60
73
* Describa qué son los "floats" y su funcionamiento.
61
-
* ¿Cuáles son los métodos para "limpiar" (clear) sus "floats" y cuál es apropiado en el contexto dado?
74
+
* Describa el `z-index` y como se decide el contexto de apilado de elementos.
75
+
* Describa el contexto de formato de bloques (_BFC_) y como funciona.
76
+
* ¿Cuáles son las tecnicas para usar la propiedad `clear` y cuál funciona para cuál contexto?
62
77
* Explique ¿qué son los sprites en CSS y cómo los implementarias en una página?
63
78
* ¿Cuál es su técnica favorita para reemplazar imágenes y cuando usa cada una?
64
-
* ¿"CSS Hacks", archivos incluidos con etiquetas condicionales o algún otro metodo...?
79
+
* ¿Cómo intentaría resolver problemas de estilo para navegadores específicos?
65
80
* ¿Cuál es su enfoque al desarrollar páginas que dan soporte a navegadores con capacidades limitadas?
66
-
* ¿Qué técnicas o procesos usa?
81
+
* ¿Qué tecnicas o procesos usas?
67
82
* ¿Cuáles son las distintas formas para esconder contenido, pero mantenerlo disponible únicamente para lectores de pantalla?
68
83
* ¿Ha usado algún sistema para cuadrículas (grids) y cuál prefiere?
69
84
* ¿Ha usado o implementado "media queries" o reglas específicas para dispositivos móviles?
70
85
* ¿Está familiarizado con aplicar estilos a SVGs?
71
86
* ¿Cómo optimiza sus páginas para la impresión?
72
-
* ¿Cuáles son algunas de las "trampas" al escribir CSS eficiente?
73
-
*¿Ha usado algún preprocesador para CSS?
74
-
* De ser así, ¿puede mencionar qué le gusta y qué no de los que ha usado?
87
+
* ¿Cuáles son algunos de los "trucos" para escribir CSS eficiente?
88
+
*Menciona las ventajas y desventajas de usar preprocesadores de CSS
89
+
* Menciona lo que te agrada y desagrada de los preprocesadores que usas.
75
90
* ¿Cómo implementaría un diseño que usa fuentes que no son web-safe?
76
91
* ¿Puede explicar cómo determina un navegador qué elementos coinciden con un selector de CSS?
92
+
* Describa los pseudo-elementos y discuta sus usos.
77
93
* ¿Puede explicar cómo entiende el `box model` (modelo de cajas) y como podría hacer que un navegador renderize su esquema usando diferentes modelos de cajas?
94
+
* ¿Qué sucede al usar `* { box-sizing: border-box; }`. ¿Qué desventajas supone su uso?
78
95
* Por favor enliste todos los valores para la propiedad `display` que pueda recordar
79
96
* ¿Cuál es la diferencia entre `inline` y `inline-block`?
80
97
* ¿Cuál es la diferencia entre las posiciones `relative`, `fixed`, `absolute` y `static` para un elemento dado?
81
-
* ¿Qué sabe sobre Css Flexbox y cuales son sus ventajas?
98
+
* La *C* en CSS significa _cascading_ (en cascada). ¿Cómo se determina la prioridad al asignar los estilos? ¿Cómo podemos aprovechar ese sistema?
99
+
* ¿Cuáles frameworks de CSS has usado en desarrollo y producción? ¿Cómo los mejoraria?
100
+
* ¿Qué sabe sobre CSS Flexbox y cuáles son sus ventajas?
101
+
* ¿En que difiere el diseño responsivo del diseño adaptativo?
102
+
* ¿Haz trabajado con tecnología retina?, ¿qué tecnicas usaste?
103
+
* ¿Hay alguna razón por la cuál preferirias usar `translate()` en vez de el posicionamiento absoluto? ¿Algúna razón para hacer lo contrario?
104
+
105
+
82
106
83
-
####<aname='js'>Preguntas específicas de JavaScript:</a>
107
+
####<aname='js'>Preguntas específicas de JavaScript:</a>
84
108
85
-
* Explique "event delegation".
109
+
* Explique "_event delegation_".
86
110
* Explique cómo funciona `this` en JavaScript.
87
111
* Explique cómo funciona la herencia de prototipos (prototypal inheritance) en JavaScript.
88
-
* ¿Cómo realiza pruebas en JavaScript?
89
-
* AMD vs. CommonJS?
90
-
* ¿Qué bibliotecas de JavaScript ha usado?
91
-
* ¿Alguna vez ha mirado el código fuente de bibliotecas/frameworks que utiliza?
92
-
* ¿Qué es un `hashtable`?
93
-
* ¿Cuál es la diferencia entre variables `undefined` y variables `undeclared`?
94
-
* ¿Qué es un "closure" y cuando, o por qué usaría uno?
95
-
* ¿Cuál es su patrón favorito para crearlos? Cuadriculado (Solo aplica a las IIFEs)
112
+
* ¿Qué opina de AMD en comparación con CommonJS?
113
+
* Explique por qué `function foo(){ }();` no funciona como un IIFE.
114
+
* ¿Qué se necesita cambiar para que funcione como una IIFE?.
115
+
* ¿Cuál es la diferencia entre variables `null`, `undefined` y `undeclared`?
116
+
* ¿Cómo comprobarias que una variable refiere a algúno de esos valores?
117
+
* ¿Qué es un "_closure_" y cuando, o por qué usaría uno?
96
118
* ¿Puede hablar de un uso típico para una función anónima?
97
-
* ¿Puede explicar el Patrón Módulo en JavaScript y cuándo lo usaría?
98
-
* Puntos extra por mencionar un namespace no contaminado.
99
-
* ¿Qué pasa si sus módulos no tienen un namespace?
100
119
* ¿Cómo organiza su código, patrón módulo, herencia clásica?
101
120
* ¿Cuál es la diferencia entre objetos huésped (host objects) y objetos nativos?
102
-
* ¿Cuál es la diferencia entre:
103
-
` function Person(){} `, `var person = Person()` y `var person = new Person()`?
121
+
* ¿Cuál es la diferencia entre: ` function Person(){} `, `var person = Person()` y `var person = new Person()`?
104
122
* ¿Cuál es la diferencia entre `.call` y `.apply`?
105
123
* ¿Puede explicar el uso de `Function.prototype.bind`?
106
-
* ¿Cuándo optimiza su código?
107
-
* ¿Puede explicar cómo funciona la herencia en JavaScript?
108
124
* ¿Cuándo usarías `document.write()`?
109
-
* ¿Cuál es la diferencia entre detección de capacidades, inferencia de capacidades y usar la cadena del user agent.
125
+
* ¿Cuál es la diferencia entre detección de capacidades, inferencia de capacidades y usar la cadena del user agent?.
110
126
* Explique AJAX con tanto detalle como pueda.
111
127
* Explique cómo funciona JSONP (y cómo no es AJAX realmente)
112
128
* ¿Ha utilizado alguna vez templates en JavaScript?
113
129
* De ser asi, ¿qué bibliotecas ha usado?
114
-
* ¿Puede explicar en que consiste el "hoisting"?
115
-
* ¿Puede hablar sobre "event bubbling"?
116
-
* ¿Cuál es la diferencia entre un "atributo" y una "propiedad"?
130
+
* ¿Puede explicar en que consiste el "_hoisting_"?
131
+
* ¿Puede hablar sobre "_event bubbling_"?
132
+
* ¿Cuál es la diferencia entre un "_atributo_" y una "_propiedad_"?
117
133
* ¿Por qué es una mala idea extender objetos nativos de JavaScript?
118
-
* ¿Por qué es una buena idea extender objetos nativos de JavaScript?
119
-
* ¿Cuál es la diferencia entre el evento "document load" y el evento “document ready"?
134
+
* ¿Cuál es la diferencia entre el evento "_document load_" y el evento “_document ready_"?
120
135
* ¿Cuál es la diferencia entre `==` y `===`?
121
-
* Si tiene que obtener un parametro de la URL, ¿cómo lo harías?
122
136
* Explique la política de mismo origen (same-origin policy) y sus repercusiones en JavaScript.
123
-
* ¿Puede describir los patrones de herencia en JavaScript?
* ¿Puede describir una estrategia para memorización (*memoization*, evitar repetir cálculos) en JavaScript?
129
-
* ¿Por qué reciben el nombre de sentencias ternarias? ¿Qué significa la palabra "ternaria"?
130
-
* Haga un ciclo `for` de `100` iteraciones que imprima **"fizz"** en los múltiplos de `3`, **"buzz"** en los múltiplos de 5 y **"fizzbuzz"** en los múltiplos de `3` y `5`
131
-
* De manera general, ¿por qué es una buena idea no usar el "ámbito" (scope) global de un sitio web?
132
-
* ¿Qué es el `arity` de una función?
141
+
* ¿Por qué reciben el nombre de sentencias ternarias? ¿Qué significa la palabra "_ternaria_"?
133
142
* ¿Qué es `"use strict";`? ¿Cuáles son las ventajas y desventajas de usarlo?
143
+
* Haga un ciclo `for` de `100` iteraciones que imprima **"fizz"** en los múltiplos de `3`, **"buzz"** en los múltiplos de `5` y **"fizzbuzz"** en los múltiplos de `3` y `5`
144
+
* De manera general, ¿por qué es una buena idea no usar el "ámbito" (scope) global de un sitio web?
145
+
* ¿Por qué usaría el evento `load`?, ¿usarlo representa alguna ventaja?, ¿conoce alternativas y el por qué usaría dichas alternativas?
146
+
* Explique en qué consiste una aplicación de una sola página y como hacer una que bajo los terminos del posicionamiento en los buscadores.
147
+
* ¿Qué tanto sabes acerca de las promesas en javascript? ¿Cónoce alternativas a ellas?
148
+
* Mencione las ventajas y desventajas de usar promesas en vez de callbacks.
149
+
* Menciona las ventajas y desventajas de escribir Javascript a través de otro lenguaje que compile y su resultado sea Javascript.
150
+
* ¿Qué herramientas y tecnias usa para depurar código Javascript?
151
+
* ¿Qué código utiliza para iterar sobre propiedades de un objeto y sobre arreglos?
152
+
* Explique la diferencia entre objetos mutables y objetos inmutables.
153
+
* Mencione un ejemplo de un objeto inmutable en javascript.
154
+
* Mencione las ventajas y desventajas de la inmutabilidad.
155
+
* ¿Cómo puede usar la inmutabilidad en su código?
156
+
* Explique la diferencia entre funciones sincronas y asincronas.
157
+
* ¿Qué es el `event loop`?
158
+
* ¿Cuál es la diferencia entre la pila de llamadas y la cola de tareas?
159
+
160
+
#### <aname='codigojs'>Preguntas sobre pruebas de código:</a>
161
+
162
+
* Menciona ventajas y desventajas de realizar pruebas en el código
163
+
* ¿Qué herramientas usarías para probar la funcionalidad de tu código?
164
+
* ¿Cuál es la diferencia entre una prueba unitaria y una prueba de funcionalidad?
165
+
* ¿Cuál es el proposito de usar herramientas para verificar los estilos usados en el código?
166
+
167
+
#### <aname='performance'>Preguntas sobre rendimiento:</a>
168
+
169
+
* ¿Qué herramientas usarías para detectar un error en el rendimiento de tu código?
170
+
* ¿De qué formas podrías mejorar el rendimiento del scrolling en tu sitio web?
171
+
* Menciona las diferencias entre los terminos `layout`, `painting` y `compositing`.
134
172
135
-
####<aname='codigojs'>Preguntas de código:</a>
173
+
####<aname='network'>Preguntas sobre conectividad:</a>
136
174
137
-
Pregunta: ¿Cuál es el resultado de la siguiente sentencia?
175
+
* Tradicionalmente, ¿Por qué es mejor servir los recursos estaticos del sitio desde multiples dominios?
176
+
* Intenta explicar el proceso desde el momento en el cual ingresas una URL en el navegador hasta que termina de cargar la página en tu pantalla.
177
+
* ¿Cuáles son las diferencias entre `Long-polling`, `websockets` y `server-sent events`?
178
+
* Explique las siguientes cabeceras de respuesta y envio.
179
+
*`Expires`, `Date`, `Age` y `If-Modified-`
180
+
*`Do Not Track`
181
+
*`Cache-Control`
182
+
*`Transfer-Encoding`
183
+
*`Etag`
184
+
*`X-Frame-Options`
185
+
* ¿Qué son las acciones `HTTP`, explique las acciones HTTP que conozca.
186
+
187
+
#### <aname='codigojs'>Preguntas de código:</a>
188
+
189
+
190
+
_Pregunta: ¿Cuál es el valor de `foo`?_
191
+
```javascript
192
+
var foo =10+'20';
193
+
```
194
+
195
+
_Pregunta: ¿Cómo harías funcionar esto?_
138
196
```javascript
139
-
~~3.14
197
+
add(2, 5); // 7
198
+
add(2)(5); // 7
140
199
```
141
200
142
-
Pregunta: ¿Cuál es el resultado de la siguiente sentencia?
201
+
_Pregunta: ¿Cuál es el resultado de la siguiente sentencia?_
143
202
```javascript
144
203
"i'm a lasagna hog".split("").reverse().join("");
145
204
```
146
205
147
-
Pregunta: ¿Cuál es el valor de **window.foo**?
206
+
_Pregunta: ¿Cuál es el valor de `window.foo`?_
148
207
```javascript
149
208
( window.foo|| ( window.foo="bar" ) );
150
209
```
151
210
152
-
Pregunta: ¿Cuál es el resultado de los dos *alerts*?
211
+
_Pregunta: ¿Cuál es el resultado de los dos *alerts*?_
* ¿Qué es lo más genial que ha programado y qué es lo que más le enorgullece de ello?
172
247
* ¿Cuáles son sus partes favoritas de las herramientas de desarrollo que usa?
173
248
* ¿Tiene algún proyecto personal? ¿De qué tipo?
174
249
* ¿Cuál es su funcionalidad favorita de Internet Explorer?
250
+
* ¿Cómo te gusta tu café?
175
251
176
252
177
-
####<aname='contribuyentes'>Contribuyentes</a>
253
+
####<aname='contribuyentes'>Contribuyentes</a>
178
254
179
255
Este documento se creó en 2009 como una colaboración de [@paul_irish](http://twitter.com/paul_irish)[@bentruyman](http://twitter.com/bentruyman)[@cowboy](http://twitter.com/cowboy)[@ajpiano](http://twitter.com/ajpiano)[@SlexAxton](http://twitter.com/slexaxton)[@boazsender](http://twitter.com/boazsender)[@miketaylr](http://twitter.com/miketaylr)[@vladikoff](http://twitter.com/vladikoff)[@gf3](http://twitter.com/gf3)[@jon_neal](http://twitter.com/jon_neal)[@sambreed](http://twitter.com/sambreed) y [@iansym](http://twitter.com/iansym).
0 commit comments