No se permite usar google durante la prueba de programación

Tengo una prueba de programación en línea para un puesto de consultor de análisis de nivel de entrada. Siempre he consultado el código o la documentación en línea durante la programación, pero en la prueba no se me permite hacerlo. Ahora no sé cuál es el punto de probar la memoria si puedo codificar con la ayuda de Google.

¿De qué sirve tener pruebas de programación supervisadas si se puede hacer bien con la ayuda de documentación o fragmentos de código en línea? ¿Es justo probar así? ¿Cómo puedo transmitir que puedo codificar bien, solo que no soy bueno para recordar todas las cosas para no tener que buscar en línea?

Podría entender si se tratara de una prueba de programación básica, pero es una prueba de programación de nivel moderado a difícil que, en la vida real, incluso un profesional experimentado necesitaría ayuda de la documentación o de Google.

Tenga en cuenta que la prueba se realizará en la plataforma hackerrank y no estoy seguro de si la lógica o la implementación importarán si no paso todos los casos de prueba.

Actualizar:

Antes del comienzo de la prueba, tiene una casilla de verificación con la nota: "No consultaré/copiaré código de ninguna fuente, incluido un sitio web, un libro o un amigo/colega para completar estas pruebas, aunque puedo hacer referencia a la documentación del idioma o usar un IDE que tiene características de finalización de código".

¿Cómo usaría el IDE o la documentación si no se me permite escapar de la pantalla completa? ¿Debo preguntar explícitamente qué está permitido y qué no está permitido?

¿Podría dar más información sobre la prueba? Tengo dudas de que la prueba sea realmente de "nivel moderado a difícil" para una entrevista sin google.

Respuestas (11)

¿Es justo probar así?

¿Es sensato? No sé.

¿Es justo? Sí, es justo. Si a los demás se les pide que hagan lo mismo. Es justo.

Después de todo, el objetivo de un examen no es necesariamente aprobarlo. Es comparar tu desempeño con el desempeño de los demás. En ese sentido, es justo.

Si alguien solía codificar con Google y alguien puede recordar todo, este tipo de pruebas no son justas. Ponen a prueba más la capacidad de recordar muchas cosas que las habilidades de programación. – Andrei Suvorkov

Eso no es exactamente cierto. No solo ponen a prueba la memoria del candidato. También prueban la capacidad del candidato para hacer preguntas al entrevistador.

Además, la habilidad de programación es en parte recordar muchas cosas. Los mejores programadores, los que tienen mucha experiencia reciente, recordarán más. Así son las cosas.

Es como con el ajedrez. Los mejores jugadores de ajedrez recordarán las posiciones del tablero mucho mejor que un principiante completo.

Cuanto más practicas en algo. Mejor te vuelves en organizar y agrupar esa información en tu memoria. Además, cuanto más practiques algo, parte de ello puede incluso llegar a tu memoria muscular.

En cualquier caso, te sugiero que practiques usando la técnica de repetición espaciada . Cuanto menos tenga que depender de Google para cada pequeña pregunta de sintaxis (especialmente de sintaxis básica), más eficiente será como programador.

Ahí es realmente donde debes poner tu esfuerzo porque realmente no vas a hacerlos cambiar de opinión. O la otra alternativa es entrevistarse con otras empresas que son menos estrictas en sus entrevistas técnicas.

Y el día de la prueba, el punto es no ponerse nervioso. Use nombres de funciones inventados o pseudocódigo si es necesario. Solo dile al entrevistador lo que estás haciendo. No tenga miedo de decir que no sabe algo y de hacer preguntas cuando lo necesite.

Y si necesita practicar entrevistas en tiempo real, le sugiero que pruebe estos: http://pramp.com/ y http://interviewing.io

