Experiencia de entrevista con Bloomberg | Conjunto 5 (para ingeniero de software de nivel de entrada)

Solicité en línea a través de la sección de carreras de Bloomberg. La solicitud era para un ingeniero de software de nivel de entrada en el sitio de Bloomberg en Londres. Necesitaba subir mi currículum y carta de presentación. El idioma que escogí para la entrevista fue C/C++.

Sección 1:
A las pocas semanas de iniciar la solicitud, recibí una llamada de Recursos Humanos diciendo que les gustaría llevar adelante mi candidatura y programar una entrevista telefónica para la misma. Fue una entrevista telefónica 1:1. La llamada telefónica comenzó con la presentación del entrevistador y luego una breve presentación sobre mí. Luego me preguntó por qué quería unirme a Bloomberg. Me hizo las siguientes preguntas:

1a) Conceptos básicos del puntero:

#include <string.h>
#include <iostream>
  
using namespace std;
  
  
int main(int argc, char *argv[])
{
    char    abc[27];
    char    *ptr = abc;
    strcpy(abc, "abcdefgxyz");
    /*
     * What are the types and values of expressions:
     *
  
     * 1. abc
     * 2. *abc
     * 3. abc[2]
     * 4. &abc[3]
     * 5. abc+4
     * 6. *(abc+5) + 2
     * 7. abc[10]
     * 8. abc[12]
     * 9. &ptr// ??? a = &ptr;
     */
     cout << &abc << endl;
       
       
    return 0;
}

1b) Coincidencia de corchetes:
se le proporciona una string que consta de corchetes y otros caracteres. Tienes que saber si es una cuerda bien balanceada. Vea a continuación, por ejemplo:

/*

"(aa)bb" -> true
"[ aa [ bbb ]" -> false
"aa } bbb { c" -> false
"aa [ bb () ]" -> true
"[aa { ] cc } ]" -> false

*/

1c) Diseño del navegador web:
diseñe e implemente un navegador web que admita la funcionalidad de que, en cualquier caso, pueda indicar de manera eficiente los 5 sitios web más visitados en función del número de visitas. Esta pregunta era una variante del caché LRU y se puede implementar de manera óptima utilizando un mapa y una lista doblemente enlazada. Vea a continuación la plantilla de diseño:

struct Webpage
{
    std::string url;
    size_t numberOfVisits;
};
  
struct History
{
    void visit(const std::string & url)
    {
    // Implement the logic
    }
  
    void printTop5()
    {
          // Implement the logic
    }
};
  
int main()
{
    History h;
    std::cout << "before visits\n";
    h.visit("www.google.com");
    h.visit("nytimes.com");
    h.visit("guardian.co.uk");
    h.visit("dev.ibm.com");
    h.visit("www.google.com");
    std::cout << "after  visits\n";
    h.print();
}

Sección 2:
Después de esta entrevista telefónica, me invitaron a una entrevista en video. Este proceso de entrevista fue 2:1 y siguió el mismo patrón de introducción que la entrevista anterior. Se hicieron las siguientes preguntas:

2a) Ejecutar la codificación de la longitud de la string. Vea a continuación, por ejemplo:

aaaaabbbccd => a5b3c2d1
xyz => x1y1z1

2b) Combinar intervalos superpuestos. Vea a continuación, por ejemplo:

[1,3] [2,5] [8,9] => [1,5] [8,9]
[1,3] [2,6] [4,99] => [1,99]

Seccion 3:

Después de la entrevista en video, me invitaron a otra entrevista en video 2:1. Siguió el mismo patrón de introducción que la entrevista anterior. Se hicieron las siguientes preguntas:

3a) Dado un árbol binario, indique si se trata de un BST válido.

// This is BST
//            10
//           /  \
//          5    15
//         / \
//        1   7

// This is not BST
//            10
//           /  \
//          5    15
//         / \
//        1   11

// This is not BST
//            10
//           /  \
//          5    15
//         / \
//        6   7

3b) Implementar un hashmap genérico en C++. Asegúrese de usar plantillas, buenas funciones hash y esté listo para discutir el diseño para manejar las colisiones.

Sección 4:

Después de la exitosa entrevista por teléfono y video mencionada anteriormente, me invitaron a la oficina de Londres para una entrevista en el lugar. Me dieron asistencia para la visa y me proporcionaron un viaje económico de ida y vuelta (India-Londres) junto con 2 días y 2 noches de estadía en el hotel.

