| FAQ Lite | ||||||||||||||||
| Aprendendo OO/C++ | ||||||||||||||||
|
||||||||||||||||
| [ 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. |
| [ 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. |
| [ 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. |
| [ 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:
|
| [ 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.
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. |
| [ 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:
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ê. |
| [ 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. |
| [ 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. |
|
| | Home | Bookmarks | Universidades | Para Saber mais | Universidades | WEB Directory | Mapa do site | | |