Si alguien solía codificar con Google y alguien puede recordar todo, este tipo de pruebas no son justas. Ponen a prueba más la capacidad de recordar muchas cosas que las habilidades de programación.
@AndreiSuvorkov, es posible que esas pruebas no busquen errores tipográficos, por lo que una asignación incorrecta o una variable mal escrita hacen que falle ...
@AndreiSuvorkov dice que se supone que debes calcular el valor medio de una matriz foo. Aquellos que 'simplemente recuerdan todo' deben saber casi toda la documentación de MATLAB para escribir mean(foo,'all'). Aquellos que simplemente olvidaron que tal comando existe pueden escribir sum(foo(:))/numel(foo)o una función basada en funciones aún más primitivas.
Tuve que entrar y limpiar demasiado código espagueti que se originó a partir de una búsqueda en Google.
Tangencialmente al punto de Richard, si copia el código de una búsqueda en Google, no se robe la oportunidad de aprender. Mantenga un diario donde describa los conceptos principales del código que está copiando (usando sus propias palabras/dibujos). Y escriba ese código usted mismo, puede usar autocompletar, pero no use cortar y pegar. Eso es para tu memoria muscular. En una nota al margen, para la técnica de repetición espaciada que ya mencioné, resista también la tentación de usar las tarjetas Anki de otras personas. Tus propias tarjetas Anki serán una mierda al principio, pero mejorarán cuanto más trabajes en ellas.
Como alguien que ha usado más de 10 idiomas en el mismo día/semana, me resulta difícil recordar cómo usar los métodos más usados, como el reemplazo de cadenas, aunque tengo más de 7 años de experiencia profesional y más de 25 años de experiencia total en programación. Estas pruebas están dirigidas a especialistas en algunos idiomas/marcos/bibliotecas, mientras que he usado más de 35 y no siempre puedo recordar qué idioma necesita qué parámetros o formato para todo.
@computercarguy, estoy completamente de acuerdo. Este tipo de prueba no debe utilizarse para todos los puestos de desarrollador. Pero desafortunadamente, cuando usa 10 idiomas diferentes a diario, aún le conviene mantener al menos un idioma que conozca bien (incluso si cambia de un año a otro), en caso de que necesite conseguir un trabajo en otro lugar en algún momento.
@StephanBranczyk, bueno, como desarrollador web, usé 3-5 diarios solo para ese trabajo, otros 3-5 idiomas para mi propio sitio web en casa, Android usa otros 2 idiomas y Arduino usa otro, y algunos de esos se superponen . Tienes razón acerca de tener un "interés principal", pero es muy fácil expandirse cuando haces algo más que tu trabajo diario. Y por lo general la súper especialización es un detrimento, IME. Cambiar su idioma principal cada año no le dará la prueba de especialización/memorización como esta busca.
@StephanBranczyk +1 Mi abuelo, un maestro RIP, solía hacernos buscar cualquier palabra desconocida en el diccionario de papel y escribir una oración original usando esa palabra. Copiar/pegar ahorra tiempo, pero es una mierda para aprender.
@computercarguy Es mejor que las personas que intentan conseguir un trabajo elijan un idioma "favorito" para usar en las pruebas, mientras que es mejor que los desarrolladores establecidos se mantengan al día con más idiomas para mantenerse adaptables. Diferentes prioridades para diferentes etapas de la carrera.
@MandisaW, como "desarrollador establecido", tengo que buscar un nuevo trabajo con más frecuencia de lo que me gustaría, y si no busco trabajo en una variedad de idiomas, las opciones son escasas. Si en lugar de solo buscar trabajos de C#, incluyo Java, PHP, JavaScript e incluso C/C++, tengo muchas más posibilidades de obtener una entrevista, y mucho menos un trabajo, incluso si mi C/C++ está oxidado. Siempre puedo retomarlo, pero una prueba de libro cerrado no mostrará mis habilidades de programación, y es probable que hacer la prueba en PHP no muestre lo que puedo hacer para la programación de Arduino en C++.
"Es como con el ajedrez". Realmente no lo es. Los lenguajes y frameworks hoy en día están diseñados para usarse junto con todas las herramientas disponibles para un desarrollador. Si conoce a un programador de C++ que no busca alguna referencia de vez en cuando, puede estar seguro de que hay errores en alguna parte.
@computercarguy Estoy de acuerdo con "nunca dejar de aprender" y "aplicar a todos los trabajos". Pero aún así, debe haber al menos un idioma/contexto con el que sea más inteligente y esté más actualizado (puede cambiar con el tiempo, por supuesto). Demostrar que eres un desarrollador sólido y bien informado es clave, y eso debería llegar a los entrevistadores independientemente de los errores menores de sintaxis.
@MandisaW, en un mundo perfecto, sí, tendrías razón. Desafortunadamente, ese no es siempre el caso. Y con un sistema de prueba en línea que usa casos de prueba para verificar que su código obtenga los resultados correctos, los errores menores de sintaxis evitarán que el código funcione, por lo que no obtendrá crédito por el trabajo en la prueba. He tomado pruebas en línea como esa antes y pasé demasiado tiempo tratando de hacer funcionar la sintaxis que no terminé la prueba del libro cerrado. No puedo decirte lo frustrante que es. El software le dice que puede detectar cambios de pestañas/desenfoques de ventanas, por lo que no se tolera hacer trampa.
@computercarguy, que a menudo falla porque muchas personas tienen más de una computadora, especialmente las personas de TI. Cuando tenía que lidiar con tales restricciones, buscaba cosas en mi computadora portátil o tableta.
@AndrewDavie, Y eso funciona bien en una entrevista de selección, pero luego vuelven a hacer otra prueba en la entrevista en persona.
@AndrewDavie, entonces, ¿está bien hacer trampa si realmente lo necesitas? Supongo que eso se reduce a la moral, entonces. Sí, una persona puede usar su teléfono o lo que sea, pero eso sigue siendo trampa. Y si te vuelven a evaluar con un problema similar más tarde, es posible que lo tengas fresco en la mente o no. Si no puede repetir su éxito, saben que no lo hizo por su cuenta.