Había aproximadamente otros 10 candidatos conmigo de diferentes países y ubicaciones. Nos recibió un departamento de recursos humanos y nos dieron un recorrido completo por la oficina. El espacio de la oficina es increíble, quizás uno de los mejores de la industria. Realmente me encantó Este recorrido duró aproximadamente una hora. Después de esto, todos desayunamos con los ingenieros que se suponía que iban a tomar nuestras entrevistas. Se esperaba que hiciéramos networking en esta sesión.

Daré los detalles de la entrevista en el sitio en las siguientes subsecciones:

4a) Primera ronda: Esta fue una entrevista 3:1 sobre algoritmos y estructuras de datos. Me hicieron una pregunta muy similar a 1.b. Hubo una ligera modificación de que si ‘&’ coincide con ‘&’ en la string, ¿cómo modificará su código para acomodar esto? Esperará seguir la modularidad del código de modo que si se agrega algún requisito, pueda acomodarlo fácilmente. Además, discutimos sobre C/C++ básico: punteros, tipos de datos. Además, también había preguntas de diseño en la pila: ¿cómo lo implementará? – usar arreglos o listas enlazadas y cuáles son las ventajas y desventajas.

4b) Segunda ronda: Fue una entrevista 1:1 con un gerente de ingeniería. Discutimos nuestro currículum en detalle: qué logré, cuáles fueron las deficiencias del proyecto mencionado en el currículum. Hizo muchas preguntas de comportamiento en las que quería ver qué tan buen jugador de equipo soy.

Luego hizo una pregunta de diseño. Trabajas en un intercambio electrónico. A lo largo del día, recibe ticks (datos comerciales) que consisten en el nombre del producto y su volumen negociado de acciones. Ej: {nombre: vodafone, volumen: 20}. ¿Qué estructura de datos mantendrá si:
*Tiene que indicar los k principales productos negociados por volumen al final del día . (Utilicé un vector y un montón para esto).
*Tienes que indicar los k principales productos negociados por volumen a lo largo del día . (Utilicé un BST equilibrado y un mapa para almacenar las direcciones de memoria de cada producto).

4c) Tercera ronda: La tercera ronda fue con uno de los representantes de recursos humanos. Hizo una pregunta de interés para el equipo de recursos humanos. Algunos de ellos se enumeran a continuación:
*¿Por qué Bloomberg?
*¿Cómo se enteró de Bloomberg?
*¿Por qué no está aplicando en otras empresas en Londres?
*¿Cuál es su condición ideal de trabajo?
* ¿Qué te mantiene motivado?
*¿Por qué quiere dejar su empresa actual?
*¿Se sentirá triste por dejar su empresa?
*¿Cuál es su expectativa salarial?

Sección 5:
Luego de la entrevista en el sitio, se programó una llamada telefónica final con el jefe de ingeniería en Londres. El propósito de la llamada según se cita fue: “Ver si Bloomberg brinda lo que espera el candidato, para que al final sea una situación de ganar-ganar para ambos”. El énfasis estaba principalmente en el aspecto conductual del candidato. Las siguientes son algunas de las preguntas que recuerdo de la entrevista:
*¿Por qué Bloomberg?
*¿Cuál es su expectativa de Bloomberg?
*¿Por qué elegiste Ciencias de la Computación como tu área de especialización?
*¿Cuál es un proyecto del que estás orgulloso de entregar?
*¿Cuál es un proyecto en el que has fallado?
*¿Qué cambiarías si te dieran la oportunidad de volver a trabajar en el proyecto que has fallado?
*¿Qué es lo más frustrante de su organización actual?
*Cuéntanos los pros y los contras de las empresas en las que has trabajado?

Sección 6:

Después de las entrevistas anteriores, recibí una llamada de Recursos Humanos diciendo que les gustaría extenderme una oferta.

CONSEJO PROFESIONAL: Conozca bien a Bloomberg. Se le preguntará en todas las entrevistas por qué quiere unirse a Bloomberg. Conozca algunos de los proyectos que está haciendo Bloomberg que le interesen y discuta sobre lo mismo con su entrevistador. Cuanto más entusiasmado esté por unirse a Bloomberg, más aumentarán sus posibilidades de que lo seleccionen. La entrevista de Bloomberg, además de verificar sus habilidades técnicas, también determina si es una buena opción para la organización, lo que significa que habrá un énfasis considerable en su aspecto conductual. Consulte los siguientes enlaces para obtener información sobre tecnología en Bloomberg:
https://www.bloomberg.com/careers/technology/engineering/
https://www.techatbloomberg.com/
https://www.bloomberglabs.com/

Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *