Cómo juzgar a un programador Java con solo 5 preguntas

He entrevistado a muchas personas de tecnología a lo largo de los años, incluidos muchos programadores de Java. Muchas de las respuestas ya enumeradas tienen buenas preguntas específicas. Sin embargo, lo haría un poco diferente. Mis 5 preguntas tampoco son específicas del lenguaje de programación. Realmente no me importa si responden con Java, PHP, C, Lua o pseudocódigo.

Primero, debe tener la sala de entrevistas preparada. Obtenga una computadora con un IDE y conéctela a un monitor para que los entrevistadores puedan ver. Una computadora portátil es ideal porque el entrevistado tiene su propia pantalla y los entrevistadores pueden ver un monitor grande. Tenga listo el IDE para que el entrevistado pueda sentarse y escribir el código por usted. También tenga algún código para un proyecto en el que el entrevistado probablemente esté listo para trabajar también. También es una buena idea tener una pizarra. Ahora las preguntas …

1. Cuéntame sobre tu proyecto actual o tu proyecto favorito, con el que puedas hablar con la mayor profundidad técnica. (Esto debería ser una discusión de 2 minutos).

2. Tómese unos 10 minutos y demuestre una clase o método rápido que podría crear para ese proyecto utilizando el IDE en la computadora que tiene delante. Puede parecer un poco extraño, pero hable a través de su proceso de pensamiento mientras está codificando. No nos interesa que el código sea 100% correcto, no lo compilaremos ni lo ejecutaremos. Confía en mí, ninguno de nosotros escribe un borrador de código que sea 100% correcto con otras personas respirando por nuestro cuello. 🙂 Tampoco nos interesa saber si conoce los accesos directos para este IDE en particular.

3. ¿Cuáles son algunas formas en que podría mejorar esa clase o método? Puede usar la pizarra o el IDE o lo que sea más natural. (Pase unos 5 minutos aquí).

4. Ahora echemos un vistazo al código que tenemos para un proyecto en el que probablemente estaría trabajando. (En este punto, uno de los entrevistadores debería cambiar al código del proyecto en el IDE). ¿Qué piensa sobre el código? No se preocupe, somos de piel gruesa y el código nos revisamos regularmente. (Esto puede tomar otros 5-10 minutos).

5. ¿Qué preguntas tienes para nosotros? (Probablemente unos 5 minutos, lo que lleva a una entrevista de aproximadamente 30 minutos).

Muchas otras preguntas, como las que menciona Miguel Paraz, surgirán naturalmente de la discusión. El punto es hacer que hablen de algo que saben para que no intenten memorizar preguntas de programación. Hacer que demuestren el código le dirá mucho sobre cómo piensan al codificar. El código no tiene que ser correcto, pero debe ser lógico. Incluso si arruinan completamente la pregunta 2, tienen la oportunidad de redimirse en la pregunta 3. Como dijo Quora User en su respuesta, no es práctico saber todo sobre un idioma todo el tiempo. Hace unos 15 años formé parte de un proyecto que escribió una gran pieza de software empresarial en Java. Hoy probablemente no podría responder demasiadas preguntas técnicas específicas sobre algunas de las cosas que usamos en ese momento, pero sabría dónde buscar si tuviera que construir algo con ellas. Me sentiría perfectamente cómodo burlándose de un código relacionado con el proyecto usando cosas con las que he trabajado más recientemente también.

De hecho, enseñé Java como profesor durante años. Usualmente les doy a mis estudiantes problemas y proyectos que no están en los materiales estándar. Cosas que tienen que buscar en la API / manual.

Si fuera un entrevistador para un trabajo, preferiría saber qué tan bien sabe el entrevistado acerca de los conceptos de OO y lo que entiende sobre la API y la documentación de Java. Como me gustaría que tal vez obtengan algunos paquetes de Java y los usen para implementar soluciones.