Parafraseando la entrevista de Cracking the Coding: la mayoría de las empresas son conscientes de que sus pruebas darán como resultado algunos falsos negativos. Particularmente en las compañías de renombre que obtienen cientos y cientos de solicitantes, están bien con eso. Lo que quieren evitar más que nada son los falsos positivos. Un falso positivo significa que están desperdiciando su dinero en alguien que no va a ayudar, que potencialmente puede introducir más errores en la base de código que un candidato calificado y que, en última instancia, le cuesta a la empresa más de lo que aporta.

En resumen: tienes toda la razón. Este no es un escenario del mundo real y lo está poniendo a prueba más allá de lo que debería esperarse, especialmente de un candidato junior. Pero esa no es realmente su preocupación, su preocupación es asegurarse de que obtengan al mejor candidato con menos probabilidades de cometer errores.

editar: Aquí hay un escenario propuesto. Tenemos tres empresas con participaciones y reputaciones idénticas en el mercado. Todos se ven como perspectivas laborales muy atractivas. Se aplica exactamente el mismo grupo de 10.000 candidatos a cada empresa.

De los 10.000 candidatos, 100 de ellos son candidatos calificados y excelentes. 9.900 de ellos no son aptos para el puesto y podrían dañar la infraestructura de la empresa.

La empresa A decide que es fundamental que analice a todos los candidatos y elija solo los que desee. En la ronda 1 de entrevistas, usan una prueba básica de FizzBuzz y eliminan 5000 de inmediato. En la segunda ronda, envían una pregunta de entrevista que tiene aproximadamente el nivel de dificultad que esperan para el trabajo y la reducen a alrededor de 300 candidatos. Realizan entrevistas en persona para los últimos 300 candidatos y las reducen a los 100 candidatos calificados. Comparan a esos candidatos entre sí y seleccionan su favorito.

La empresa B decide que en realidad solo se preocupan por dos cosas: contratar rápidamente y conseguir un candidato calificado. Envían una prueba impersonal de FizzBuzz completa por correo electrónico para completar por correo electrónico, y eliminan a las mismas 5000 personas que no sabían lo que estaban haciendo. La segunda ronda de entrevistas requiere operadores bit a bit, bit shifting y todo tipo de preguntas de nicho, solo para entrevistas, con las que el 99,999 % de las personas en este rol nunca tendrían que lidiar. Esto reduce su búsqueda a 23 candidatos. La empresa B confía en que cualquiera de los 23 candidatos hará bien el trabajo. Pueden entrevistarlos individualmente para encontrar una buena personalidad y luego pasar al trabajo real.

