Existe uma data de validade para livros bem conceituados, mas antigos sobre programação? [fechadas]

51

Depois de ler uma pergunta sobre livros que todo programador deve ler , pergunto-me se o seguinte deve ser considerado obsoleto:

Todos esses livros parecem muito antigos. Não há diferença entre a computação moderna e o que era atual quando esses livros foram escritos?

Por exemplo, meu professor de 61 anos explica as coisas muito bem, mas esquece de levar em consideração tudo o que foi feito entre quando ele começou a ensinar há 25 anos.

Não é o mesmo para aqueles livros? Não existem mais livros modernos que ensinam princípios e tecnologias mais próximos da prática atual? Ou você os considera úteis e relevantes até hoje?

Olivier Pons
fonte
9
Vale a pena considerar por que todos os títulos listados foram publicados pela primeira vez há pelo menos 12 anos, mas ainda são valiosos hoje. Quatro dos cinco foram atualizados desde a primeira edição, mas o tempo médio entre as edições é de 10,4 anos.
Caleb
83
Os princípios fundamentais de programação não mudam apenas porque há uma nova linguagem ou estrutura "sabor da semana".
Robert Harvey
26
Esperar que um graduado em ciências da computação crie um sistema de software complexo é como esperar que um graduado em engenharia civil crie uma ponte suspensa, isso simplesmente não deveria acontecer. A escola não ensina tudo o que você precisa saber a longo prazo; deve ensinar como aprender a ser um grande engenheiro de software, e esses livros antigos têm muito a dizer agora, como fizeram décadas atrás - acabou 16 anos desde a publicação da edição do 20º aniversário de The Mythical Man-Month, e hoje é tão relevante quanto o original em 1975.
Mark Booth
10
esses livros são atemporais; mas programador que iria limitar auto só para esses livros e quem iria ignorar coisas novas, seria obsoleto , na verdade
mosquito
4
Você está meio que implorando a pergunta: se os livros são bons, eles não são obsoletos.
quant_dev

Respostas:

92

Estes livros são sobre os princípios do desenvolvimento. Esses princípios são, por natureza, agnósticos de linguagem e, para alguns, até agnósticos de paradigma (POO, programação funcional, linguagens imperativas).

Eles explicam a teoria e as boas maneiras do desenvolvimento, porque, no final, o software sempre trata de obter dados, processá-los e depois devolvê-los. Facebook, Twitter, 3D, processo em lote de contabilidade, gerenciamento de tráfego ferroviário, lançamento de foguetes, etc.

Livros sobre uma linguagem, como "How to learn XXXXX in YY days", onde XXXXX é uma linguagem e YY é um número que eventualmente (e às vezes muito rapidamente) se tornará obsoleto, porque, por natureza, trata-se de coisas que evoluem ou são substituídas e se tornam desatualizado.

Code Complete , do incrível Steve McConnell, talvez seja o livro que me fez perceber isso. E o programador pragmático mudou totalmente a visão que eu tinha do desenvolvimento de software. Ao ler esses livros, você percebe que 95% do problema que enfrenta todos os dias já foi resolvido e que 95% de nós ainda está reinventando a roda.

A chamada "nuvem" não é o futuro do desenvolvimento de software, é uma maneira de usar software desenvolvido.

Não caia na armadilha de chavões exageradas / besteiras, concentre-se em como você pode melhorar suas habilidades de artesão de software.

Concentre-se em aprender com o que outros espíritos brilhantes inventaram e aprenderam antes de nós, porque é a única maneira de se tornar um desenvolvedor talentoso.

