logo

Experiência em entrevista com Goldman Sachs | Conjunto 19

Tive uma entrevista com GS em seu escritório em Bengaluru. Tenho 4 anos de experiência em desenvolvimento full stack usando Java. Recebi uma ligação de um consultor.
    Rodada 1
    1. Quais conceitos você se sente confortável em Java? Eu disse coleções. Ele perguntou quais classes de coleção você usou? Eu disse HashMap ArrayList e HashSet.
    2. Quando você usaria Set e quando uma lista? Eu disse que Set suporta elementos exclusivos não nulos e List não tem essa restrição. Então, se eu quiser elementos únicos, usarei Set. Ele pediu alguma outra consideração? Eu disse o tipo de consultas a serem realizadas na coleção. Como pesquisa. Ele perguntou algum exemplo? Eu disse – banco de dados de funcionários. Os funcionários devem ser únicos para que possamos usar Listar e pesquisar por pesquisa binária ou uma técnica semelhante, pois geralmente eles são classificados em alguma ordem. Mas acho que ele esperava a resposta do tempo de pesquisa O(1) ou Set. Expliquei o funcionamento do HashMap e do HashSet e como isso ajudaria um desenvolvedor a alcançar facilmente a exclusividade dos elementos, mas o entrevistador não ficou convencido com minha resposta à sua pergunta original.
    3. Qual é o contrato de equals() e hashCode()? E se um for substituído, mas o outro não?
    4. Encontre o segundo mínimo em uma determinada matriz .
    5. Encontre o ponto pivô em uma matriz classificada e girada.
    6. Alguma pergunta para mim?
    Rodada 2
    1. Faça uma breve introdução sobre sua experiência de trabalho.
    2. Dê uma visão geral do design do seu projeto recente.
    3. Suponha que eu tenha uma UI onde há uma lista ou tabela de itens e cada item tem um atributo de lucro, um atributo de desconto etc. Como garantir que vários usuários não deixem o estado de nenhum item inconsistente. O usuário pode atualizar os atributos ou algum outro serviço web pode fazer o mesmo. Sugeri sincronizar os métodos setter do item. Ele perguntou como classificar os itens. Eu disse que os itens residiriam em uma lista de array e implementei a interface Comparable. Ele pediu um código funcional. Quando escrevi a expressão dentro do método compareTo() ele disse que o design não é flexível, pois existe codificação rígida de critérios de classificação. Ele disse que quando alguém quiser ordenar por outro atributo seria impossível gerenciar tantos objetos duplicados. Eu disse que podemos fazer isso com o Factory Method Pattern. Com isso, ele efetivamente encerrou a rodada de entrevistas. Em algum momento, ele mencionou a interface do Comparador e eu expliquei a ele como funciona. Eu disse que é uma boa escolha se não quiser modificar as classes existentes. Acho que ele esperava a implementação do método compare(), pois isso não exigiria objetos duplicados e a classificação por critérios diferentes pode ser feita simplesmente implementando o Comparator em classes diferentes, uma classe para cada critério de classificação e, em seguida, invocando o método sort() da classe Collections com essa implementação do Comparator.
    4. Alguma pergunta para mim?
    Disseram-me para sair durante o dia. Conselho: Tente não mencionar padrões de projeto, a menos que seja solicitado ou você tenha experiência em resolver problemas com padrões de projeto. Ouça o entrevistador e esteja alerta. Eles fornecem dicas. Também na primeira rodada cometi um erro na questão do array girado. Ele apresentou um caso de teste em que meu código falharia. Eu corrigi a armadilha. Durma o suficiente antes do dia da entrevista. Todos os problemas práticos para Goldman Sachs ! Criar questionário