La empresa C simplemente envía un cuestionario básico de FizzBuzz y tiene 5000 candidatos que deciden que encajan bien (muchos falsos positivos). Seleccionan uno al azar, porque el tiempo es dinero, ¡maldita sea! ¡Estoy seguro de que todos pueden hacer el trabajo! Después del proceso completo de incorporación, la configuración de los beneficios, etc., se dan cuenta de que su candidato solo buscó en Google la respuesta al cuestionario de FizzBuzz y no sabe nada sobre las funciones relevantes del trabajo.

Las empresas A y B eventualmente pueden llegar al mismo punto final de seleccionar un solo candidato calificado, pero la empresa B lo ha hecho en mucho menos tiempo y con un costo de mano de obra significativamente menor para buscar candidatos. Sí, expulsaron a algunas personas injustamente, pero especialmente para algo de nivel bajo o medio, no necesitan un desarrollador brillante. Solo necesitan un desarrollador, alguien que pueda desempeñarse tan bien como cualquier otro.

Cuando llegue el final del año y las empresas A, B y C tengan que comparar entre sí, si todo lo demás es igual, la empresa B habrá retenido más dinero y tendrá más tiempo y energía para dedicar a los proyectos que la empresa A. La empresa C, que seleccionó un falso positivo, ahora tiene que volver al proceso de contratación, habiendo perdido tanto dinero como tiempo. Tiene sentido desde el punto de vista comercial eliminar a los candidatos con una preocupación mínima por los falsos negativos, siempre y cuando pueda conservar una cantidad razonable de verdaderos positivos.

El tema de los falsos positivos > más 1.
sí, el riesgo asociado con contratar a alguien que no deberías es mucho mayor que el riesgo asociado con no contratar a alguien que deberías.
Pero esta prueba parece no estar relacionada con si la persona será positiva o negativa, ya que en realidad no está relacionada con el trabajo diario. Si los positivos y los negativos fallan esta prueba al mismo ritmo, no ayuda en absoluto en la selección; también podría tirar una moneda para ver quién llega a la segunda entrevista. No veo por qué querrías una prueba en la que todos los negativos fallaran y muchos positivos fallaran, cuando podrías diseñar una prueba en la que todos los negativos fallaran y solo algunos positivos fallaran. ¿Por qué esta prueba en particular es mejor para eliminar los negativos que un examen más práctico?
@NuclearWang porque esta ES una prueba en la que todos los negativos fallan y algunos positivos fallan. Si está dispuesto a hacer el esfuerzo necesario para estar preparado para una entrevista tan absurda, entonces están bastante seguros de que encajará. Míralo de esta manera. Tengo 10.000 solicitantes. De esos 10,000, 100 harán el trabajo casi igual de bien y 9900 fallarán. Si los 100 hacen el trabajo igualmente bien, no me importa si mi prueba falla en 75 de ellos; Solo necesito encontrar 1 de esos 100, y este proceso ahorra tiempo y dinero.
+1: Mi cuñado trabaja en Google y ha dicho lo mismo muchas veces. La única prioridad es mantener fuera a las personas malas, siempre habrá más personas buenas solicitando este tipo de puestos, por lo que rechazar a un gran candidato que tuvo un mal día o una expectativa ligeramente diferente no perjudica en absoluto a la empresa.

Esta prueba está bien. No quieren poner a prueba tu habilidad para buscar en internet sobre las cosas. Quieren poner a prueba tu forma de pensar. Porque programar es entender los requisitos e implementar algoritmos (en mi humilde opinión).

Los errores en la fuente se pueden corregir más tarde, pero si no puede pensar como programador, (probablemente) no es aplicable para esta posición.

Incluso si recuerda algunas estructuras, códigos, esto no le ayudará mucho si no puede entender las cosas.

Y si todos los candidatos son probados bajo las mismas reglas, sí, la prueba es justa. Es otra historia si esta es una buena prueba (y buena para quién).