Clement Herreman
fonte
6
Bons artistas copiar grandes artistas roubam
hafichuk
16
... verdadeiros artistas são enviados. :-)
kindall
9
E, no entanto, não importa quantas vezes o digamos, as pessoas ainda acreditam que precisam de javascript em 12 dias.
Spencer Rathbun
2
Bons artistas copiam, grandes artistas copiam E mantêm o código limpo! (Eu tive tantas dores de cabeça na escola a trabalhar com outras crianças que fizeram uma bagunça do projeto porque eles copiar de tudo e de todos ...)
HTDutchy
Além disso, o @SpencerRathbun (IMHO), o Javascript consome muito mais farelo do que outras línguas, como o PHP. No entanto, há um bazilhão "Learn Javascript in 15 seconds"e apenas meio bazilhão de"Learn PHP on 17 secsonds"
Clement Herreman
80

Todos esses livros parecem muito, muito, muito antigos ".

Psicologia-Programação de Computadores (1971) - Com um milhão de vezes mais programadores do que em 1970, a psicologia de como eles projetam programas e que erros cometem e como evitá-los é mais importante do que nunca.

Ferramentas de Software (1976) - Com a Web sendo uma coleção de obras de estrutura, utilitários, scripts e plugins - as idéias nas Ferramentas de Software nunca foram tão relevantes.

EDIT: Para abordar a questão geral de - os livros de programação antigos são relevantes?

Os princípios gerais da engenharia de software não mudaram muito, existem novas tecnologias OO, TDD etc. Mas geralmente os usuários e os problemas não mudaram - e pensar em como dividir um problema é o mesmo agora. sempre foi.

Esses livros mais antigos geralmente eram escritos por especialistas da área. Muitos livros de programação modernos têm como objetivo apressar-se em um batente de porta de 2000 páginas para obter a última palavra da moda enquanto ela ainda está atual.

Os livros sobre idiomas e tecnologias que não são mais usados ​​provavelmente não são relevantes - nenhum manual do Vax assembler está na lista. Mas 'C' ainda é muito usado e 'O idioma de programação C' não é apenas o melhor livro sobre 'C'; é um modelo de como escrever um tutorial conciso e uma referência à sua linguagem.

Existem novos algoritmos? Sim. Mas todos os algoritmos antigos ainda são relevantes e a maioria dos novos está em áreas obscuras que é improvável que você encontre. Ninguém apresentou uma classificação melhor ou FFT recentemente. Embora outras pessoas tenham tentado explicá-las melhor, não há razão para que os livros de Algoritmos deste ano sejam melhores que o CLRS.

ps. Seu novo e legal iWhatsit roda o BSD, desenvolvido em 1977. Agora vocês caem do meu gramado!

Martin Beckett
fonte
28

Todos esses livros parecem muito, muito, muito antigos. Você não acha que há uma diferença entre hoje em dia e quando esse livro foi escrito?

IMHO não é uma surpresa que livros muito bons permaneçam populares por décadas - isso mostra como eles são bons. Mas acho que posso dizer uma coisa para cada um dos candidatos que você listou:

Code complete: 2nd edition = may, 2004

