Eu queria aprender uma linguagem de programação orientada a objetos, não quero, para nenhum propósito, apenas conhecer todo o conceito de OOP. Então, alguém pode me dizer qual idioma devo começar a aprender?
object-oriented
Caffeinatedwolf
fonte
fonte
Respostas:
Algumas sugestões adicionais:
O melhor livro que eu já li sobre o OOP Bar nenhum é o Bertrand Meyer, Object Oriented Software Construction . Não é uma leitura "fácil", pois você precisará pensar muito em alguns lugares. Mas ele faz o melhor trabalho que eu já vi ao explicar os princípios de OO.
Quanto aos idiomas: eu ficaria longe do C ++. Grande demais para fins de aprendizado. Se você quer um idioma que realmente o ajude a entender OO (em oposição a um que você escreveria aplicativos principais em / conseguiria um emprego), observe o smalltalk. Ou Eiffel (a língua no livro de Meyer acima).
Se você quer uma linguagem um pouco mais mainstream, mas que ainda suporte fielmente os princípios de OO, o Python é uma boa aposta. Java e C # também são decentes se você deseja digitar estática.
Porém, uma palavra de cautela: o idioma não lhe ensinará OO. Ele só pode ajudar (ou dificultar) o quão bem ele suporta os conceitos de OO. Aprender OO é realmente aprender a pensar em termos de OO. Por isso, voltaria ao livro de Meyer.
hth.
fonte
Você pode aprender qualquer uma das linguagens orientadas a objetos, como C ++, Java, C # etc. para experimentar o OOPS.
Se você realmente deseja aprender OOP, precisa pensar além das linguagens e entender que é um paradigma que ajuda a complexidade do mangá envolvida em programas de software, exatamente como os gerenciamos no mundo real. Em seguida, aprenda os conceitos básicos em OO, como polimorfismo, herança, encapsulamento (PIE) etc.
Existem bons livros sobre Análise e Design Orientados a Objetos com Aplicações (2ª Edição), de Grady Booch
Além disso, você pode experimentar blogs como este, que eu achei simples o suficiente para começar- fascinatingoops.com
fonte
Você quer aprender OOP? Uma resposta - Smalltalk.
É uma linguagem elegante e é essencial para o OO. Você aprenderá POO desde o início e não será prejudicado por todas as outras distrações que outros idiomas conseguem incorporar.
Smalltalk vence. E também existem alguns e-books gratuitos gratuitos (veja: Stephane Ducasse )
fonte
Você precisaria aprender C ++, ou talvez um dos antepassados como Smalltalk. O C ++ oferece uma separação clara entre conceitos como orientação a objetos, gerenciamento de memória e referência versus valor, além de oferecer forte suporte genérico.
Não aprenda Java ou uma linguagem .NET como C #. Quando você aprende uma linguagem como Java, aprende coisas como "Os objetos estão sempre na pilha e sempre são referências", o que é verdadeiro apenas para Java e absolutamente não verdadeiro para OOP em geral. Essa fusão de conceitos (orientação a objetos, gerenciamento de memória, referência versus valor) é muito perigosa para um primeiro idioma, porque uma vez que você os prende na cabeça, pode ser muito difícil recuperá-los. C # é um pouco melhor nesse sentido, mas não muito. Além disso, eles podem ter uma alta tendência a ensinar "A herança é um martelo e tudo é um prego", com um fraco suporte de programação genérica.
fonte
A melhor maneira de aprender conceitos de POO é escrever cada vez mais código e revisá-lo com frequência. A prática faz de um bom programador.
Pense em cenários do mundo real, defina uma declaração de problema - resolva-a em código e faça uma revisão. Você sempre pode obter ajuda em /codereview// para obter comentários :)
Feliz codificação !!!
fonte
Passos
fonte
Meu primeiro contato com o mundo OO foi C ++, o que não foi um começo ruim. Mas eu melhorei muito ao aprender Python. A diferença vem das linguagens: experimentar idéias ('como posso resolver esse problema de maneira OO?') Em C ++ precisa de mais código para ser escrito e inclui muito mais armadilhas do que tentar a mesma idéia em Python. Então, eu recomendaria Python.
fonte
Eu não acho que você deva procurar outro idioma enquanto tenta aprender OOP. Para mim, é mais fácil entender a teoria e aprender a aplicá-la, se eu puder me relacionar com algo que já conheço. Descobrir uma nova sintaxe apenas atrapalha.
Você pode começar com qualquer livro de POO. Mais uma vez, eu pegaria um no meu idioma de escolha. A leitura de um livro sobre refatoração (estilo OOP) me ajudou na aplicação do OOP. Peguei um projeto existente (sem distração da coleta de requisitos) e encontrei novas maneiras de aprimorá-lo. Não foi apenas POO por POO. Depois, você pode aprender como fazê-lo do início ao fim em um novo projeto. A lógica aqui é que você nem sempre acertará desde o início. Se você conseguir reconhecer onde é apropriado, estará melhor. Como a maioria das coisas, não vai resolver todos os problemas.
Existem limitações definidas em alguns idiomas. Se seu objetivo é ser o mestre da herança múltipla, o .NET está fora.
fonte
Eu vou contra o pensamento convencional aqui e sugiro que os idiomas mais fáceis de usar OOP não sejam necessariamente os melhores para aprender . Fui exposto pela primeira vez ao OOP com C ++, mas não o "compreendi” até ler o capítulo do livro Camel de Larry Wall sobre OOP com Perl. Por alguma razão, tive problemas para entender a diferença entre classes e objetos até ter que explicitamente abençoar um objeto em uma classe. Eu realmente não entendi a implementação subjacente do OOP até fazê-lo em C com GObject, onde nenhum desses detalhes está oculto. Eu realmente não entendi as melhores práticas até participar de uma aula corporativa independente do idioma. É um tópico muito grande,.
fonte