Una guía sobre los procesos actuales en entrevistas de código
Gabriel Miranda
coding
cooking
making music
drawing
Entrevistas de programación y lógica algorítmica
Desarrolladores de cualquier nivel
En editor o pizarra
A desarrollar con una fecha límite
Que se contesten todos los interrogantes de la manera más correcta y performante a la primera
Conocer las capacidades de razonamiento y resolución de problemas del entrevistadx.
Complejidad espacio-temporal
var arr = ['pepa', 'juana', 'maría'];
var arr = ['pepa', 'juana', 'maría'];
var arr = [
'pepa',
'juana',
'maría',
...
];
function calcularDecimalDePi(n) { ... }
calcularDecimalDePi(3)
function calcularDecimalDePi(n) { ... }
calcularDecimalDePi(837456923874)
while (true) {
console.log('😱');
}
Forma de representar la complejidad de una función
var arr = ['pepa', 'juana', 'maría'];
function findIndex(myArr, index) {
var result;
for (var i = 0; i < myArr.length; i++) {
if (i === index) {
result = myArr[i];
}
}
return result;
}
var arr = ['pepa', 'juana', 'maría'];
function findIndex(myArr, index) {
return myArr[index];
}
Cracking the code interview ftw
Cracking the code interview ftw
codility, hackerrank, topcoder, coding game
compañerxs de trabajo, conocidxs, mentores
pizarra, pizarrón, tabletas digitalizadoras
Primera regla, pedí definición, pensá casos extraños, llevalo hasta lo más recóndito de la entrevista y reventalo a preguntas.
Segunda regla, jamás digas "no puedo", "nunca lo hice". Intentalo, es mejor que quedarse de brazos cruzados.
Para mí es una tercera regla, aunque es bastante complicada. Tratá de pensar en voz alta, ayuda mucho al entrevistador a darse cuenta que estás pensando una solución y como pensas.
¿Cómo asegurarse que tus respuestas son correctas?
function plusTwo(n) {
return n + 2;
}
if (plusTwo(2) === 4) {
console.log('Test passed!');
} else {
console.log('Test failed!');
}
Múltiples soluciones, múltiples pasos.
Las primeras respuestas casi nunca son las más correctas, pero sin importar eso, es bueno dar la primer respuesta rápido. A problemas simples, soluciones simples.
class ValueTracker {
values = [];
addValue(n) {
this.values.push(n);
}
getMean() {
var sum = 0;
for (var i = 0; i < this.values.length; i++) {
sum += this.values[i];
}
return sum / this.values.length;
}
}
class ValueTracker {
sum = 0;
quantity = 0;
addValue(n) {
this.sum += n;
this.quantity++;
}
getMean() {
return sum / quantity;
}
}
Desmitificando las respuestas incorrectas. ¿Qué hacer en caso de enfrentarse a esta situación?