Na verdade, a primeira edição de "Code complete" foi de 1993, então esta é realmente um "clássico". É sobre o estilo básico de codificação, usando exemplos que se aplicam a quase todas as linguagens de programação da família C, que contêm as linguagens mais populares atualmente (C / C ++ / Java / C # / Objective-C / D / ...). Então, sim, este livro está atualizado.

Introduction to algorithms (Cormen, Leiserson, Rivest, Stein)

Bem, na verdade eu não li esse livro (meu livro de algoritmos era de "Sedgewick"), mas os algoritmos de aprendizado e a construção de algoritmos são realmente independentes da linguagem. Obviamente, esse ofício está ficando subestimado nos últimos anos, pois hoje em dia você encontra muitos algoritmos básicos em bibliotecas padrão, mas IMHO todo programador profissional deve ter algum conhecimento básico nesse campo.

The Pragmatic Programmer

Este é um livro muito bom sobre programação como artesanato. Linguagem independente e muito, muito atualizada, desde que a programação seja feita pelos programadores como uma tarefa manual, usando editores de texto, IDEs, controle de versão etc.

Structure and Interpretation of Computer Programs: = September 1, 1996

Esse é o meu favorito, mesmo que (ou talvez porque) o livro use Scheme para ensinar as diferenças entre diferentes paradigmas de programação. Não conheço nenhum outro livro que tenha um foco tão forte na construção de abstrações. E criar abstrações é uma habilidade essencial que faz a diferença entre um programador medíocre e um programador de topo - que não mudou nas últimas décadas; portanto, realmente, este livro é atemporal. Além disso, linguagens funcionais e elementos de linguagem tornaram-se mais populares recentemente, então IMHO as idéias apresentadas neste livro renasceram.

The C Programming Language

Bem, este livro pode não ser tão atemporal quanto os outros quatro. Mas como C é algo como a "mãe" de todos os idiomas populares que listei acima, também pode ser uma boa ideia ler este livro - acho que não existem alguns livros "C" modernos que sejam realmente melhores. E se você tiver que fazer a programação de manutenção do código C ++ que foi escrito por alguém que conhecia C melhor que C ++, este livro é obrigatório.

Por fim, você estava pedindo livros que levassem mais em conta a "realidade atual", sem ser muito específico da tecnologia. Então, qual é a "realidade atual" e o que mudou no lado "não tecnológico"? Aqui estão alguns pontos da última década, sem dizer que esta lista está completa ou com os prioridades certos.

  1. Existem mais códigos herdados (especialmente mais códigos herdados, não apenas no Fortran e Cobol, mas também em C ++ e Java).
  2. Teste de unidade e TDD se tornaram mais favoritos.
  3. Há muito mais código-fonte aberto disponível.
  4. OO ganhou cada vez mais críticos

(Não listo aqui nada sobre o desenvolvimento da Web ou de aplicativos, porque acho que essa tecnologia é específica).

Existem bons livros para os tópicos 1 e 2, especialmente "Código Limpo" , que é de 2008, e "Trabalhando efetivamente com o código legado" de 2004. Talvez esses sejam alguns dos livros "mais recentes" que você está procurando?

Doc Brown
fonte
5
A linguagem de programação C é atemporal. Um livro tão destilado é raro. Eu o reli pela primeira vez ... não sei, perdi a conta (li pela primeira vez aos 13 anos) e ainda aprecio isso. Em vez disso, agradeço muito mais agora.
Francesco
3
Vou adicionar o número 5 à sua lista: computação paralela. Não é exatamente uma idéia nova , mas atualmente está sendo realizada em uma escala sem precedentes, o que traz novos problemas. Mas tudo isso ainda é construído sobre as mesmas bases que as coisas antigas, e sinto que o OP ainda não entende essas fundações.
Mike Baranczak
2
@ Mike: Eu concordo, a computação paralela está recebendo cada vez mais atenção na última década, eu perdi quando escrevi minha resposta.
Doc Brown
2
@Doc Brown Seus pontos de vista sobre a atemporalidade da literatura devem ter sido visitados em 1885, 1955, 1985 e 2015 dentro de alguns dias, a partir de sua própria perspectiva?
precisa saber é o seguinte
13

Dos que você mencionou "Código completo", "O programador pragmático" e "SICP" estão na minha lista de leitura recomendada para todos os novos desenvolvedores que começam aqui na minha empresa e desejam chegar a um nível superior.

Eles não são obsoletos a longo prazo, porque a ciência fundamental em Ciência da Computação não mudou.

Joris Timmermans
fonte
10

Não li todos esses livros, mas possuo o Code Complete e o Pragmatic Programmer. Esses livros estão longe de serem obsoletos. Eles podem ter alguns parágrafos um pouco enferrujados, mas a maior parte do conteúdo ainda é relevante hoje.

O avanço em Ciência da Computação e Programação é um processo evolutivo . Novas abstrações estão sendo introduzidas sobre as antigas, mas essas coisas novas não tornam obsoletas as antigas.

Uma analogia ... Se você está estudando para ser um cirurgião de trauma ou um cirurgião especializado em transplante de coração, ainda precisa saber como o corpo humano funciona, química celular, sistemas orgânicos, como abrir o peito e como rapidamente pare de sangrar se ocorrer, etc ... Só porque eles inventaram equipamentos endoscópicos e técnicas menos invasivas, isso não significa que você está fora do gancho para aprender o básico. Significa apenas que você precisa aprender mais.

c_maker
fonte
Sim, a anatomia de Gray (o livro real, não o programa de TV) foi escrita em 1918 e os estudantes de medicina ainda a usam.
HLGEM
7

A "nuvem" não é um fator. A "nuvem" é realmente muito mais antiga que a maioria dos livros que você listou. a maioria desses livros trata de princípios fundamentais, eles realmente nunca mudam com frequência. Estruturas e bibliotecas mudam o tempo todo, mas como você deve estruturar seu código não muda muito. Da mesma forma, um ponteiro ainda é um ponteiro e não começa a fazer coisas diferentes apenas porque. O único livro específico do idioma que você listou é sobre C; nesse caso, esse livro antigo é muito mais útil do que qualquer coisa nova, porque provavelmente foi escrito mais perto do período em que qualquer código C com o qual você trabalharia foi desenvolvido.

Ryathal
fonte
6

A lista que você citou, não, eles não são obsoletos. Um livro é obsoleto apenas quando o assunto mudou o suficiente para que não seja útil. A natureza da programação e a linguagem C mudaram muito pouco desde a publicação

Tom Squires
fonte
6

Uma das coisas que você precisa entender é que existem princípios subjacentes que são essencialmente atemporais e implementações que tendem a ir e vir.

Os princípios subjacentes são essencialmente toda a teoria chata em que a Ciência da Computação tende a gastar muito tempo, e isso continua sendo válido, mesmo que o mundo mude ao seu redor. Isso por oposição a coisas como "Como usar o Win32s no Windows 3.11", que é muito antigo e desatualizado.

Para colocar as coisas em perspectiva - o texto canônico sobre geometria tem dois mil anos. A maioria das aulas de matemática ensinadas até o nível superior tem pelo menos 300 anos. A única razão pela qual os livros de CS não são mais antigos é porque o campo ainda é novo.

user1249
fonte
A proposição 1 de Euclides do livro 1 não pode ser comprovada a partir das definições, axiomas e postulados fornecidos. Não é uma boa opção para aprender nos dias de hoje, e depois de milênios pode ser considerado ultrapassado.
David Thornley
11
@DavidThornley se Euclids Elements não é o texto canônico sobre geometria, o que é?
6

Alguns livros são atemporais porque discutem idéias que são tão fundamentais para a prática de desenvolvimento de software que sempre serão aplicados.

Tomemos, por exemplo, o Mythical Man Month , quando eu estava lendo este livro, esqueci que ele foi escrito em 1975. Quando ele esparrama alguma referência ocasional sobre o IBM System 360, ele sempre me chama a atenção, porque esse é o único conteúdo que data o livro. Tudo o resto se aplica aqui e agora. Ainda mantenho minha cópia dos Patterns of Enterprise Application Architecture de Martin Fowler , agora com 9 anos, mas novamente atemporal e ainda aplicável ao trabalho que faço hoje.

Meu livro favorito agora é o Java Modeling in Color with UML de Peter Coad (1999), embora eu seja um desenvolvedor de C # e evite a UML, porque as técnicas e conceitos me tornam um codificador melhor.

Faríamos bem em aprender com a primeira geração de desenvolvedores, porque eles trilharam o caminho em que estamos caminhando agora e sua sabedoria conquistada pode nos ajudar a dar um salto inicial no que estamos fazendo / aprendendo hoje.

Michael Brown
fonte
MMM - Eu gosto da parte sobre a equipe constantemente corrigindo bugs, mas o número de bugs permaneceu constante :)
JoelFan
5