No quieren poner a prueba tu habilidad para buscar en internet sobre las cosas. - Bueno, yo diría que esta habilidad también es esencial en nuestro trabajo.
Pero la plataforma de prueba es hackerrank y supongo que la marcan en función de si los casos de prueba pasan o no en función de la lógica o la implementación.
@AndreiSuvorkov, sí, es importante. Pero no tanto como pensar :)
@Stupid_Intern, no conozco esta plataforma. Y mi respuesta es la forma en que veo el caso.
@RomeoNinov su punto es claro. Pero como entendí, los solicitantes deben enviar su código a Hackerrank y allí el código será verificado por una máquina. No importa cómo esté pensando, solo si pasó todas las pruebas o no. Más tarde, probablemente el ser humano investigará el envío (exitoso), pero quién sabe...
¿Cómo prueba la capacidad de recordar los nombres y las interfaces de cientos de funciones y otros elementos en las bibliotecas de varios idiomas para evaluar la forma de pensar de un candidato?
@RosieF, como ya mencioné en el comentario, no conozco esta plataforma específica. Pero utilicé un enfoque similar cuando realicé entrevistas y me mostró mucho sobre las características de la persona.
@Stupid_Intern Entonces, ¿cómo filtras a alguien que busca en Google las soluciones exactas de la prueba? Googlear no es malo; pero no deberías depender completamente de él. Si no puede encontrar una solución a un problema de juguete con un compilador a la mano sin Google, probablemente no querría contratarlo. No tengo forma de vislumbrar su capacidad de programación (en todo caso, muestra que tiene problemas). Las bibliotecas y los marcos están bien, pero también debería poder usar construcciones más simples para resolver el problema si es necesario; si no recuerda la clase correcta para usar, simplemente escriba la suya.
@Luaan Creo que, como mínimo, el terminal debería poder consultar el manual o la ayuda para la sintaxis o el ejemplo de uso.
@Stupid_Intern Claro. Pero si necesita ayuda con la sintaxis, sería cauteloso: a menos que se vea obligado a usar un lenguaje de programación con el que no se sienta cómodo, realmente debería tener toda la sintaxis útil en cuclillas. Si no puede escribir un algoritmo (es decir, no cosas como enviar solicitudes HTTP, etc., que se basan en métodos de biblioteca) sin ayuda, eso es un problema. Personalmente, no me importa si lo escribe en C, Java o Perl, independientemente de lo que realmente necesite el trabajo; pero si no puedes hacerlo en ningún idioma, eso es malo.

Debo enfatizar que no soy un fanático de las pruebas en este tipo de condiciones, no son una prueba particularmente buena de la capacidad real de un candidato, ya que es bastante raro no poder hacer referencia a Google o recursos similares mientras se lleva a cabo. trabajo de verdad.

Dicho esto, no significa necesariamente que la prueba sea injusta : si todos los candidatos están sujetos a las mismas condiciones de prueba, entonces es justo. Si desea el trabajo, debe tomar la prueba lo mejor que pueda, al igual que todos los demás. Si quieren contratar a alguien con buena memoria para este tipo de conocimiento, supongo que esa es su prerrogativa. Así como eres libre de no trabajar en algún lugar si no te gustan sus prácticas de contratación.

He visto candidatos pasar la prueba, pero entrar en el mundo real y no ser capaces de salir de una bolsa de papel mojada...
@MisterPositive Eso es más culpa de confiar demasiado en las pruebas (y la preparación para las pruebas) en lugar de una entrevista exhaustiva.
@MisterPositive ¿Cómo explican esas personas por qué les va tan mal "en el mundo real"? ¿Quizás la prueba no estaba probando las habilidades que debería haber probado?
@RosieF Al ver a muchos candidatos buscar en Google la pregunta exacta de la prueba en una entrevista en vivo por Skype , no me sorprende. Las pruebas generalmente tienen que hacer una estimación rápida de cuánto trabajo de programación real ha realizado el candidato. Puede saber rápidamente si alguien estaba trabajando, por ejemplo, con bucles de mensajes de Windows o AJAX a través de una pregunta. La misma pregunta a menudo se puede responder fácilmente con una búsqueda rápida en Google; pero eso lo hace completamente inútil para el propósito previsto: no está viendo si el candidato puede resolver este problema en particular, solo cómo abordaría un problema similar.