Yo preguntaría:

  1. Entonces aprendiste que es una buena práctica declarar variables de instancia en una clase como privadas, y solo usar métodos de acceso / mutación para manipularlas. ¿Por qué queremos hacer eso? Puedes darme un ejemplo.
  1. Una buena respuesta implicaría hablar sobre cómo podríamos querer ajustar cómo se manipulan las variables. ¿Qué pasaría si decidiéramos obtener coordenadas polares en lugar de coordenadas cartesianas? Tendríamos que cambiar el código en muchos lugares.
  • Hablamos de polimorfismo en OO. ¿Sabes cómo y por qué funciona el polimorfismo? ¿Puede mencionar ejemplos en la API de Java donde se utiliza el polimorfismo? ¿Ha diseñado programas o clases teniendo en cuenta el polimorfismo?
    1. ¡Las colecciones y los métodos de clasificación son un ejemplo que personalmente me encanta! Comparable y CompareTo
    2. ¡Hablar sobre cómo el método toString también es bueno!
  • Java 5 introdujo genéricos. ¿Cómo crees que los genéricos son útiles?
    1. Una respuesta aceptable, pero no buena: ahorran tiempo escribiendo código para que no tenga que hacer muchos tipos de yeso.
    2. Gran respuesta que buscaría: Mejoran el proceso de desarrollo al cambiar la “comprobación” para compilar el tiempo en lugar del tiempo de ejecución. Es mejor encontrar fallas antes en el proceso de desarrollo.
  • “No se puede hacer referencia a la variable no estática XYZ desde un contexto estático”. ¿Por que eso es un problema?
    1. Sería suficiente una buena conversación sobre los objetos como instancias y la estática como una especie de clase.
  • ¿Cómo pasa Java los parámetros del método? por valor o por referencia? Explica lo que sabes sobre eso. ¿Qué pasa si quieres crear un método de intercambio? ¿Cómo puedes hacer eso?
    1. Java es un poco complicado . Java siempre pasa por valor. Sin embargo, las referencias se consideran valores, por lo que pasa el “valor” o la “referencia”

    Conclusión Pregunta si estaba contento con las 5 respuestas: Entonces, has trabajado mucho con Java. ¿Dónde te decepciona Java? ¿Podemos hablar sobre qué cosas cambiarías sobre el idioma si pudieras?

    Si el entrevistado lo lograra, ¡lo contrataría!

    Una gran pregunta para responder con preguntas de hecho … Juzgar a un programador de Java con solo 5 preguntas es ciertamente una tarea difícil ya que Java tiene un amplio alcance como lenguaje de programación. Aún así, si se supone que debo hacer eso, preferiré elegir las siguientes 5 preguntas para juzgar la claridad de un programador sobre los conceptos de Java.

    Las 5 preguntas principales de Java para juzgar a un programador de Java:

    1. ¿Qué pasará con el bloque finalmente si pones declaración de retorno o System.exit () en el bloque try o catch?
    2. Si un método arroja NullPointerException en la superclase, ¿podemos anularlo con un método que arroje RuntimeException?
    3. ¿Cómo se asegura de que N hilos accedan a N recursos sin punto muerto?
    4. ¿Cuál es la diferencia entre la fábrica y el patrón abstracto de fábrica?
    5. ¿Cuál es la diferencia entre crear String como new () y literal?

    Entonces, ahora es el momento para que encuentres respuestas a las preguntas que no pudiste resolver … Y si no hay tal pregunta, entonces ciertamente eres genial como programador de Java …

    Amo Java !!! ¡Vive Java!

    No se limita a Java .

    1. Elija 5 lenguajes de programación distintos de Java, explique cuándo los elegiría en lugar de Java y por qué.
    2. Implemente un analizador URI.
    3. Diseñe su propio lenguaje de programación / entorno / conjunto de herramientas y explique por qué.
    4. Sugerencias / soluciones para negocios actuales.
    5. Por qué te gustaría ser programador.

    En realidad, para juzgar a un hombre no solo se trata de lo que está haciendo y de lo que él ha hecho, debe considerar su experiencia, habilidades, metodología y filosofía, etc. para ver si es bueno y si puede ser mejor.

    La situación frente a las preguntas y respuestas siempre son más reveladoras. Mucha gente puede memorizar las preguntas de la entrevista, aunque es obvio para algunos, puede sesgar las opiniones. Algunas preguntas que se centran en el enfoque estratégico del código y la implementación mostrarán un conjunto de habilidades de los candidatos de manera más limpia.

    Algunos ejemplos:

    ¿Cómo pruebas tu código?

    ¿Cuál es la diferencia entre una integración y una prueba unitaria?

    Use un diseño orientado a objetos para modelar un zoológico simple que consiste en un león, una jirafa y un elefante (créalo o no, tasa de falla del 90% +; cuando lo hacen, muestra áreas que puede seguir y discutir).

    ¿Qué sucede cuando marcas una variable final?
    (Respuesta: sí, se vuelve inmutable, pero pregunte por qué. Si no está familiarizado con la organización de la memoria de la JVM; las variables finales se administran en PermGen frente al montón. Otra forma de preguntar esto es: por qué las variables o parámetros locales del método accedido en clases internas anónimas que se deben marcar como finales (nota: Java 8 ya no tiene un PermGen; ¡Hola Metaspace! ¿Dónde se ha ido el Java PermGen?)

    ¿Cómo funciona un HashMap? ¿Es O (1)? ¿Cómo se calculan las claves? ¿Cuáles son algunas otras colecciones que usa SIN incluir la Lista!

    ¡Espero que esto ayude!

    Algunas preguntas que llevarán a discusiones interesantes y le ayudarán a contarle más sobre el programador. (¡Y a alguien le gustaría responder!)

    • ¿Qué lenguajes de programación utilizas además de Java? ¿Cómo influyen en su programación Java? ¿Cuándo eliges usar Java?
    • ¿Cuáles son algunos sistemas complejos que ha construido en Java? ¿Cómo se sigue el código Java de los requisitos? ¿Podría explicarlos en términos de sistemas más simples, o en términos de marcos y bibliotecas que usan?
    • ¿Cuál es la clase, interfaz o paquete estándar de Java API más interesante? ¿Como funciona? ¿Cómo lo has usado?
    • ¿Qué es la programación orientada a objetos? ¿Cómo cumple Java los requisitos de OOP? ¿Sigue estrictamente los principios de la programación Java OOP, o lo ajusta a sus necesidades?
    • ¿Cómo funciona la máquina virtual Java? ¿Cómo funciona la JVM con bytecode, con asignación de memoria y recolección de basura?

    Estas son las preguntas que haré para comprender qué tan bien entiende el candidato las partes internas de Java:

    1. ¿Cuál es la diferencia entre el objeto final y un objeto inmutable ?
    2. ¿Cuál es la diferencia entre polimorfismo estático y dinámico (tiempo de ejecución)? Siéntase libre de explicarlo en profundidad con la ayuda de ejemplos simples.
    3. Una discusión sobre pila y montón, almacenamiento de variables de instancia, recolección de basura. Preguntas de seguimiento:
    1. ¿Puedo dejar la tarea de liberar recursos para finalizar el método? ¿Por qué o por qué no?
    2. Estática y herencia: ¿puedo anular un método estático? ¿Cómo se comportan las referencias a objetos cuando tiene métodos estáticos con las mismas firmas en la base y subclase?
  • Implemente lo siguiente desde cero sin el uso de paquetes disponibles (obtendré una pista de su destreza con algoritmos, estructuras de datos y codificación práctica):
    1. Un hashmap con métodos put y get.
    2. Ordenación rápida.
    3. Clase Stringbuilder con método append.
    4. (Se hará hincapié en el uso de matrices y primitivas siempre que sea posible).
  • Hablemos de genéricos durante los próximos 20 minutos ………… .. ……… ..
  • Asaré al candidato con preguntas de seguimiento y si / si no. Los algoritmos de prueba, las estructuras de datos y el diseño OO, por supuesto, vendrán en otras rondas.

    PD: Estas preguntas están destinadas a candidatos con 0 a 3 años de experiencia. Responder estas preguntas con confianza no solo demuestra el comando y la pasión que el candidato tiene en el idioma, sino que también me asegura que aprenderá cualquier cosa en el trabajo con celo similar.

    No creo que puedas hacer un buen juicio sobre un programador en solo 5 preguntas, pero puedes hacerte una idea.

    En las entrevistas solía hacer muchas preguntas detalladas específicas de Java, como “cuáles son los 8 tipos de datos primitivos” y “cuál es la diferencia entre sobrecargar y anular métodos”, pero descubrí que en realidad no son tan útiles. Todos podían contestar el segundo y casi nadie podía responder el primero (la mayoría de las personas se olvida brevemente). Hoy en día me concentraría más en averiguar qué tipo de programador son, pero sin perder de vista el objetivo de asegurarme de que conocen algo de Java. Aquí hay 5 ejemplos:

    1. ¿Has leído “El programador pragmático”?
    2. ¿Cuál es su opinión sobre las excepciones marcadas y no marcadas?
    3. ¿Cuál es el problema con los singletons estáticos?
    4. ¿Puede existir una instancia de objeto Java sin que se haya llamado a ninguno de sus constructores? En caso afirmativo, ¿en qué situaciones?
    5. Dé un ejemplo de Java de un Adaptador, un Proxy, una Fachada y un Visitante.

    Mis razones para preguntar, en caso de que no esté claro:

    1. Si lo han leído (o libros similares), me dice que les importa la programación como un oficio, no solo como un medio de vida.
    2. Algo que todos los programadores de Java se habrán encontrado, por lo que deberían haber formado algún tipo de punto de vista: puntos de bonificación por ser conscientes de que ha habido un debate sobre esto durante algún tiempo en la comunidad de Java y cuál es el consenso: puntos de bonificación adicionales por su opinión de acuerdo con el mío
    3. Me dice algo acerca de la cantidad de pruebas que han realizado: puntos de bonificación si han usado una biblioteca burlona, ​​más puntos de bonificación si explican el problema en términos de principios generales como encapsulación y contratos
    4. Un rincón esotérico de Java, pero cualquiera que haya aprendido Java realmente debe saberlo. Puntos de bonificación para comprender la reflexión también, bonificación extra por haber encontrado múltiples contextos donde sucede algo como esto.
    5. Comprueba si conocen los patrones de GoF, que son una herramienta de comunicación importante entre los programadores de Java. Puntos de bonificación para ejemplos precisos de Java, especialmente de Visitor, que es necesariamente más complejo que los demás.

    Estas preguntas evalúan no solo algunos conocimientos de Java, sino también con cuánto código de Java realmente ha trabajado el programador, y si entienden algunos principios importantes y si podrán comunicarse bien con otros desarrolladores.

    Supongo que estamos hablando de un programador junior porque la pregunta parece centrarse solo en Java puro. Entonces preguntaría:

    1.una pregunta sobre un cierto aspecto de POO y cómo esto es posible en Java
    2. una pregunta sobre la API de Java
    3. una pregunta sobre una característica de Java en general (estática, excepciones, clases internas, anotaciones, genéricos, …)
    4. una pregunta centrada en algoritmos y cómo se implementa uno dado usando java (se recomienda la recopilación de API de Java, por ejemplo)
    5. una pregunta para resolver problemas en general

    Si no estamos hablando de un perfil junior, entonces debemos considerar el contexto:
    – programación web del lado del servidor
    – aplicaciones en tiempo real
    – capa de base de datos relacionada
    – redes en general
    – idiomas encima de JVM
    – intereses en varios tipos de marcos (IoC, MVC, plantilla, persistencia, basados ​​en mensajes, microservicios, …)

    Entonces, especialmente para los programadores no junior (java), diría que el contexto es el rey.

    Trabajo como Java Dev por más de 5 años y entrevisto a Java Dev como nuestro candidato de la compañía, tanto junior como intermedio. Algunas preguntas que hice:

    1. ¿Por qué elige Java para construir un sistema, por qué no elige otro lenguaje (PHP, Ruby o Scala)?
    2. Por favor, explícame cómo funciona JVM. ¿Cómo se almacena el objeto en la memoria? ¿Cómo funcionó GC?
    3. ¿Cuál es la diferencia entre Interface y Abstract Class? explícame el caso cuando deberías usar Interface y cuándo deberías Abstract Class?
    4. ¿Cuéntame sobre el patrón de Java que has implementado y / o aprendido y por qué usaste ese patrón?
    5. ¿Cuál es la diferencia entre analizar por valor y analizar por referencia?

    Y fuera del lenguaje java, también pregunto cuál es el mejor proyecto que has hecho y / o involucrado. ¿Dime por qué? con esta pregunta sabremos si le gusta o no un desafío

    Podemos hacer preguntas relacionadas con algunas soluciones Java interesantes.

    1. ¿Por qué te gusta el lenguaje de programación Java? Respuesta típica de un candidato: más información sobre OO y JVM (independencia de la plataforma).
    2. Explica más sobre las plataformas Java en las que has trabajado hasta ahora. Respuesta típica de un candidato: más información sobre las plataformas Java SE, Java EE y Java ME. Puede hacer más preguntas relacionadas con la plataforma Java en la que trabajaron.
    3. Escribir solución de programa Java para clase abstracta e interfaz? Puede hacer más preguntas desde la solución del programa sobre clase abstracta, métodos abstractos, interfaces, sobrecarga, anulación y polimorfismo.
    4. ¿Qué API de Java SE ha usado con más frecuencia? Según la respuesta, puede hacer más preguntas desde la API elegida.
    5. ¿Cuál es la última versión de Java SE que utilizó en sus proyectos? También puede hacer preguntas relacionadas con los cambios de versión de Java SE y nuevas adiciones de plataforma.

    Recursos MyExamCloud para profesionales de Java:

    Certificaciones Java Colecciones de exámenes MyExamCloud

    Preguntas de la entrevista Java Colecciones de exámenes MyExamCloud

    MyExamCloud divertido Magic Quiz:

    Desarrollado por Java Code en solo 2 líneas de algoritmo: MyExamCloud Magic Quiz

    Una buena entrevista en Java implica

    1. Preguntas abiertas para juzgar la experiencia, la pasión y las habilidades de comunicación.
    2. Debe saber preguntas técnicas. por ejemplo, equals () vs ==, las cadenas son inmutables
    3. Evaluación de habilidades de codificación y resolución de problemas. Dar algunos ejercicios de codificación.
    4. Evaluar el conocimiento de 16 áreas técnicas clave.
    5. Preguntas basadas en SAR para evaluar habilidades blandas, actitud y ética laboral.

    Más de 600 preguntas de la entrevista Java y JEE se responden con muchos diagramas.

    Bueno, según yo, no hay límite de dificultad para la pregunta que puede hacer y depende de la situación hasta qué calidad quiere juzgar a una persona. Pero haría las siguientes preguntas relacionadas con la parte principal de Java

    • ¿Cómo se ejecuta un código Java en una máquina? ¿Qué es la JVM?
    • ¿Cuál es el significado de la palabra clave this, super en OOP?
    • ¿Qué son las clases abstractas y las interfaces? ¿Por qué las necesitamos? ¿Podemos hacer sus objetos? Cuál es la diferencia entre estos dos ?
    • ¿Cómo implementamos hilos en Java? Explica los diferentes métodos.
    • ¿Qué sabes sobre la clase de objeto? Cuenta algunos de sus métodos. ¿Qué pasos debemos seguir para crear nuestro propio método equals ()? (es decir, el contrato de los métodos equals y hashCode)
    1. ¿Dónde usamos palabras clave estáticas y finales en java?
    2. ¿Cómo ejecutar un programa java? Explique con pasos intermedios y salidas.
    3. ¿Cómo se implementa la programación orientada a objetos en Java? Explicar el polimorfismo y la herencia en java.
    4. ¿Cuál es el mecanismo de implementación de hilos en java?
    5. Describa cualquier estructura de datos incorporada o un paquete GUI en java.

    Estas preguntas serán útiles para evaluar el conocimiento de un desarrollador de Java, ya que revela tanto el nivel básico como el nivel de comprensión API de Java.

    Implemente un método que almacene un conjunto ordenado de objetos y admita tres métodos: insert (Object o), get (int index) y count (). Para puntos de bonificación, use tipos genéricos. (No les permito usar Vector o ArrayList; quiero que escriban esto respaldado con una matriz o una lista enlazada enrollada a mano).

    ¿Cuál es el tiempo de ejecución big-O de su implementación de esos tres métodos?

    ¿Qué compensaciones hiciste al elegir construirlo de esa manera?

    Si obtienen esos tres fácilmente, pueden escribir código simple y tener una idea de análisis y diseño algorítmico. En ese punto, deberíamos tomar un café y juzgar si son una cultura adecuada; “¿qué has aprendido recientemente” (¿todavía están aprendiendo?) y “¿te ríes cuando escuchas un nombre de clase dolorosamente largo, como el WidgetFactoryBuilderWidget?”

    Sin duda, juzgar a un programador de Java con solo 5 preguntas es una tarea difícil ya que Java tiene un amplio alcance como lenguaje de programación. Aún así, si se supone que debo hacer eso, preferiblemente elegiré las siguientes 5 preguntas para juzgar la claridad de un programador sobre los conceptos de Java.

    1. ¿Qué pasará con el bloque finalmente si pones declaración de retorno o System.exit () en el bloque try o catch?
    2. Si un método arroja NullPointerException en la superclase, ¿podemos anularlo con un método que arroje RuntimeException?
    3. ¿Cómo se asegura de que N hilos accedan a N recursos sin punto muerto?
    4. ¿Cuál es la diferencia entre la fábrica y el patrón abstracto de fábrica?
    5. ¿Cuál es la diferencia entre crear String como new () y literal?

    Los programadores de Java son un centavo por docena. Si desea juzgar a un ingeniero de software que se sienta cómodo con Java, debe preguntarle:

    • ¿En qué otros idiomas tiene alguna experiencia, por pequeña que sea?
    • ¿Se ha ocupado de asignar y liberar memoria manualmente en C / C ++ y punteros (punteros a punteros) y puede comparar eso con la forma en que GC funciona en Java
    • ¿Tiene alguna experiencia de programación funcional (Lisp, Scala, Haskell) y cómo influyó en su comprensión de la recursividad? Pregunta sobre el cálculo lambda.
    • ¿Puede describir el tipo de mecanografía que utiliza Java y cómo difiere de los otros idiomas que conoce y por qué eso es importante?
    • ¿Puede describir las características de OOP que son exclusivas de Java y cómo difieren de, por ejemplo, Python o C ++? Nuevamente, solicite análisis, comentarios, pros y contras.

    Si desea contratar monos de código, elija 5 preguntas, pero los monos de código habrán aprendido de memoria la respuesta a los 20 típicos utilizados y considerados “difíciles”.

    Si, por otro lado, quiere contratar ingenieros, desconfíe de los expertos en Java que no saben nada más allá de Java: parecen una gran inversión, pero son mucho más propensos a dejarlo con una base de código mal diseñada, porque su falta de marco de comparación, y en particular su falta de experiencia de cualquier cosa que intente la capacidad de alguien para trabajar en diferentes niveles de abstracción.

    Para más información, vea Los peligros de las escuelas Java de Joel Spolsky

    Para mi

    1) ¿Por qué no C #? (Solo para saber si él / ella conoce el valor de Java)

    2) La memoria integrada para almacenar enteros, cadenas, caracteres, etc.

    Integer a = (Integer)20;

    Integer b = (Integer)20;

    System.out.println(a == b); // true

    Integer a1 = (Integer)200;

    Integer b1 = (Integer)200;

    System.out.println(a1 == b1); // false

    3) extiende vs implementos en interfaz y clases.

    4) hashmap vs hashtable vs hashset, ¿cuándo y por qué?

    5) Multi-threading + heap / stack preguntas.

    No contrates a un programador de Java. Son seis por centavo. Contrata a un desarrollador de software que entienda que escribir código es la parte fácil y que puede contarte cosas importantes, como captura de requisitos, patrones de diseño, planificación de pruebas, análisis de impacto, buenas prácticas de registro y documentación del proyecto. Si son una referencia de API ambulante, probablemente no sepan para qué sirve Internet.

    Actualización : se ha (bastante) señalado que en realidad no he respondido la pregunta dada, así que abordaré eso aquí.

    1. ¿Cuáles son algunas fallas comunes cuando se trabaja con fechas y / u horas, y qué se puede / se debe hacer para mitigarlas?
    2. ¿Qué es la inversión de control y por qué es algo bueno?
    3. ¿Qué principios de diseño se pueden usar para facilitar la codificación de accesibilidad?
    4. En una arquitectura orientada a servicios, ¿qué consideraciones deben tenerse en cuenta al decidir entre la validación del lado del cliente y del lado del servidor?
    5. Las partes interesadas están debatiendo si algún comportamiento existente debería cambiarse o dejarse como está. Uno de ellos le pregunta: “¿No puede hacerlo configurable?” ¿Cuál es su respuesta?

    Se puede argumentar que estas preguntas no están adaptadas exactamente para los programadores de Java, pero las consideraría más importantes para cualquier programador que cualquier cosa específica del lenguaje, y como tales, son preguntas que haría para evaluar la calidad de un programador. Programador de Java.

    Actualización 2 : Notas sobre lo anterior:

    1. En mi experiencia, las fechas y horas representan una parte desproporcionada de defectos de codificación. Reconocer los errores comunes con las zonas horarias (y su impacto en las fechas), el horario de verano, el formato basado en la localización, etc. es vital. Pero más aún están reconociendo la importancia de representaciones adecuadas cuando persisten o (des) serializan datos; uso constante de API maduras y sin pérdidas en toda la lógica empresarial; evitando cualquier manipulación de cadenas hasta el renderizado de último minuto, y así sucesivamente. Estas son consideraciones de diseño; conseguirlos desde el principio hace que la codificación sea muy fácil. Además, estos principios se aplican a casi todos los demás tipos de datos complejos; Si un candidato puede acertar fechas / horas, el resto debe seguir.
    2. Habla en gran medida por sí mismo y pone a prueba su aptitud de “panorama general”, pero en particular, esta es una gran oportunidad para que demuestren su aprecio por el desarrollo basado en pruebas.
    3. Comprender los usos de, por ejemplo, la encapsulación y la abstracción es algo bueno. Pero el punto real de esta pregunta es ver si un candidato está acostumbrado a considerar la accesibilidad desde el principio. Nunca debería ser una ocurrencia tardía.
    4. Otra pregunta de “panorama general”, y es bueno ver cuán conscientes de la seguridad son.
    5. El punto aquí no es ver cómo manejarían a los interesados. Es para ver si ellos mismos reconocen los costos continuos (complejidad, pruebas, mantenimiento, etc.) asociados con la adición adecuada de un comportamiento configurable. Si no lo hacen, hay una buena posibilidad de que corten esquinas para entregar.

    No les haría preguntas que puedan buscar en línea una vez que tengan el trabajo.

    Yo comenzaría con

    • ¿Qué te interesa?
    • Cuéntame sobre un proyecto desafiante; qué aprendiste / qué harías de manera diferente.
    • Si pudieras cambiar tres cosas en Java o JDK, ¿cuál sería?
    • Cuando una aplicación no hace lo que espera, cómo abordar este problema.
    • Cuando la empresa no sabe lo que necesita, ¿cómo maneja esto?

    More Interesting

    Cómo abordar las preguntas al final del sobre en las entrevistas de diseño del sistema, como estimar la cantidad de máquinas necesarias para el Facebook News Feed

    Soy un programador decente en C. Sin embargo, es difícil implementar todas las estructuras de datos como montones, tablas hash, árboles de rango, etc. dentro del límite de tiempo de la programación competitiva. ¿Cómo hago la transición a C ++ y su útil biblioteca estándar?

    ¿Qué tan difícil es conseguir un trabajo en C ++ o desarrollo Java para alguien que tiene más de 5 años de experiencia en la industria con C?

    ¿Cuál debería ser mi respuesta a las preguntas en "Gran escala" que se hacen en entrevistas técnicas de empresas como Amazon?

    ¿Cómo diseñaría un algoritmo que combina n matrices ordenadas en una, si solo podemos fusionar dos matrices a la vez y queremos minimizar el número total de veces que movemos un elemento?

    ¿Cuál es la diferencia entre el comportamiento indefinido, no especificado y la implementación definida?

    ¿Cómo son las entrevistas de Google Internship Host Matching?

    Cómo lidiar con estar nervioso en la entrevista de programación

    ¿Por qué la mayoría de los desarrolladores de software apestan a las preguntas de entrevista tipo algoritmo?

    ¿Vale la pena tomarse un pequeño descanso en la carrera para prepararse bien para entrevistas para trabajos aún mejores?

    Dada una matriz entera, ¿cómo podemos verificar si cada suma acumulativa es divisible por 2 o no usando XOR?

    ¿De dónde obtienen la mayoría de los entrevistadores sus preguntas de entrevistas técnicas de informática?

    ¿Por qué encontrar dos elementos con la diferencia mínima y la matriz le cuesta a O (nlogn, debido a la clasificación) mientras que es O (n, debido a DP) para encontrar elementos con la máxima diferencia?

    ¿La revisión del código se aprendió en la universidad con roles (moderador, lector, inspector, etc.) realmente utilizados en Google, Microsoft y Amazon?

    ¿Cómo evitan los programadores las líneas de código de más de 80 caracteres?