Coding interviews
Una guía sobre los procesos actuales en entrevistas de código



Gabriel Miranda




coding
cooking
making music
drawing
¿Por qué entrevistas de código?
¿Qué orientación tiene la charla?
A nivel entrevista
Entrevistas de programación y lógica algorítmica
A nivel entrevistadx
Desarrolladores de cualquier nivel
Tipos de entrevista
Live coding
En editor o pizarra
Project coding
A desarrollar con una fecha límite
¿Qué espera el/la entrevistador/a?
Ideal
Que se contesten todos los interrogantes de la manera más correcta y performante a la primera
Real / Común
Conocer las capacidades de razonamiento y resolución de problemas del entrevistadx.
¿Prepararme o no?
Short answer. Yes.
Preparación
Elección del lenguaje
Uso de memoria y procesamiento
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('😱');
}
Big-O notation
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];
}
Estructuras de datos
- Strings & Arrays
- Hashmaps
- Linked lists
- Stacks & Queues
- Trees & Graphs
Cracking the code interview ftw
Algoritmos
- OOP
- Recursion
- Binary search
- Sorting and search
- Functional
Cracking the code interview ftw
Práctica
Websites
codility, hackerrank, topcoder, coding game
Real people
compañerxs de trabajo, conocidxs, mentores
Board
pizarra, pizarrón, tabletas digitalizadoras
Durante la entrevista
Ask, ask, ask
Primera regla, pedí definición, pensá casos extraños, llevalo hasta lo más recóndito de la entrevista y reventalo a preguntas.
Try, try, try.
Segunda regla, jamás digas "no puedo", "nunca lo hice". Intentalo, es mejor que quedarse de brazos cruzados.
Think out loud
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.
Test, test, test.
¿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!');
}
Resolución de problemas
Múltiples soluciones, múltiples pasos.
Fast answers
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;
}
}
Respuestas incorrectas
Desmitificando las respuestas incorrectas. ¿Qué hacer en caso de enfrentarse a esta situación?
Be enthusiastic, be confident
Almost there.
¡Gracias a todxs!
Coding interviews
By Gabriel Miranda
Coding interviews
- 420