¿Es justo probar así?

Con cualquier parte de una entrevista; es perfectamente justo siempre y cuando no te escojan. Cualquier cosa que una empresa piense que le dará la información necesaria para tomar una decisión de contratación informada es justo que te la pidan.

Sin embargo, siempre vale la pena recordarlo; usted siempre es libre de rechazar cualquier parte de una entrevista, aceptando el resultado probable de que será eliminado del proceso en ese momento. Las entrevistas se tratan tanto de que usted quiera trabajar para ellos como de que ellos quieran contratarlo.

¿De qué sirve tener pruebas de programación supervisadas si se puede hacer bien con la ayuda de documentación o fragmentos de código en línea?

Mientras que especular sobre los motivos de alguna otra compañía es siempre un juego de adivinanzas. Algunas razones probables pueden ser:

  • Piensan que les dará una comprensión de su conocimiento básico.

  • Piensan que si has trabajado en el idioma durante un tiempo considerable, recordarás una cantidad considerable de cómo funciona.

  • Quieren ver cómo trabaja en un entorno desconocido o en un campo donde no existe documentación (por ejemplo, cuando trabaja en la vanguardia)

  • Esta fue la forma en que fueron entrevistados, así que esta es simplemente la forma en que usted será entrevistado.

  • Desconfían de contratar a un candidato que pasa la prueba improvisando los resultados existentes en línea, sin tener el conocimiento necesario, ya sea que esto sea realmente un problema real o no.

¿Cómo puedo transmitir que puedo codificar bien, solo que no soy bueno para recordar todas las cosas para no tener que buscar en línea?

Aunque esto dependerá del empleador, si están dispuestos a leer su código (deberían hacerlo), en lugar de enviarlo a través de un sistema automatizado de "qué porcentaje aprobaron", siempre puede usar pseudocódigo para las áreas que conoce. cómo resolver pero carece del conocimiento de sintaxis para completar (o donde necesita hacer suposiciones sobre cómo funciona una determinada API).

Por ejemplo, si sabe que "hay una manera de enviar una pulsación de tecla falsa" pero no sabe cómo hacerlo en la API Win32 real sin buscarla, puede escribir un código como este:

if(realLogic){
    SendWindowsKeyPress("ENTER_KEY"); // There is a way to do this in the Win32 API, but I do not have the reference to hand. Placeholder function signature used here.
}

Tener en cuenta que los comentarios son valiosos y explicar las cosas para las que necesitaría visitar una referencia es perfectamente válido.

Por supuesto, si no están dispuestos a leer su código o tienen pautas estrictas sobre "realmente debe ejecutarse o no lo contrataremos", simplemente no tendrá suerte y lo descartará como una empresa a la que le gustaría probablemente no quiera trabajar en primer lugar.

Este. Tuve una entrevista para un trabajo de ingeniero de software y tengo conocimientos de programación muy limitados. Escribí el código lo mejor que pude (definitivamente no se ejecutaría) me pidieron que hablara sobre lo que había hecho y explicara por qué. Para resumir, conseguí el trabajo. Estaban buscando la lógica y la comprensión central para estar allí.

Me gustaría aprovechar lo que dijo @Romeo Ninov en su publicación:

Quieren poner a prueba tu forma de pensar.

Esto es 100% correcto. Recientemente tuve una entrevista técnica a través de una videoconferencia en la que me pidieron que resolviera dos problemas de codificación. Se me permitió usar mi idioma de preferencia.

No podía recordar la sintaxis para hacer algo en particular en este idioma y le pregunté al entrevistador si estaría bien que lo buscara rápidamente en Google. Dijeron que no debería preocuparme por eso y que está bien simplemente simularlo/usar pseudocódigo en lugar de cualquier sintaxis que no pueda recordar. También justificaron esto explícitamente diciendo que estaban más interesados ​​en ver mi proceso de pensamiento y no necesariamente mi capacidad para 1) resolver los problemas correctamente y 2) recordar la semántica del lenguaje.

Pero eso obviamente es un poco diferente a usar Hackerrank. Para eso, simplemente necesita practicar hasta que ese tipo de problemas se conviertan en una segunda naturaleza.