Os princípios básicos do software não mudaram nos últimos 20 anos. Uma pilha, uma árvore e uma lista vinculada ainda funcionam da mesma forma que na época. "XOR" ainda significa a mesma coisa. Um byte ainda possui 8 bits.

Você está sugerindo seriamente que o "desenvolvimento multiplataforma" é uma nova idéia? Por que você acha que C foi inventado?

"Cloud" é um chavão de marketing. Costumava significar algo específico, mas foi degradado pelo uso excessivo. Hoje em dia, sempre que você tem algo que fala com um servidor remoto por uma rede, os profissionais de marketing colam o rótulo "nuvem" nele. Portanto, não há realmente sentido em falar sobre isso, porque é uma palavra sem sentido.

Eu não conheço o seu professor de 61 anos, então não posso garantir isso. Você, por outro lado, claramente não é tão inteligente quanto pensa. Escute o professor, é possível que você aprenda alguma coisa.


"Você não envelhece por não ser tolo. Muitos jovens sábios, eles morreram como um filho da puta." - Richard Pryor

Mike Baranczak
fonte
2
"Você, por outro lado, claramente não é tão esperto quanto pensa". Se eu pensasse que era tão inteligente, nunca teria feito essa pergunta.
Olivier Pons
4

Aqui estão alguns livros mais antigos e desatualizados:

  • A arte da programação de computadores, vol. 1-3 por D. Knuth. Estes foram publicados entre 1968 e 1981! Não estamos mais usando tubos de vácuo, pessoal! Tudo nestes livros é coxo. Onde está a discussão sobre Python e Ruby?

  • Computadores e Intratabilidade: Um Guia para a Teoria da Completude NP por MR Garey e DS Johnson, 1979. Super coxo! Todos esses problemas já foram resolvidos agora, provavelmente.

