Existe uma vantagem para um programador C ter lido K&R? [fechadas]

10

Esta pergunta está me assustando porque agora estou lendo a Kernighan & Ritchie: The C Programming Language (K&R), mas eu conheço muitos, e quero dizer MUITO, programadores em C que nunca o leram.

Então, minha pergunta é: Existe uma vantagem em ler K&R? Deve ser uma necessidade?

Farouk Jouti
fonte
K&R foi escrito pelos caras que inventaram a linguagem C; por um longo tempo foi o único livro C disponíveis
Steven A. Lowe
Não. O livro K&R não é o único livro C já escrito. Dependendo de como você aprende, outro livro pode ser mais adequado para você.
user16764
1
@ StevenA.Lowe: Observe que ter criado e desenvolvido a linguagem não necessariamente fornece as melhores credenciais para escrever sobre ela. Por exemplo, Gosling disse notavelmente não se considerar um especialista em Java. E não tenho certeza se gosto tanto dos escritos de Stroustrup em C ++ em geral. Obviamente, eles sabem do que estão falando nas partes técnicas da linguagem, mas usá-lo ao máximo, definindo o estilo e tornando-o parte de um ecossistema viável é uma coisa completamente diferente. (embora eu acho que K & R fez isso surpreendentemente bem)
haylem
@ user16764: "não" para "deve ser uma necessidade?", espero que não "haja uma vantagem em ler K&R?"
haylem
@haylem: é claro. o livro K & R é muito bom, felizmente, mas não vejo nenhuma vantagem óbvia para lê-lo, em vez de ou para além de outros recursos C
Steven A. Lowe

Respostas:

15

Útil sim, necessário não. K&R não é a definição da linguagem C. É simplesmente um dos muitos textos introdutórios. Achei isso particularmente claro e conciso, mas outros leitores podem preferir outros textos. Simplesmente ter lido não o diferencia de outros programadores.

Charles E. Grant
fonte
então você está me dizendo que ler ou não isso não faz diferença?
Farouk Jouti
7
Ler K&R e fazer os exercícios é uma maneira perfeita de aprender o introdutório C. No entanto, existem muitos outros livros e recursos para aprender C, e ter escolhido K&R sobre um dos outros livros não demonstra por si só sua competência como programador. .
Charles E. Grant
7
Claro, você sempre pode aprender da maneira mais difícil .
9788 Robert Harvey
4
K&R removeu o medo de aprender para mim. É quase como se eles estivessem sentados ao meu lado, explicando as coisas em um bate-papo caseiro e amigável. Esse é o valor do "livro branco". (E eu aprendi que em 1985)
Rob
@ Rob: Sim, é um livro muito amigável e é muito acessível. Considero este um dos seus maiores ativos, juntamente com exemplos / exercícios muito claros.
haylem
8

Eu concordo com Charles E. Grant: não é necessário, mas vale a pena ler, e aqui está o porquê disso:

The Bad Stuff

  • É datado e, portanto, pode ser confuso.
  • Se você já conhece bem o C, não aprenderá muito.
  • Se você não é fã do estilo de código K&R, seus olhos podem queimar.

O terceiro ponto é insignificante e os 2 primeiros são relativamente indolores, pelo menos você sabe que a leitura não vai doer.

The Good Stuff

  • É uma boa introdução para programadores iniciantes, tanto para C quanto para programação em geral.
  • É uma boa leitura (como em: lê facilmente e está bem escrita).
  • Não se trata apenas do valor técnico, mas também do valor histórico. Se você pretende ser um especialista, é bom saber como a linguagem evoluiu; portanto, é bom dar uma olhada em um livro que existia não muito tempo depois de sua gênese e em um dos livros mais famosos da língua. C mudou. Não conhecer os bits antigos pode não ser útil se você não precisar usá-los, mas pode ajudar bastante se você encontrar um código mais antigo ou se se perguntar por que algumas coisas foram feitas de uma maneira ou de outra.
  • Novamente, é sobre a história. Ler "Hackers" de Steven Levy ou "Dealers of Lightning" de Hitzlick não me ensina nada de valor técnico, mas é anedótico. De alguma forma, acho que a K&R também é de grande valor nesse sentido.

Não é perda de tempo, então eu diria que pegue uma cópia em uma biblioteca local e deixe em sua mesa. Pegue-a em algum momento e você poderá se surpreender ao ver um pequeno buraco no continuum espaço-tempo ao levantar a cabeça novamente.

