Como programador de C ++ em entrevistas, encontrei-me várias vezes em situações em que o entrevistador queria investigar meus conhecimentos sobre um bom estilo de programação. Estes geralmente estavam centrados no conhecimento básico de POO.
Eu sei que OOP é útil para encapsular conceitos e eu o uso diariamente. No entanto, como uma linguagem como C ++ permite muitos estilos diferentes e algumas abordagens em C ++, como algoritmos TMP ou STL, não são absolutamente OOP (mas sim mais como programação funcional), eu me pego preso na melhor maneira de "vender" meu conhecimento de outras abordagens, como bem, sem parecer tão arrogante ou como alguém sem valorizar o básico. Receio que essa ênfase na OOP dos solicitantes venha da socialização deles nos anos 90, onde se acreditava que a OOP era a cura para tudo, mas esse é um ponto de vista arrogante a ser adotado.
Como eu faria o melhor de perguntas como essa?
Respostas:
Eu diria que você deve fazer o melhor para responder a esse tipo de perguntas, como deve fazer o melhor para responder a qualquer tipo de pergunta.
Mais tarde, quando tiver a oportunidade de fazer perguntas ao entrevistador, você deve levantar o assunto, fazendo perguntas como:
E assim por diante ... e dessa forma, você não apenas pode iniciar uma conversa sobre vender seus conhecimentos com essas outras abordagens, como também pode ver quão rígida e quanta ênfase é realmente dada ao OOP nessa equipe / empresa.
fonte
Não se preocupe muito com as motivações do solicitante e apenas responda honestamente. Lembre-se, uma entrevista é uma via de mão dupla. Você não quer ficar preso em uma empresa ideologicamente inflexível, assim como eles não querem ficar com você.
Dito isto, acho que você está sendo um pouco paranóico com as intenções dos entrevistadores. Um número impressionante de programadores supostamente profissionais não entende os fundamentos da OOP. 99% das vezes, os entrevistadores não estão tentando ver se você bebeu o kool-aid OOP, mas apenas querem ver se você tem um entendimento básico dele. Mesmo que você sinta que outro paradigma é mais adequado para uma determinada solução, os entrevistadores querem saber que essa foi uma conclusão informada e não carregada de ignorância sobre o POO.
A racionalização é um mecanismo de defesa muito comum quando alguém não entende alguma coisa. Se as pessoas não entendem um conceito, argumentam que é estúpido ou inaplicável, em vez de admitir sua própria ignorância. Mesmo se você realmente acha que a POO é uma má escolha para uma resposta, você deve, no entanto, se diferenciar dos racionalizadores. A maneira de fazer isso é tanto explicar a solução OOP e por que você acha que é uma má escolha nessa situação.
fonte
Eu enfatizaria que você segue o princípio do SOLID , que é OOP e muito mais. Não apenas garante que seu código seja orientado a objetos, mas que seja criado de tal maneira que substituir objetos seguindo o princípio SOLID seja uma tarefa relativamente simples. Não apenas enviaria a mensagem que você conhece OOP, mas também demonstra que você entende os pontos sutis sobre o que distingue o bom código OOP do código OOP complicado e hacky, escrito por alguém que costumava programar em C e acha que todos os outros idiomas devem ser programados em Da mesma forma, já que vamos ser honestos, é isso que faz de você um bom programador, não apenas sendo capaz de usar o OOP.
Esteja preparado para explicar minuciosamente para cada um dos cinco princípios por que cada um é importante e o que pode acontecer ao código que ignora esse princípio.
fonte