Se um livro não foi escrito nos últimos três anos com foco no Python, não vale a pena ler.

stackoverflowuser2010
fonte
Para ser justo, há pelo menos um caso em que o uso do TAoCP de um assembler para seu pseudocódigo significa que livros de algoritmos mais modernos que usam pseudocódigo mais próximo de linguagens mais modernas são mais úteis para os 90% + de nós que não estamos escrevendo para o incorporado sistemas.
Peter Taylor
-1: a cada semana ou duas, vejo alguém pedindo um algoritmo para lidar com algo que Knuth descreveu em detalhes incríveis. Apenas por diversão: cite um algoritmo de classificação mais recente que 1981. Deseja responder a uma classificação paralela? Knuth tem páginas sobre a classificação de dados em paralelo. Você pode estar certo sobre os livros em Python, mas há uma enorme diferença entre os livros "Sabor da semana" e os livros de artesanato de engenharia.
sarnold
5
Aparentemente, alguns detectores de sarcasmo estão quebrados ...
DaveE
11
<Sarcasm> "Comentário" </Sarcasm>
NWS
11
Acho que essa resposta tornaria o argumento ainda melhor se incluísse a menção de The Art of Computer Programming Volume 4A, publicado em 2011 e Volume 5, planejado para 2020!
Mark Booth
3

Esses livros não são obsoletos, são clássicos.

Para citar Kaplansky , " dedique algum tempo todos os dias aprendendo algo novo que não se relaciona com o problema no qual você está trabalhando atualmente (lembre-se de que a disjunção pode ser temporária) e leia os mestres " .

Francesco
fonte
3

Sei o que você quer dizer, quando temos avanços (o LINQ vem à mente) que alteram a legibilidade e o uso do código, mas simplesmente porque esses livros são antigos, não significa que eles não oferecem grandes lições para o leitor.

Enquanto as linguagens de programação que eles usam podem ter caído em voga, a teoria por trás das linguagens de programação ainda soa verdadeira hoje. A maioria desses livros faz questão de abordar muito bem o básico, e o básico não mudou muito.