haylem
fonte
2
+1: concordo com "Se você já conhece bem o C, não aprenderá muito.", Mas muitos (se não a maioria) dos programadores de C que leram pela primeira vez descobriram que não conheciam o C tão bem quanto pensavam.
mattnz
1
@mattnz: Sim. (. Dito isto, eu tenho medo que não é específico para C e a este livro em particular Temos a tendência de pensar que sabemos as coisas melhor do que realmente fazemos.)
haylem
6

Sim, K&R é indispensável.

Você tem que ler, da mesma maneira que você lê Hamlet e O Senhor dos Anéis, da mesma forma que você vê Casablanca e Gone With The Wind e Star Wars.

É um livrinho fantástico. Ele mudou a programação e transformou a escrita técnica e, por uma geração, representou o auge do estilo.

O que você ganha por não lê-lo? Seis horas? Doze? Vinte? Se você é sério sobre programação, vai gastar milhares e milhares de horas lançando código. se você não consegue ler, o que mais você não pode fazer?

É perfeitamente possível que K&R não seja seu primeiro livro em C. E hoje em dia, C não deve ser seu primeiro idioma. Não é vital ler K&R primeiro, mas você precisa ler.

E por que você não gostaria? É divertido.

Mark Bernstein
fonte
1
É uma analogia ruim na minha opinião. Acho que as pessoas deveriam ler esses livros, mas, novamente, existem inúmeros livros e filmes que se deve ver, e vê-los ou não vê-los a grande maioria não será um forte indicador de nada. Além disso, isso é bastante específico da cultura, se você acha que todo mundo precisa ter lido. Você também assume erroneamente que o tempo que não está lendo K&R é desperdiçado. Você não sabe como a agenda do OP, pelo que sabe, talvez ele ou ela estivesse planejando usar esse tempo para outros 57 livros insubstituíveis que você NÃO mencionou.
haylem 6/09/13
1
Além disso, e embora eu tenha aconselhado algumas pessoas a começar com outras línguas além do C, sou um defensor de que deve ser ensinado cedo e bem ensinado. Basicamente, a única coisa com que posso concordar sinceramente em sua resposta é: "É um livrinho fantástico. Mudou a programação e transformou a escrita técnica, e por uma geração representou o auge do estilo". (embora eu não sou mesmo certo sobre a última parte que também parecia grosseiramente generalizada para mim)
haylem
1
Empurrando seu raciocínio, todos devem ler "Elementos da Álgebra" de Euler ou "Brāhmasphuṭasiddhānta". Afinal, eles mudaram de campo por causa de seu conteúdo e de sua forma e foram em algum momento o auge do estilo, provavelmente por mais algumas gerações. Certamente não lê-los é uma grande perda de tempo.
haylem
É 2019 e eu não li K&R e não assisti ou li nada na sua lista. Estou falando sério.
Ronnie
4

Sim.

Não é muito bom se você quiser saber como escrever programas usando as versões atuais do C, mas--

Explica muito claramente por que a linguagem parece e a intenção por trás de algumas das decisões básicas de design.

Se você for solicitado a documentar algo "A linguagem de programação C" é o exemplo absoluto de como fazê-lo. Bem organizado, claro, conciso e legível. Está escrito em inglês simples com um mínimo de jargão e zero chavões.

James Anderson
fonte
2

Não sei se você aprenderia algo diferente de K&R do que em outros livros em C, mas acredito que você pode aprender bastante sobre as pessoas ao ver quais livros elas preferem ler sobre um assunto.

  • K&R é um livro bem escrito e conciso, mas um pouco clichê como recomendação.
  • Meu favorito pessoal era Harbison & Steele , tão bem escrito quanto K&R, mas consideravelmente mais detalhado.
  • Se alguém preferir um livro da série “… for Dummies”, eu suspeitaria de sua dedicação ao ofício, não porque esses livros sejam tão ruins, mas porque eles não se aprofundam nos detalhes.
  • Se alguém jura por livros escritos por Herbert Schildt, eles têm vontade de entrar em detalhes, mas eu suspeitaria de seu julgamento nos livros que escolheram.

Em geral, não acho que o tempo gasto lendo um livro técnico de qualidade (e K&R seja definitivamente um, e não muito longo) nunca seja desperdiçado.

microtherion
fonte