Nossa estante de livros é um programador de C #. E você?

Oi

Os futuros alunos da Veeam Academy costumam nos perguntar sobre livros que seriam úteis na preparação para o curso de programação em C #. Geralmente recomendamos várias fontes, acompanhando-as com nossos comentários sobre por que elas serão úteis.

No entanto, a maioria dos livros de programação tem mais de 1 mil páginas e a leitura "de capa a capa" levará mais de um mês e, possivelmente, mais de um ano! Portanto, todas as nossas recomendações para os candidatos da Veeam Academy servem apenas como orientação e não como requisito obrigatório.

Com o tempo, resumimos nossos comentários sobre cada uma das publicações e, eventualmente, conseguimos uma lista de, ao que parece, bons livros para o crescimento profissional de um programador de C #.
Apresentamos nossa breve visão geral sob o corte.

imagem

Abaixo está uma visão geral dos seguintes livros:

  1. J. Richter. CLR via C #
  2. Stephen S. Skien. Algoritmos Guia de desenvolvimento
  3. Joe Albahari. Rosqueando em c #
  4. Itzik Ben-Gan. Microsoft SQL Server 2012. Noções básicas de T-SQL
  5. J. Skeet. C # para profissionais. As sutilezas da programação
  6. Joe Duffy. Programação simultânea no windows
  7. Eric Freeman e outros Head First. Padrões de design
  8. Sergey Teplyakov. Padrões de design do .NET

J. Richter. CLR via C #

Richter
Ler Richter é como pintar as paredes de uma sala de branco. Eu li uma vez - pintado em uma camada. Nesse caso, uma camada geralmente não é suficiente - a tinta nem sempre fica lisa e não fica tão brilhante quanto gostaríamos - então é melhor passar por cima e corrigi-la com outra camada e, com o tempo, tingir lugares individuais. Em geral, quanto mais camadas, mais branca a sala!

Toda vez que você lê Richter, descobre algo novo. E o ponto não é que as edições atualizadas deste livro saiam com intervalos regulares (que, a propósito, falam de sua grande popularidade). Mesmo lendo a mesma versão, você encontra lugares interessantes devido à profundidade e amplitude com que o material é apresentado.

Muitas pessoas chamam este livro de "bíblia" e "alfabeto" para programadores de C #. No entanto, vale ressaltar que ele presta pouca atenção a uma linguagem de programação específica - a ênfase está na plataforma .Net e nos princípios básicos de sua operação.

Portanto, ele ainda não pode ser considerado um livro C # (no sentido geralmente aceito para iniciantes), mas podemos dizer que este é um livro obrigatório para qualquer desenvolvedor .Net profissional. No entanto, mesmo no momento em que você está apenas iniciando sua carreira, Richter definitivamente ajudará a evitar muitos erros e permitirá que você escreva programas com mais eficiência, pois entenderá melhor a plataforma.

Então, o que há dentro:

Cerca de 1.000 páginas de texto fascinante sobre a estrutura interna do CLR (Common Language Runtime Environment) do Microsoft .NET Framework, escritas em linguagem simples e amigável, reconhecidas por um especialista em programação, Jeffrey Richter.
Os capítulos são divididos em subtópicos relacionados, mas podem ser lidos (e até necessários) não sequencialmente. Cada capítulo possui links para outros capítulos, o que facilita a leitura em partes e permite que você não se demore demais em tópicos que agora parecem particularmente difíceis ou desinteressantes.

Também nas páginas deste livro, você encontrará respostas para a maioria das perguntas que eles gostam de fazer nas entrevistas em C # e .Net.

Para profissionais com experiência em programação para a plataforma .Net, este livro não precisa de publicidade. Para iniciantes, é altamente recomendável não adiar o conhecimento dela em uma caixa comprida!


Stephen S. Skien. Algoritmos Guia de desenvolvimento

Skiena
Se você já possui um curso universitário geral em algoritmos básicos e precisa aprimorar os pontos principais em pouco tempo, este livro é um dos melhores.

Este não é um livro didático, mas um guia para o desenvolvimento efetivo de algoritmos na prática. O livro se destaca por uma apresentação muito boa e acessível, repleto de links para a literatura moderna e exemplos úteis. Particularmente instrutivas são as seções em "Histórias de vida", nas quais o autor conta como encontrar soluções adequadas para as tarefas difíceis que enfrentou em sua carreira.

O livro consiste em duas partes. A primeira parte permitirá que você lembre rapidamente os pontos principais do curso sobre algoritmos (complexidade, tipos de estruturas de dados, classificação, trabalho com gráficos, pesquisa combinatória, programação dinâmica etc.). Aqui você receberá recomendações práticas sobre o desenvolvimento de algoritmos.

A segunda parte é um catálogo de estruturas e problemas algorítmicos que ajudarão você a encontrar uma solução para o problema encontrado no trabalho. Muitos exemplos e links úteis são fornecidos e as implementações de software existentes são listadas.

imagem

Joe Albahari. Rosqueando em c #

Multithreading é um dos tópicos mais difíceis que um desenvolvedor moderno enfrenta, independentemente da linguagem de programação escolhida. Este tópico é especialmente importante ao escrever sistemas distribuídos altamente carregados, portanto, em
As academias de multithreading da Veeam prestam atenção especial.

O site de Joe Albahari é um bom lugar para se familiarizar com este tópico, que contém material estruturado dos capítulos relevantes sobre multithreading no ambiente CLR de seu livro.
C # em poucas palavras .