Onion-Knight
fonte
2
As linguagens de programação que eles usam são principalmente 'C' - elas podem ter caído em desuso, mas aumentaram bastante em uso.
Martin Beckett
3
Você deve ler SICP, pode abrir os olhos sobre onde LINQ vem :)
Joris Timmermans
1

A indústria da ciência da computação ainda é muito jovem. Livros escritos há 30 anos, considero ainda valiosos e necessários para um entendimento completo. Os conceitos abstratos às vezes levam algum tempo para serem digeridos.

SoftwareCarpenter
fonte
1

Algumas partes menores são obsoletas em todos esses livros, mas 99% ainda é ótimo.

Os livros de algoritmos envelhecerão lentamente. Algoritmos são matemáticos, e a matemática não está mudando rapidamente. Certamente, ainda há pesquisas sobre novos algoritmos que são superiores em determinadas circunstâncias (por exemplo, o algoritmo de Furer (2007) Schonhage-Strassen para multiplicar mais de 40000 + números longos), mas a introdução é necessária para aprender o básico (dividir e conquistar) / Programação dinâmica / Programação linear / etc) para que você possa aprender a pensar de maneira sensata sobre algoritmos.

O padrão de aprendizagem C da K&R ainda é a melhor fonte; embora não tenha certeza se confiaria nas seções deles sobre como configurar seu ambiente.

O SICP é um livro maravilhoso e ensina os fundamentos do CS moderno através do ensino do cisco, que é uma linguagem maravilhosa. No entanto, o lisp não é, sem dúvida, o idioma mais útil atualmente; embora outros argumentem que o lisp é sua arma secreta e que o aprendizado de linguagens como java ou python faz com que os programadores sejam muito ruins, que nunca precisam aprender a implementar listas ou matrizes vinculadas ou de classificação ou notação de grande O e acabam fazendo coisas muito ineficientes.

Alguns programadores de código completo ou pragmático são menos relevantes, especialmente se você estiver programando em linguagens mais recentes (por exemplo, python / ruby ​​/ C ++ 11), já que geralmente é focado em como fazer algo em C ou fornece soluções recomendadas usando o melhor ferramentas disponíveis no momento (como CVS / RCS para controle de versão, em vez de uma ferramenta moderna como git / bzr / hg / svn). Mas ainda é bom pensar em como o controle de versão é uma obrigação e como ele precisa ser contínuo e auto-documentado e seguir a lógica do porquê é uma necessidade absoluta.

Ou as recomendações da PP contra IDEs para editor básico de unix + ferramentas unix - para não dizer que você não deve aprender a usar find / awk / localize / grep / sed, mas um bom IDE geralmente pode economizar muito tempo. Por exemplo, o emacs pode destacar a sintaxe ou completar o código com simplicidade; mas digamos que um bom IDE dirá fornecer dicas de ferramentas com declarações de função quando você as digitar ou analisar o código e marcar variáveis ​​não utilizadas, facilitar o recolhimento de seções de código etc.

dr jimbob
fonte
1

Não há diferença entre a computação moderna e o que era atual quando esses livros foram escritos? Você acha que isso muda o que devemos aprender? Não devemos levar em conta a evolução dos últimos 20 anos?

Sim sim e sim.

Isso não torna esses livros obsoletos. "Computação moderna" é um termo incrivelmente amplo. No entanto, inclui programação C, portanto, "A linguagem de programação C" ainda é um livro relevante. Ele inclui algoritmos, de modo que "Introdução aos algoritmos" ainda é um livro relevante. E assim por diante.

A ênfase atual no desenvolvimento de multiplataformas deve mudar o que aprendemos hoje?

A maioria dos aplicativos na App Store (para usar a plataforma móvel mais popular como exemplo) é escrita no Objective C, um idioma do início dos anos 80 que é um superconjunto de C. Então, novamente, C ainda é relevante.

Você acha que a "nuvem" é uma moda passageira ou o futuro?

É o nosso presente.

Quando os estudantes saem da universidade, eles devem ser desenvolvedores reais e poder trabalhar imediatamente

