Como devo atualizar meu C ++ com os desenvolvimentos modernos? [fechadas]


9

Como devo atualizar algum C ++ muito enferrujado, pois tenho certeza de que a linguagem e as práticas recomendadas evoluíram? Sei que isso pode estar quase fora de tópico, então deixe-me esclarecer alguns detalhes. Há cerca de dez anos, eu acho que era um bom programador de C ++, havia devorado os livros de Scott Meyers, conseguia resolver os quebra-cabeças nos anúncios de fiapos no Dr. Dobbs. Eu provavelmente era um pouco de advogado de línguas. Eu tenho programado principalmente Java, alguns python nos últimos 10 anos, então minhas habilidades em OO ainda estão completas. Mas, tendo ingressado em uma empresa onde o C ++ é comum, percebi que tenho que admitir que estou muito enferrujado, e agora há recursos de linguagem que são novos ou muito mais comuns do que me lembro - coisas como namespaces etc.

Sei que ler e escrever código (especialmente o emparelhamento) é uma boa maneira de acelerar, mas existem outros recursos que as pessoas recomendariam para me dar um avanço acelerado. Livro? Página da web? Tutoriais?

Para resumir:

  • Recomendações para recursos de atualização específicos para C ++?
  • Não OO / programação em geral.
  • Coisas além de apenas ler e escrever código.

Respostas:


10

Se você "devorou livros de Scott Meyers ", é muito mais que o cara comum que fez C ++ há 10 anos (IMHO). Obtenha a 3ª edição do Effective C ++ (e o livro C ++ Coding Standards de Sutter / Alexandrescu) para obter uma breve atualização e, na verdade, você deve estar pronto para começar.

As recomendações contidas nesses livros (originalmente em 2005, eu acho) são tão válidas hoje quanto antes.

Ah, e instale o boost se você ainda não o fez.

É uma sorte para você reiniciar em C ++, pois tenho certeza de que haverá muitos recursos e livros do tipo reinicialização este ano e no próximo quando o padrão C ++ 11 começar a se instalar.


Excelentes recomendações. Scott Meyers veio à nossa empresa no ano passado e deu a todos os nossos desenvolvedores um curso de atualização de dois dias sobre técnicas modernas de C ++. Ele sabe como o C ++ funciona no mundo real e não é apenas mais um acadêmico com teorias.
Karl Bielefeldt

2

1) comece com um compilador moderno que tenha recursos do c ++ 11 (assumindo que seu trabalho exigirá isso mais cedo ou mais tarde, se ainda não estiver)

2) pegue os programas existentes (talvez seus projetos de estimação) e atualize ou estenda-os para usar bibliotecas mais modernas (como bibliotecas padrão c ++ 11 ou boost ).

3) leia os últimos recursos do C ++. também há vários bons livros. Se você ainda não leu o Design Moderno de C ++ , eu o recomendaria. é um clássico para projetos avançados usando técnicas de c ++ que foram introduzidas e aperfeiçoadas durante sua ausência.

esse é um ponto de partida.


1

Usuario,

Eu sugiro que você se envolva com um projeto de código aberto. Você já viu o sourceforge ? Isso pode se aplicar a qualquer idioma, mas o principal benefício aqui é aprender com outros desenvolvedores enquanto contribui para um projeto de software. Você pode escolher alguns estilos interessantes e o uso de recursos de linguagem ao trabalhar em um projeto de código aberto. Alguns bons, alguns ruins, alguns .... simplesmente estranhos :).


4
Talvez eu tenha tido azar, mas os projetos de código aberto que eu vi continham o código mais horrível que eu já encontrei - eles poderiam ser usados ​​como exemplos perfeitos de como não escrever C / C ++. Portanto, se você decidir espiar o código-fonte aberto para aprender, sugiro que você escolha um projeto no qual muitos programadores estejam ativamente envolvidos. Tais projetos têm muito mais probabilidade de ter um código de boa qualidade.

1

Faça algum kata de código no c ++: torre hanoi, buffer de anel e esse tipo de coisa. Fazer isso será muito mais eficiente do que apenas ler livros sobre o assunto - embora, a leitura de livros o ajude a aprender coisas que você não sabia.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.