A Arte da Programação de Computadores - Ler ou não ler? [fechadas]

62

Existem muitos livros sobre programação lá fora, e parece que o Code Complete está no topo da lista da maioria das pessoas de "livros de programação obrigatórios", mas e sobre A Arte da Programação de Computadores por Donald Knuth? Eu sou uma pessoa ocupada, entre o trabalho e uma família jovem, eu não tenho muito tempo livre, então eu tenho que ser exigente sobre como eu uso isso.

Eu estou querendo saber - alguém aqui leu 'TAOCP'? Em caso afirmativo, vale a pena reservar algum tempo para ler ou algum outro livro ou programação mais on-the-side, como projetos favoritos ou contribuir para o código aberto, seria um uso melhor do meu tempo em termos de desenvolvimento profissional?

ISENÇÃO DE RESPONSABILIDADE - Para aqueles de vocês que usam camisetas do tipo "Knuth é meu homeboy", não me interpretem mal - eu quero lê-lo, mas eu só estou querendo saber se ele deve estar no topo do meu lista de prioridades ou se alguma outra coisa vier em primeiro lugar.

    
por Zannjaminderson 05.11.2010 / 21:27
fonte

15 respostas

69

O TAOCP é uma referência absolutamente inestimável para entender como as estruturas de dados e os algoritmos que usamos todos os dias funcionam e por que o trabalho, mas aceitar lê-lo de capa a capa seria um investimento extraordinário do seu tempo.

Como um homem de família para outro, passe o tempo com seus filhos.

    
por 05.11.2010 / 21:31
fonte
22

Substitua "a enciclopédia" na sua pergunta por cada referência ao TAOCP, e acho que a resposta deveria ser óbvia. Porque, em muitos aspectos, é isso que o TAOCP é.

Há uma história (possivelmente apócrifa) sobre Steve Jobs encontrando Knuth. A primeira coisa que Jobs disse a ele foi "É um prazer conhecê-lo, Dr. Knuth. Li todas as suas obras!". A resposta de Knuth foi "Você está cheio de merda": link

    
por 05.11.2010 / 21:41
fonte
19

Não, não deve estar no topo da sua lista de prioridades. Eu tenho um conjunto completo e eu não li a coisa toda. Eu usei (até agora) como uma boa referência em certos problemas (foi inestimável em minha compreensão da aleatoriedade e do teste de geradores aleatórios, por exemplo). Sempre que surge um tópico de CS que eu não tenho um bom controle, eu costumo pegar o pouco relevante de TAOCP como um bom passo na minha compreensão.

Se você decidir lê-lo, mais poder para você, e eu definitivamente recomendo levá-lo em pequenos pedaços. Não tenha medo de pular e olhar o que for mais interessante primeiro.

    
por 05.11.2010 / 22:17
fonte
8

O TOACP é uma leitura essencial - em algum momento. Dependendo do que você faz diariamente, pode não ser o mais urgente.

É um daqueles livros (bem, coleções de livros) que é bom ler no começo de sua carreira porque realmente te dá uma boa visão que você normalmente não faria até mais tarde, mas não é essencial para a sobrevivência até você se formar. para aquela parte da sua carreira onde você não apenas codifica, você escolhe a caixa de ferramentas. Este é o ponto onde você realmente quer estudar algoritmos, esperançosamente já entende um pouco o design da linguagem, e tem uma compreensão muito ampla de quais ferramentas, linguagens e sistemas estão por aí, e como cada um se encaixa no ecossistema de coisas que você pode desenhar em um projeto em particular.

Em outras palavras: é o aprendizado do quadro geral, então se você é obsessivo como eu lê-lo agora, se você não é, não há problema em adiar até que você comece a ansiar por subir a escada e se tornar uma grande figura cara.

    
por 05.11.2010 / 22:37
fonte
6

O trabalho seminal de Knuth é a referência mais popular que os programadores pretendem ler, ou terminar de ler. Algum dia.

    
por 24.11.2010 / 10:14
fonte
5
Tendo recentemente empreendido esta tarefa, posso dizer que o modo como ele escreve é muito agradável e os problemas são rotulados (de acordo com a dificuldade) muito apropriadamente. Pegue o primeiro volume e leia os capítulos 1 e 2 e veja como você gosta dele.

    
por 05.11.2010 / 21:37
fonte
5

O TAOCP é um excelente trabalho, mas a leitura seria um investimento terrível para um desenvolvedor de software praticante. Se você fizer isso, você estará sacrificando alguns anos (isso é quanto tempo vai demorar) do seu orçamento de auto-aperfeiçoamento profissional para aprender muito sobre muito pouco.

Eu recomendaria trabalhar com um ou vários livros menos "definitivos" sobre algoritmos. Meu favorito nessa área é O algoritmo Manual de Design de Steven S. Skiena