(O hasta que se vuelvan obsoletos como mecanismo de deshierbe, podemos soñar, ¿no?)

Referencias y manuales fuera de línea

Dependiendo de lo que realmente necesite, ¿tiene permitido (¡y puede!) usar manuales de referencia fuera de línea para funciones API, nombres de parámetros, etc.? En muchos casos, incluso estarían integrados en plataformas IDE.

Eso debería ser razonable, y eso debería ser suficiente.

sí. Aunque tuve una de esas pruebas de programación donde todo lo que estaba disponible era VI, ni siquiera un compilador para intentar compilar el código. Por supuesto, no les importaba si realmente compilaba, solo si la estructura del código y el algoritmo elegidos tenían sentido y si se presentaba limpiamente con comentarios medianamente decentes.

Esta prueba no está diseñada para evaluar su capacidad para buscar soluciones en Google o hacer preguntas sobre el desbordamiento de la pila. Está diseñado para analizar cómo abordas personalmente un problema sin ayuda. Se espera que cometas errores. Se espera que falles.

Lo que realmente quieren ver es cuándo y cómo fallas. Que tipo de errores cometes. Así se van a comparar todos los candidatos y elegir al que falle con menos daños colaterales.

Piense en ello como probar materiales para construcciones, como puentes, centrales eléctricas, etc. Esos materiales están sujetos a condiciones que van mucho más allá de las condiciones de las operaciones estándar. Se ve obligado a trabajar en condiciones más estrictas de lo habitual para que sus fortalezas y debilidades puedan verse más fácilmente.

Se espera que cometas errores. Se espera que falles. - No cuando tienes que enviar tu solución en Hackerrank con verificación automática de pruebas.

Un codificador que entiende lo que está haciendo puede ser más lento sin una búsqueda en la web, pero uno que no puede completar el trabajo sin cortar y pegar, pronto pegará algo incorrecto y no lo entenderá. Creo que esta compañía puede estar en algo.

PD: intencionalmente no usé el nombre del mayor competidor de la NSA, el que te dice lo que cree que quieres ver en lugar de lo que pediste.
te refieres a amazon? :)

El empleador conoce el trabajo y las habilidades que necesita para hacerlo, por lo que creo que es perfectamente razonable.

Entiendo lo que dice, pero más bien es parte de un proceso de contratación fallido en lugar de uno injusto. Muchos reclutadores con los que he hablado están de acuerdo.

El empleador necesita saber qué hará usted si alguien más no ha resuelto el problema. Para esto, las pruebas técnicas en línea no funcionan, ya que solo dan un aprobado/suspenso y no permiten respuestas fuera de lo común. Necesitan darle un problema del mundo real y observar su enfoque.

Una prueba técnica en línea solo verifica su memoria de sintaxis y preguntas de programación arbitrarias que están intencionalmente ofuscadas de una manera que nadie escribiría código. - Me gustaría saber cuándo esto reemplazó a tener una cartera y buenas referencias.

Entonces lo entiendo y en parte estoy de acuerdo, pero también lo veo desde el punto de vista de los empleadores. Tal vez sugiera que en lugar de tomar la prueba en línea, sugiera reunirse cara a cara y responder cualquier pregunta técnica que tengan. - Esto es lo que hago. Rechazo las pruebas en línea y estoy feliz de alejarme de cualquier trabajo que no sea lo suficientemente flexible para acomodar, pero sé que no todos tienen ese lujo.

No mencionó si requieren un código que realmente se ejecutaría, o uno que no necesariamente se ejecutaría como está, pero que simplemente les mostraría cómo resolvería la tarea.

Supongo que es la segunda opción. El punto es mostrar sus habilidades de diseño de software y no depende si escribe correctamente una función de biblioteca.

También pueden tener miedo de que uses Google de manera injusta (haciendo trampa, copiando soluciones completas u obteniendo ayuda de otras personas).

PD: Probablemente tampoco insistan en memorizar las funciones de la biblioteca (eso no tendría sentido): si no recuerda la función de la biblioteca, simplemente llame a una hipotética.