Mas o que isso significa?

Existem muitos idiomas, APIs, estruturas, plataformas, ferramentas, estratégias de colaboração etc. para a escola para prepará-lo para um trabalho específico . A escola só pode estabelecer as bases, fornecendo um modelo de trabalho básico de como a máquina funciona, sobre algoritmos, estruturas de dados, construção de código, estratégias de decomposição, algumas ferramentas, etc.

Um "desenvolvedor de verdade" não é alguém que sabe tudo, é alguém com capacidade para esse tipo de trabalho, que tem uma base em teoria e prática e que sabe aprender , porque sua educação nunca termina.

Mud
fonte
11
+1 no comentário 'como aprender' - é para isso que serve a faculdade, e não um treinamento rotineiro.
DaveE 12/12
1

Ok, então eu vou oferecer uma resposta que é muito mais teórica. Concordo com todos vocês que responderam ao, bastante óbvio na minha opinião, esses livros são a base do que nós, como programadores, fazemos e todas essas novas estruturas são construídas sobre a mesma linha de pilares antigos.

Aqui estão meus dois centavos - não meus, eu aprendi com São Tomás de Aquino e com Aristóteles antes dele.

An abstraction is useless to someone who doesn't understand the particulars.

A mecânica de um computador não mudou desde von-neumann. Da mesma forma, os detalhes que você precisa aprender para ser um grande programador serão os mesmos até que o modelo von-neumann seja obsoleto. Assembly, é a linguagem dos computadores ... aprenda, sem desculpas.

C é o idioma nativo do Windows e do Unix. Aprenda ou encontre um novo negócio. Se você é um desses caras que foi direto para JAVA ou C #, pode ser um bom programador, mas seria um programador muito melhor se aprendesse o período C--.

Algoritmos e estruturas de dados são a base dos programas de computador, aprenda-os.

Tudo o resto é uma abstração dessas disciplinas essenciais. As abstrações são maravilhosas quando usadas corretamente - sério, eu uso o C # para 75% de todos os meus projetos. No entanto, eles o tornam estúpido se você não tiver tempo para entender como eles funcionam e como funcionar sem eles. Você passará um tempo interminável criando software para se encaixar no proverbial buraco quadrado quando houver abordagens muito melhores e haverá bugs que poderiam ter sido evitados. Desenvolvimento de Software é um ofício que deve ser dominado e, no final do dia, as ferramentas raramente mudam. É por isso que esses livros são tão importantes.

Todos esses programadores somente em JAVA e C #, tsk, aposto que a maioria deles nunca viu um episódio de Star Trek!

Jonathan Henson
fonte
1

Eu ouvi um ditado de um mentor:

"Bom conselho vem com uma razão por que para que você saiba quando já não é um bom conselho." Assim, nos termos do livro, um livro que explica por que fazer X sobre Y informará quando esse conselho não for mais válido. Um livro "sempre faça isso, apenas faça", como parte do curso intensivo na linguagem X, não é tão bom.

Eu vi um chamado "aprender unix em 24 horas", bem, o livro tinha cerca de 8cm de espessura, duvido que muitas pessoas possam ler todas as páginas em 24 horas :)

Lembre-se de que o que está em voga hoje pode ser ridicularizado amanhã. Todos os itens a seguir já foram considerados mainstream (em voga ontem), mas agora não são:

  • Vamos para
  • Saída única entrada única
  • Notação húngara
  • Abordagem em cascata

E há algumas coisas que antes eram completamente anátemas, mas agora são aceitas:

  • Recursão como uma ferramenta para resolver problemas (radical nos primeiros dias do BASIC)
  • Alocando Memória em Tempo de Execução com Malloc / New
  • Uso do C ++ STL
  • Idiomas coletados de lixo para sistemas em tempo real

Saiba o porquê e você saberá quando antigas suposições foram substituídas por uma nova realidade, e o conselho também deve.

anon
fonte