Aqui você encontrará exemplos de como trabalhar com fluxos: iniciar, finalizar, interromper, bloqueios, sincronização, contextos de sincronização, etc. Além disso, são discutidos os recursos de streaming .NET (pools de encadeamentos, métodos assíncronos), LINQ paralelo, estruturas SpinLock / SpinWait e muito mais.

Se você quiser aprofundar um pouco mais, recomendamos o livro de Joe Duffy, cuja visão geral é apresentada abaixo.

Itzik Ben-Gan. Microsoft SQL Server 2012. Noções básicas de T-SQL

Ben-gan
Este livro sobre os fundamentos do T-SQL será útil para desenvolvedores iniciantes e experientes que há muito tempo estão familiarizados com essa linguagem. O livro se distingue pela simplicidade da apresentação. Além de consultas SQL básicas, também são abordadas expressões de tabela, funções de janela e outros tópicos. Cada capítulo é acompanhado por um grande número de exemplos e exercícios para consolidar o material.

O autor não ignora a teoria, mas não sobrecarrega a apresentação com teoremas e provas.

Mesmo depois de muitos anos trabalhando com SQL, você certamente descobrirá algo novo para si mesmo, além de poder atualizar e organizar seu conhecimento.

J. Skeet. C # para profissionais. As sutilezas da programação.

Skit

Este livro tem muitas resenhas excelentes e não é coincidência. O autor escolheu um estilo semelhante ao usado pelo fundador da linguagem C ++, Bjorn Straustrup, em sua obra “Design e evolução da linguagem C ++”. Este livro fala sobre os princípios básicos da criação e desenvolvimento da linguagem C #, mostra sua evolução de versão para versão, fornece uma explicação de por que a linguagem recebeu essa ou aquela oportunidade. Tudo isso, em última análise, forma uma imagem integral da percepção da linguagem C #. O livro também contém conselhos e experiência prática do autor.As sutilezas da linguagem são reveladas graças a inúmeros exemplos. É dada muita atenção ao tópico LINQ.

O trabalho de J. Skeet não é nada parecido com o livro de Richter, embora também seja escrito em detalhes sobre os recursos da implementação interna do C #. Vimos que este livro, emparelhado com Richter, será uma excelente ferramenta para um estudo aprofundado do C # e do .NET Framework.

Uma das opiniões pode ser lida

aqui

Joe Duffy. Programação simultânea no windows

Duffy

Ao ler o trabalho de Joe Duffy, você pode "ferver", mas o esforço vale a pena. Este é um dos livros mais importantes sobre multithreading no Windows. Um tópico sério, um volume decente (mais de 1000 páginas) e uma imersão profunda nos detalhes de baixo nível do multithreading podem não ser a leitura mais fácil. No entanto, qualquer desenvolvedor que queira escrever código eficiente, tolerante a falhas e escalável (nativo gerenciado - gerenciado e não gerenciado) para Windows não deve passar por aqui.

Apesar de o livro ter sido publicado há dez anos, ele abrange quase todos os tópicos relacionados ao multithreading: algoritmos básicos e primitivas de sincronização, modelos de programação assíncrona no .NET, modelos de memória, sem bloqueio e muito mais.

O livro combina teoria e práticas recomendadas com muitos exemplos de uso da API Win32 e .Net e também contém exemplos de algoritmos e estruturas de dados que você pode usar em seu código.

Além do multithreading, o livro de J. Duffy ajudará a entender melhor como o Windows, o CLR e o .NET Framework funcionam e responderá à pergunta "por que".

Nota: A Biblioteca Paralela de Tarefas (TPL) não é abordada aqui, pois a TPL ainda não foi liberada naquele momento. Para uma introdução ao TPL, você pode recomendar Stephen Cleary.

Eric Freeman e outros Head First. Padrões de design

Frimen

Se você ainda não tem muita experiência trabalhando com padrões de design, mas gostaria de corrigi-lo e, ao mesmo tempo, consolidar seu conhecimento em OOP, este livro pode ser muito útil. É decorado com um estilo bastante incomum (embora tradicional para a série de livros Head First) - contém um grande número de fotos, missões e descrições informais, é repleto de um grande número de exemplos, enquanto é escrito sem água e é muito fácil de ler.
Simultaneamente com a análise dos padrões mais populares e os diagramas UML correspondentes, aqui, juntamente com a narração, são explicados os princípios básicos da OOP.

Não fique confuso que os exemplos de código estão em Java. Todos eles são bastante simples, e até mesmo um desenvolvedor iniciante pode descobrir com facilidade. Este é apenas o caso quando os desenvolvedores de C # acham útil dar uma olhada no livro Java.

Sergey Teplyakov. Padrões de design do .NET

Teplyakov

Ao contrário do restante da literatura incluída em nossa revisão, este livro foi originalmente escrito em russo e, portanto, desprovido dos inconvenientes inerentes às traduções mais modernas do inglês. No entanto, suas vantagens não param por aí.

O livro foi escrito por um desenvolvedor de C # para desenvolvedores de C #, o que implica que você possui conhecimentos básicos de OOP. O autor compartilha sua experiência, considerando o clássico e o mais adequado para as formas da plataforma .NET de implementar cada padrão. Nesse caso, os prós e contras de cada método são analisados.

Ao longo do livro, a possibilidade de usar os padrões considerados é demonstrada por um único exemplo, que permite criar uma imagem holística do mundo dos padrões.
Você pode ler mais sobre o livro aqui.

E como você complementaria essa lista?

Source: https://habr.com/ru/post/pt417691/


All Articles