Então, se você acha que precisa / quer mais, vá até o Knuth.

Ao mesmo tempo, você pode comprar um ou vários volumes de TAOCP, verificar quais áreas o Knuth cobre nele e mantê-lo em sua biblioteca, caso você precise realmente de algumas informações dele em sua agenda. trabalho diário. Meu palpite é que você não faria e essa é outra razão pela qual eu não aconselho tentar ler. Mas se você vai se encontrar referenciando com bastante frequência, então você saberá que vale a pena o seu tempo para lê-lo de capa a capa.

    
por 05.11.2010 / 23:02
fonte
3

+10 no comentário da família / filhos. Eu tento fazer a maioria das leituras enquanto persisto em voos com olhos vermelhos para os clientes.

Mas ... sim, vale muito a pena ler. Não há razão para ler linearmente, em vez disso, leia e escolha alguns tópicos de interesse.

    
por 05.11.2010 / 21:40
fonte
3

Estou firmemente no grupo de pessoas que sentem que todo desenvolvedor deve fazer o investimento para conseguir os livros em algum momento (e está ficando mais fácil agora que parece que eles estão sendo reprinted em paperback ), mas da mesma forma, eu também seria duramente pressionado para acreditar que alguém iria se sentar e lê-los todos de capa a capa. / p>

A melhor abordagem para eles - se você não tiver que ir para o trabalho onde tem tempo livre para sentar e ler - é ler o suficiente deles para saber onde encontrar coisas e depois ler um capítulo completo. sempre que você se encontrar usando-os como livros de referência para um determinado problema. Com o Google e o Stack Overflow, não é tão comum encontrar livros de referência, mas, em alguns casos, você pode descobrir que os livros fornecem algumas dicas de que você precisaria enviar algum tempo extra pesquisando na Internet.

    
por 06.11.2010 / 19:39
fonte
3

Não se esqueça de que, no começo, Knuth queria escrever algo sobre como escrever um compilador.

Você pode obter muitas informações na net com a wikipedia, por exemplo, mas se você não for um pesquisador, apenas leia o resumo, você terá satisfação.

Você ainda pode obter o primeiro volume para poder lê-lo quando estiver entediado ...

    
por 26.02.2011 / 13:03
fonte
2

Provavelmente, é mais importante que você faça os problemas no livro do que acabou de ler. Isso vai exigir muito tempo.

Ele tem até 4 volumes e 5 fascículos (seja lá o que for), então completar os livros provavelmente seria melhor que um curso universitário nos fundamentos da ciência da computação e torná-lo quase o melhor programador de todos os tempos .

Desde que você tem uma família jovem, como eu, você me deu uma idéia muito bonita. Eu compraria os livros um de cada vez e ensinaria através deles para seus filhos.

    
por 05.11.2010 / 21:33
fonte
1

Se você está curioso, então faça, mas leva algum tempo para digerir, então você precisa gastar seu tempo.

Você tem um trajeto para ler, o que seria perfeito.

EDIT: Você pode achar esta prévia de uma pequena parte do Volume 4 interessante: link

(nota: postscript comprimido)

    
por 05.11.2010 / 21:54
fonte
1

Não é algo que a maioria das pessoas vai querer sentar e ler capa a capa, não. É uma referência incrivelmente valiosa, e é certamente bom pegá-la, escolher uma seção interessante, ler sobre ela e fazer alguns exercícios. Mas as comparações da enciclopédia feitas acima são bem adequadas ... são grandes, extensas e detalhadas. E alguns dos "exercícios" são problemas de pesquisa que podem levar anos para serem resolvidos.

Se você quer apenas um melhor conhecimento de algoritmos de baixo nível, pode ser melhor começar com os livros de Robert Sedgewick (por exemplo, "Algoritmos em C", "Algoritmos em Java", etc.).

    
por 06.11.2010 / 19:25
fonte
1

Se você quiser mudar o mundo, leia-o. Se você quer aprender novos hacks, então não leia.

    
por 05.01.2011 / 23:48
fonte
1

O TAOCP de Knuth é uma obra-prima. Mas, assim como qualquer obra-prima (como "Illiad", "Guerra e Paz" ou "A Busca do Tempo Perdido" de Proust), não é para todos ou para todo o sempre.

O livro é muito bem escrito e muito bem pesquisado. Os problemas são grandes e a explicação dos algoritmos é bem feita.

O grande problema do livro é o fato de Knuth mostrar o código de uma linguagem de montagem fictícia para um computador fictício. Eu entendo porque ele fez isso, mas o fato é que é uma droga.

Eu recomendo usar este livro como uma bíblia. Quando precisar, procure por ele. Você encontrará a resposta. Aconteceu comigo mais de uma vez!

    
por 26.02.2011 / 02:21
fonte

Tags