Sou um contratado independente e, como tal, entrevisto 3-4 vezes por ano para novos shows. Estou no meio desse ciclo agora e fui recusado por uma oportunidade, apesar de sentir que a entrevista foi bem. O mesmo aconteceu comigo algumas vezes este ano.
Agora, não sou um cara perfeito e não espero ser uma boa opção para todas as organizações. Dito isto, minha média de rebatidas é menor que o normal, então eu pedi educadamente ao meu último entrevistador algum feedback construtivo, e ele entregou!
O principal, de acordo com o entrevistador, era que eu parecia me inclinar muito mais para o uso de abstrações (como o LINQ), em vez de para algoritmos de baixo nível, cultivados organicamente.
Aparentemente, isso faz sentido - na verdade, também fez outras rejeições porque eu também falei sobre o LINQ nessas entrevistas e não parecia que os entrevistadores sabiam muito sobre o LINQ (mesmo sendo .NET. rapazes).
Portanto, agora fico com esta pergunta: se devemos estar "de pé sobre os ombros dos gigantes" e usar abstrações que estão disponíveis para nós (como o LINQ), por que algumas pessoas consideram isso um tabu? Não faz sentido retirar o código "da prateleira" se ele atingir os mesmos objetivos sem custo adicional?
Parece-me que o LINQ, mesmo que seja uma abstração, é simplesmente uma abstração de todos os mesmos algoritmos que alguém escreveria para realizar exatamente o mesmo fim. Somente um teste de desempenho poderia dizer se sua abordagem personalizada era melhor, mas se algo como o LINQ atendia aos requisitos, por que se preocupar em escrever suas próprias classes em primeiro lugar?
Não pretendo me concentrar no LINQ aqui. Tenho certeza de que o mundo JAVA tem algo comparável. Gostaria apenas de saber por que algumas pessoas ficam tão desconfortáveis com a ideia de usar uma abstração que elas mesmas não escreveram.
ATUALIZAR
Como eufórico apontou, não há nada comparável ao LINQ no mundo Java. Então, se você está desenvolvendo na pilha do .NET, por que nem sempre tentar usá-lo? É possível que as pessoas simplesmente não entendam completamente o que isso faz?
objectCollection.Where(oc=>oc.price > 100)
para trás, por exemplo. Isso não seria um uso de uma abstração? Talvez você possa me dizer o que estou perdendo aqui. . .