FAQ Lite
Aprendendo OO/C++

[ 26.1 ] O que é supervisão e aconselhamento?
[ 26.2 ] Devo aprender C antes de aprender C++?
[ 26.3 ] Devo aprender Smalltalk antes de aprender OO/C++?
[ 26.4 ] Devo comprar um livro, ou vários?
[ 26.5 ] Quais são alguns bons exemplares de guias de moralidade em C++?
[ 26.6 ] Quais são alguns bons exemplares de guias de legalidade em C++?
[ 26.7 ] Há outros livros sobre OO que sejam relevantes para OO/C++?
[ 26.8 ] Mas esses livros são muito avançados para mim, porque eu não conheço nenhuma outra linguagem de programação. Há algum outro livro que possa me ajudar?

[ 26.1 ] O que é supervisão e aconselhamento?

Um dos mais importantes recursos no aprendizado de OO.

Orientação a objeto precisa ser internalizada, não apenas discutida. Coloque-se-se ao lado de alguém que realmente conheça OO, saiba do que está falando, e tente internalizar o seu modo de pensar. Observe o seu modo de resolver os problemas, Ouça. Aprenda por emulação.

Se você trabalha para uma companhia, convença a administração a contratar alguém que possa atuar como mentor e guia. Temos visto muito dinheiro ser desperdiçado em companhias que, a pretexto de economizar dinheiro, limitam-se a dar um livro a seus programadores. - Aqui está o livro, leia-o no final de semana e já na Segunda feira você será um programador orientado a objeto.

Topo
[ 26.2 ] Devo aprender C antes de aprender C++?

Nem se incomode com isso.

