Algunos dicen que después de haber trabajado como desarrollador durante 2 años más o menos, debería poder pasar a un nuevo trabajo sin preguntas de algoritmos, ¿verdad?

Al escribir estas líneas, las preguntas sobre algoritmos son muy estándar en las entrevistas para desarrolladores. Si no desea responder esas preguntas, probablemente pueda encontrar un trabajo en algún lugar, pero sus opciones serán limitadas.

Es imposible dar una respuesta objetiva u objetiva sobre si este debería ser el caso, pero puedo decirle algunas cosas que son ciertas:

  • Las preguntas sobre algoritmos son una de las únicas herramientas que tiene para evaluar candidatos de nivel de entrada. Estas personas realmente no tienen ninguna experiencia para diferenciarse, por lo que los cursos son prácticamente la única forma de compararlos.
  • Las empresas como Google y Facebook necesitan personas que sepan cómo realizar cálculos eficientes en big data, por lo que las preguntas sobre algoritmos probablemente tengan sentido para ellos.
  • Las empresas como Google y Facebook también pueden ver a casi todos los candidatos en el mercado, por lo que pueden permitirse el lujo de pasar por alto a cualquier buen candidato sin lastimarse demasiado.
  • A medida que los desarrolladores se vuelven más experimentados, el valor que aportan a un puesto se aleja de las habilidades de codificación pura y se traslada a sus otras experiencias. Alguien con diez años de trabajo de desarrollo debe saber cómo administrar un proyecto, cómo dirigir un pequeño equipo de desarrolladores junior, cómo traducir los requisitos del negocio en declaraciones precisas, cómo elegir entre marcos, cómo negociar el alcance de un proyecto y Otras cosas que son difíciles de poner en la pizarra.
  • La gran mayoría de los trabajos de desarrollo no requieren un alto grado de habilidad técnica. Una cantidad significativa del código que se escribe es colocar una GUI encima de una base de datos que es utilizada por un número bastante pequeño de personas.
  • Si no usas una habilidad con bastante regularidad, la olvidarás bastante rápido. Las personas que programan durante diez años sin seleccionar o implementar algoritmos estarán un poco oxidadas.

En general, esto me sugiere que la forma en que hacemos entrevistas para desarrolladores experimentados no es la correcta. Sospecho que nadie realmente piensa mucho en su proceso de entrevista y que simplemente copian lo que Google y Facebook están haciendo sin pensar en cómo sus propias situaciones son diferentes. Sin embargo, en cualquier mundo posible, dos años no es tanta experiencia, así que no estoy seguro de si el cuerpo de trabajo de tal desarrollador debería ser suficiente.

He estado trabajando en computación de alto rendimiento toda mi vida, y he estado entrevistando candidatos durante muchos años.

[Descargo de responsabilidad: esta respuesta es representativa de mi experiencia en el campo de HPC y podría no describir la mediana de los requisitos en el mercado laboral para desarrolladores en ningún momento. Su experiencia puede ser diferente.]

En mi línea de trabajo, siempre hacemos preguntas sobre algoritmos y arquitectura de computadora de posibles desarrolladores, y probablemente sean las preguntas que más pesan en una entrevista.

Como entrevistador, su “cuerpo de trabajo” podría impresionarme, pero solo hasta cierto punto, principalmente por tres razones:

  1. se realizó en otro empleador; no tengo forma de verificar sus reclamos directamente. Por lo general, si me proporcionó una lista de referencias que puedo contactar, la lista se detiene justo antes de su empleador actual;
  2. aun suponiendo que usted haya representado su trabajo con sinceridad, no tengo forma de determinar la calidad del resultado;
  3. Incluso suponiendo que el trabajo fue técnicamente difícil y su resultado de alta calidad, no tengo forma de determinar su contribución personal en comparación con la del resto de su equipo.

Las preguntas sobre algoritmos, por otro lado, me dicen si puede pensar de pie sin ayuda y si ha internalizado el lenguaje y los conceptos necesarios para realizar su trabajo con éxito. Además de eso, debido a que tiene que explicar sus elecciones verbalmente, tengo la oportunidad de evaluar su capacidad para explicar y comunicarse de manera clara y concisa, lo cual también es una habilidad fundamental.

Su aparente deseo de evitar estas preguntas me parece bastante sospechoso, y podría indicar una falta de curiosidad o una brecha en su educación. Si no te gustan los algoritmos y quieres trabajar como desarrollador, temo que hayas elegido la carrera equivocada. Si, por otro lado, tiene un miedo “saludable” a las entrevistas, tengo buenas noticias para usted: puede aprender mucho, arreglar sus áreas débiles y practicar las entrevistas.

Sus colegas que le dijeron que rechazaron preguntas durante una entrevista no están diciendo la verdad, ni sobre lo que hicieron ni sobre el resultado de su entrevista.