OOP não é importante por si só, mas por causa do que é preciso. Algo que lida com a capacidade de abstrair e isolar, agrupar as coisas e expor apenas as partes necessárias para interagir.
Essa é uma técnica de engenharia comum chamada "modularização", que permite criar sistemas complexos como agregação de sistemas mais simples, sem cuidar de todos os detalhes de alto nível e exigir que os componentes sejam substituíveis, mesmo sem serem exatamente os mesmos. mesmo.
Esses "conceitos de engenharia" foram mantidos no desenvolvimento de software desde o momento em que o produto de software se tornou maior que o "recurso de desenvolvedor único", exigindo, assim, uma maneira de fazer com que os desenvolvedores trabalhem em peças independentes e deixem essas peças interagir juntos.
Dito isto, esses princípios não são necessariamente encontrados apenas em OOP (se a teoria da computação é válida, existem infinitos métodos possíveis para chegar a esses resultados).
OOP é simplesmente uma tentativa bem-sucedida de reunir essas coisas, dando a esses termos gerais (como módulos, encapsulamento, substituição) definições mais precisas e conceitualização elaborada sobre essas definições (padrões) que podem se encaixar nas linguagens de programação.
Pense no POO primeiro não como um " recurso de linguagem ", mas como um " léxico comum " que faz os engenheiros de software abordarem o design do software.
O fato de uma determinada linguagem ter ou não primitivas que imponham diretamente esse léxico, assegurando, por exemplo, que uma "cápsula" não seja aberta inadvertidamente por quem não deveria fazer isso é um aspecto secundário do design de POO. É por isso que mesmo grandes projetos C geralmente são "gerenciados como" OOP, mesmo que o idioma em si não ofereça suporte direto a isso.
A vantagem de tudo o que não é reconhecível até que o tamanho de um projeto permaneça no recurso de desenvolvedor único para entender e acompanhar tudo o que ele faz (na verdade, nessas situações, pode até ser visto como "sobrecarga") ou em um pequeno grupo desenvolvendo algo em um curto período. E essa é a principal razão pela qual os juniores que estudaram OOP em termos de um "recurso de idioma" geralmente interpretam mal o fato de produzir código mal projetado.
Como o POO se encaixa nas linguagens depende de como os designers de linguagem interpretam o princípio do POO em sua própria construção.
Assim, o "encapsulamento" em C ++ se torna "membros privados" (e uma "cápsula" se torna uma classe), "substituição" se torna substituição de funções virtuais ou parametrização / especialização de modelo etc., enquanto em D uma cápsula é um "módulo" (e a substituição ocorre através de aulas etc.), tornando certo paradigma ou padrão diretamente disponível em um determinado idioma e não em outro e assim por diante.
O que os recrutadores procuram ao fazer perguntas sobre OOP é apenas verificar sua capacidade de abstrair e conceder o design de software para futuros grandes projetos e desenvolvimento. OOP, para eles é apenas um "dicionário" que eles supõem que você e eles conhecem para que você possa falar sobre outras coisas mais gerais ou concretizar em uma implementação específica.