Se o seu objetivo é aprender OO/C++ e você ainda não conhece C, ler livros ou assistir cursos de C não apenas vai desperdiçar o seu tempo, mas vai levá-lo a aprender muitas coisas que você terá que desaprender quanto finalmente retomar seus estudos de OO/C++. (Por exemplo, malloc(), printf(), comandos switch desnecessários, tratamento de erros e exceções, uso desnecessário de macros #define, etc).

Se você quer aprender OO/C++, aprenda diretamente OO/C++. Gastar tempo aprendendo C vai desperdiçar seu tempo e ainda confundí-lo.

Topo
[ 26.3 ] Devo aprender Smalltalk antes de aprender OO/C++?

Nem se incomode com isso.

Se o seu objetivo é aprender OO/C++ e você ainda não conhece Smalltalk, ler livros ou assistir cursos de Smalltalk não apenas vai desperdiçar o seu tempo, mas vai levá-lo a aprender muitas coisas que você terá que desaprender quanto finalmente retomar seus estudos de OO/C++. (Por exemplo, tipificação dinâmica, herança não-subtipificada, tratamento de erros e exceções, etc).

Conhecer uma linguagem orientada a objeto pura não torna a transição para OO/C++ mais fácil. Eu estou falando a partir de experiência (Paradigm Shift, Inc info@parashift.com tem treinado e supervisionado e acompanhado literalmente milhares de desenvolvedores profissionais em OO). De fato, a experiência com Smalltalk pode se mostrar uma dificuldade adicional para algumas pessoas: elas terão que desaprender algumas noções muito marcantes sobre tipificação e herança, mais ainda, terão que aprender nova sintaxe e novos artifícios de linguagem. Esse processo de desaprender e especialmente doloroso e lento para aqueles que se apegam ao Smalltalk com fervor religioso ("C++ não é como C++, logo C++ é ruim.")

Se você quer aprender OO/C++, aprenda diretamente OO/C++. Gastar tempo aprendendo Smalltalk vai desperdiçar seu tempo e ainda confundí-lo.

Nota: Eu participo tanto do comitê de padronização ANSI C++ (X3J16) quanto do ANSI Smalltalk (X3J20). E eu não sou um fanático por nenhuma linguagem em particular. Eu não estou dizendo que C++ é melhor nem que é pior que Smalltalk. Eu estou simplesmente dizendo que são diferentes.

Topo
[ 26.4 ] Devo comprar um livro, ou vários?

No mínimo dois.

Há duas categorias de percepção e conhecimento em programação usando C++. Você fará melhor negócio adquirindo um livro de cada categoria, ao invés de tentar encontrar um único livro que tenha tudo sobre tudo. As duas categorias de programação em OO/C++ são:

Guias de legalidade descrevem todos os recursos da linguagem com o mesmo nível de ênfase; guias de moralidade enfocam aqueles recursos da linguagem que você usa mais freqüentemente em tarefas típicas de programação. Guias de legalidade lhe dizem como fazer com que a codificação de um certo recurso seja aceita pelo compilador; guias de moralidade lhe dizem quando preferir usar ou não usar esses recursos.

Observações:

  • Nenhuma dessas categorias é opcional. Você deve ter um bom exemplar de ambas.
  • Essas categorias não se opõem uma a outra. Você não deve tentar compará-las. As duas são importantes.
Topo
[ 26.5 ] Quais são alguns bons exemplares de guias de moralidade em C++?

Aqui está minha lista pessoal (subjetiva e seletiva) dos guias de moralidade de leitura obrigatória, ordenados alfabeticamente por autor.
  • Cline and Lomow, C++ FAQs, 461 pgs, Addison-Wesley, 1995, ISBN 0-201-58958-3. Covers 470 topics in a FAQ-like Q&A format.
  • Meyers, Effective C++, Second Edition, 224 pgs, Addison-Wesley, 1998, ISBN 0-201-93488-9. Covers 50 topics in a short essay format.
  • Meyers, More Effective C++, 336 pgs, Addison-Wesley, 1996, ISBN 0-201-63371-X. Covers 35 topics in a short essay format.

Semelhanças: Todos esse livros são extensamente ilustrados com exemplos de códigos. Todos são excelentes e úteis. Todos são sucesso de vendas.

Diferenças: Os exemplos de Cline e de Lomow são completos, programas que funcionam ao invés de fragmentos ou classes isoladas. Meyers contém numerosos trechos de códigos que ilustram os tópicos.

Topo
[ 26.6 ] Quais são alguns bons exemplares de guias de legalidade em C++?

Aqui está minha lista pessoal (subjetiva e seletiva) dos guias de moralidade de leitura obrigatória, ordenados alfabeticamente por autor:
  • Lippman and Lajoie, C++ Primer, Third Edition, 1237 pgs, Addison-Wesley, 1998, ISBN 0-201-82470-1. Very readable/approachable.
  • Stroustrup, The C++ Programming Language, Third Edition, 646 pgs, Addison-Wesley, 1998, ISBN 0-201-53992-6. Covers a lot of ground.

Semelhanças: Ambos os livros são excelentes coberturas de praticamente todos os recursos da linguagem. Eu os revisei para o C++ Report, e eu disse naquela ocasião que ambos eram livros excelentes. Os dois tem excelente sucesso de vendas.

Diferenças: Se você não conhece C, o livro de Lippman é mais adequado para você. Se você já conhece C, e deseja cobrir uma grande quantidade de recursos do C++ rapidamente, o livro de Stroustrup é o mais indicado para você.

Topo
[ 26.7 ] Há outros livros sobre OO que sejam relavantes para OO/C++?

Sim, toneladas.

As categorias guias de moralidade e de legalidade listadas anteriormente destinan-se a programação orientada a objeto. As áreas de análise e projeto orientado a objeto também são relevantes, e têm os seus próprios livros.

Há toneladas e toneladas de bons livros nessas áreas. Em minha opinião pessoal, subjetiva e seletiva, o livro básico sobre padrões em projeto OO é: Gamma et al, Design Patterns, 395 pgs, Addison-Wesley, 1995, ISBN 0-201-63361-2. Descreve padrões que geralmente levam a bons projetos OO. Você deve ler esse livro se você pretende trabalhar com projeto OO.

Topo
[ 26.8 ] Mas esses livros são muito avançados para mim, porque eu não conheço nenhuma outra linguagem de programação. Há algum outro livro que possa me ajudar?

Sim.

Há provavelmente muito livros destinados às pessoas que são iniciantes em programação, mas aqui está um que eu li: Heller, Who's afraid of C++?, AP Professional, 1996, ISBN 0-12-339097-4. Note que você deverá complementar as informações desse livro com algum dos livros citados anteriormente e/ou com as seções desse FAQ que tratam de precisão const e tratamento de exceções e erros, já que esses tópicos não são cobertos nesse livro.

Topo Anterior Próximo Índice
C++ FAQ Lite
Copyright © 1991-98 by Marshall Cline Ph.D., cline@parashift.com
Tradução: Dagoberto Haele Arnaut

| Home | Bookmarks | Universidades | Para Saber mais | Universidades | WEB Directory | Mapa do site |