Por que as pessoas usam livros de programação? [fechadas]

94

Acho que quando alguém pergunta qual é a melhor maneira de aprender a programar, as pessoas geralmente fornecem referências a vários textos escritos por vários autores.

No entanto, não acredito que muitas pessoas aprendam a programar com livros. Acho que eles geralmente enfrentam um desafio e depois usam a programação como uma ferramenta para superá-lo.

Por exemplo, entrei em programação porque queria iniciar um servidor para um jogo que jogava, então pesquisei e li o suporte para esse servidor em particular e agora sou engenheiro de software empregado, usando apenas as habilidades que desenvolvi ( e depois desenvolvido) codificando scripts C # para um pacote de servidor não muito popular.

Então, minha pergunta é: as pessoas geralmente acham mais fácil aprender com esses livros? Eu sei que olhei para alguns deles e os achei muito "secos" para me encorajar a terminá-lo.

Alex Hope O'Connor
fonte
3
livros não é primário aqui, mas grande vantagem se você ler livros que são apenas mais livros que são interessantes no.
CND
42
Você está falando sobre aprender a programar desde o início ou coisas mais avançadas? Há uma enorme diferença entre 'Aprenda C ++ em 24h' e um livro decente sobre coisas teóricas mais avançadas - você não encontrará o trabalho de Knuth online.
André Paramés 28/07
78
Parece que você nunca encontrou um bom livro de programação.
precisa
46
Isso é metafórico para a pergunta "por que ir para a escola?"
Jodrell
8
Nunca achei os livros uma ferramenta primária de aprendizado, mas tenho muitos deles e os recomendo o tempo todo. É óbvio que você apenas aprende fazendo. No entanto, os livros são a fonte de idéias e podem ser usados ​​como referência prontamente disponível. Não lemos / recomendamos os livros para aprender. Lemos / recomendamos os livros para compartilhar as idéias contidas neles.
Joel Etherton

Respostas:

229

Aqui está como eu aprendo, de um modo geral:

  • Compre um livro
  • Não leia de capa a capa, mas saiba onde tudo pode ser encontrado
  • Encontre um projeto de estimação para trabalhar
  • Aprenda com a experiência, mas use o livro como referência
  • Onde o livro falha, há sempre o google

Nota: o terceiro ponto às vezes vem primeiro.

Edit : Para responder à pergunta "Por quê?"

O Google é ótimo para descobrir como fazer algo, mas não é ótimo para descobrir o que você não sabe. Por que você pesquisaria no Google "delegados de C #" se não sabia primeiro que o C # tem um conceito chamado delegados e que pode ser útil resolver um problema no qual está trabalhando?

Além disso, a relação sinal / ruído pode ser um pouco alta às vezes. Se você tem uma idéia aproximada de como algo é feito, pode facilmente confirmar se o artigo que está lendo está correto. Mas se você não tem idéia ... você pode acabar em uma confusão maior.

pdr
fonte
19
Ótima resposta, principalmente a edição em resposta ao "porquê". Recentemente, comecei a aprender ASP.NET e o fiz usando o google. Eu estava usando o C # para .NET 2.0 há anos, então pensei que poderia sobreviver. Toda vez que encontrei um problema, consegui encontrar a resposta pesquisando no google, mas logo ficou claro que eu estava apenas atingindo a ponta do iceberg do que podia fazer, e estava perdendo completamente grandes partes das bibliotecas. Um livro fornece uma visão geral muito melhor da tecnologia e tudo o que ela pode fazer. Evite os livros "aprenda x em 24 horas" e opte por livros "x avançados".
Gavin Coates
44
+1 por "descobrir o que você não sabe".
Covar 28/07
2
Extensão ao quinto ponto: quando o livro falha, há sempre o Google e outros livros sobre o tópico, incluindo aqueles que não são iniciantes no tópico .
Richard
5
+1 para "a relação sinal / ruído às vezes pode ser um pouco alta. Se você tem uma idéia aproximada de como algo é feito, pode facilmente confirmar se o artigo que está lendo está correto. Mas se você nenhuma pista ... você pode acabar em uma confusão maior ".
precisa
9
"Onde o livro falha, sempre há o google." Você quer dizer Stack Overflow;)
Joren 28/07
42

Algumas razões pelas quais os livros ainda são relevantes:

  1. Acho mais fácil ler muito texto no papel do que na tela LCD padrão; talvez os livros eletrônicos em uma tela de tinta eletrônica possam mudar isso.
  2. Os livros tendem a descrever o panorama geral e algumas boas práticas, muito boas quando você precisa de um início rápido ou de uma nova visualização.
  3. O Google é realmente bom quando você precisa de exemplos sobre um tópico específico, mas não para o cenário geral.

Mas um livro nunca irá levá-lo até o fim, apenas empurrará você na direção certa.

Johan
fonte
2
+1 para o quadro geral. Depois de programar em algum novo idioma / ambiente por um tempo, acho que os livros são realmente úteis para preencher o quadro geral e as coisas que perdi em minha própria exploração.
Adam Morris
2
O blog de Raymond Chen, ou a série Going Deep no Canal 9, é extraordinariamente útil para aprender o porquê . Depois de saber o " por que " algo é do jeito que é, como fazê-lo se torna um detalhe trivial que pode ser pesquisado no Google. Normalmente, o autor de um livro pode entrar em segundo plano para entender a lógica do que está acontecendo, em vez de tentar mexer nas sequências de trechos de trechos de código encontrados on-line.
22811 Ian Boyd
Na IMO, uma das grandes vantagens dos livros é a capacidade de enfiar os dedos em vários lugares ao mesmo tempo, para que você possa alternar rapidamente entre as seções. Acho isso inestimável quando estou tentando aprender algo novo passando por algum código, pois frequentemente procuro outra coisa (às vezes várias coisas) para entender o que procurei em primeiro lugar. Navegar na tela simplesmente não é o mesmo.
TMN
Acordado. Saltando direto para o Asp.Net MVC, por exemplo, você pode descobrir como fazê-lo. Mas há tantas coisas que você provavelmente erraria que são sutis. Então você fica coçando a cabeça por que algo não funciona.
Andy
28

Quando aprendi a programar nos livros dos anos 80, era mais ou menos a única fonte de informação disponível para aprender completamente uma linguagem de programação como um todo. Além disso, você pode comprar revistas de computador, mas o conteúdo delas é de artigos aleatórios que podem ter sido interessantes e úteis ou não.

Atualmente, você encontra todas as informações necessárias na Internet. Embora eu considerasse um tutorial completo semelhante o suficiente a um livro.

Como você aprende pode depender de suas preferências pessoais ou de necessidades reais.

A vantagem de um "texto completo", se livro ou tutorial on-line, será que ele abrange material que, embora não seja realmente necessário, o ajudará mais tarde. É só saber que algo é possível e saber onde encontrá-lo. Especialmente se você aprender sobre um ambiente complexo ou uma linguagem muito complexa como C ++. Você pode ler vários blogs pequenos sobre Ruby on Rails sem nunca ter ouvido falar sobre o Ajax ou questões de segurança. Contanto que você apenas brinque, isso pode não ser problema. Mas se, como aconteceu comigo, você quiser entrar no desenvolvimento profissional do Ruby on Rails dentro de algumas semanas, trabalhar com um texto que cubra todos os pontos importantes ajudará bastante.

Outros livros cobrem detalhes sobre estilo de programação, práticas recomendadas, padrões de design ou determinados grupos de algoritmos. Você pode trabalhar com eles e, talvez, em todos os padrões de design, você aplicará apenas um subconjunto muito pequeno. Ainda assim, é útil conhecê-los e saber onde encontrá-los. E é simplesmente uma maneira de treinar seus processos de pensamento em uma direção em que você está mais interessado em "construir uma solução" do que em "fazê-lo funcionar de alguma forma".

Pessoalmente, gosto de ler, então não tenho a sensação de que os livros estão secos. Embora seja importante, é claro, que o livro esteja no seu nível real de conhecimento ou além. Se você já domina todas as noções básicas de C #, não faz muito sentido ler um livro para iniciantes.

thorsten müller
fonte
7
+1 por mencionar o que eu teria escrito: que o tipo de livros "melhores práticas / metodologia" difere muito do tipo de livros "como fazer X usando Y". E o primeiro é o material realmente valioso, porque ensina uma experiência geral de resolução de problemas, conquistada com muito esforço. Depois de aprender o teste de unidade, refatoração, estimativa, etc., você pode aplicá-lo e adaptá-lo a vários idiomas / domínios / projetos.
Péter Török
1
Definitivamente aprecio a menção sobre estilos, práticas e padrões. Estes são os livros que são realmente os benéficos. Você pode aprender a programar apenas tendo um problema para resolvê-lo e resolvê-lo. Você aprende a programar bem aprendendo estilos, práticas e padrões. Ainda assim, o melhor lugar para obter uma compreensão abrangente desses conceitos são os textos.
Rig
+1 para "abrange material que, embora não seja realmente necessário, o ajudará mais tarde" - bons programadores têm um profundo conhecimento para utilizar. Mesmo que você não se lembre de todos os detalhes, mas conheça o fio para aprender e aprenda quando precisar, pode ser bastante valioso!
Jared Updike
22

Um livro (ou documentação da Web estruturada como um livro) ainda é minha maneira preferida de aprender a maioria dos idiomas.

Se você apenas mergulhar em um idioma e descobrir coisas por si mesmo, provavelmente perderá aspectos importantes, que um bom livro teria entregue a você no momento certo.

Por exemplo, alguns colegas meus aprenderam Java mergulhando sem um livro. Eles estavam programando em Java há alguns anos, quando eu descobri que eles estavam manipulando rotineiramente matrizes de bytes [] convertendo a matriz em uma String, usando .substring (), depois convertendo a String novamente em uma matriz. System.ArrayCopy () é apresentado na página 155 de Java In A Nutshell

Espero que você reconheça que aprender é mais fácil com um professor do que sozinho. Um bom livro é um substituto barato para um bom professor. Ele apresentará conceitos em uma ordem cuidadosamente planejada, para que você possa construir um entendimento completo - não apenas o suficiente para sobreviver.

magro
fonte
2
+1 para apontar a diferença entre aprender a fazer algo e aprender a fazê-lo bem.
Idbrii 28/07
Um bom livro é uma ótima maneira de cobrir rapidamente a área. Alguém já fez a pesquisa para você. Encontrar um bom livro pode ser difícil. Houve um tempo em que eu tinha uma chance de 50/50 de obter um ótimo livro sobre um assunto em que me interessava (realmente um bom comprador). Agora, acho que a chance de encontrar um bom livro na livraria é inferior a 10%. No entanto, existem muitos livros bons como recursos disponíveis na rede. Escolher o recurso certo pode acelerar o seu aprendizado.
BillThor
1
Não tenho certeza de quando era a hora. Dei uma olhada nos meus livros antigos de CS recentemente. O padrão melhorou bastante. Por exemplo, eu usei 'Programação Funcional com Miranda' anos atrás. Eu usei 'Mundo Real Haskell' recentemente. O livro mais antigo está hoje mistificando, apesar de basicamente usar os mesmos conceitos e paradigmas que Haskell.
slim
21

Eu acho que você pode estar interessado em alguma coisa. Para mim, pelo menos, a maioria das minhas habilidades veio de querer / precisar de um programa que faça "X".

Talvez as pessoas que aprendem dessa maneira não estejam pedindo ajuda; eles estão muito ocupados fazendo isso (mal, mas aprendendo ao longo do caminho). As pessoas que querem ser programadores (ao contrário do primeiro grupo) fazem muitas perguntas sobre como ser um programador ou como programar, mesmo que não tenham necessariamente um problema para resolver, e essas não são perguntas com respostas diretas.

E assim, lançamos livros. "Ah, sim, pegue uma cópia do 'Dive into Python'." "Foi assim que você aprendeu?" "Não" "Hum ..." "Estou meio ocupado, mas eu vou ajudar se você ficar preso" "Uh ... OK, eu acho"

Por outro lado, valorizo ​​muito o bom material de leitura quando estou aprendendo, para que eu possa ver como o problema que estou tentando resolver é resolvido por um autor mais habilidoso, ou talvez apenas para que eu possa aprender algumas coisas. técnicas "iniciantes" que talvez eu não tenha aprendido ao longo do caminho.

TLDR : livros são bons, aprender fazendo é bom, aprender fazendo livros é ???

TokenMacGuy
fonte
1
+1: Eu acho que você acertou em cheio. Aprenda fazendo, os livros mais valiosos que possuo eram específicos para um aplicativo que eu estava escrevendo na época.
Justin Escudo
41
Tenha cuidado para evitar se tornar um programador "autodidata" que pensa que sabe tudo porque trabalhou mal com um problema simples e se sente "bom demais" para ler livros.
Joris Timmermans
2
Note que não sou contra a leitura, apenas acho que a mídia digital é geralmente muito mais atual e envolvente.
Alex Hope O'Connor
2
@Alex Sobre mídia digital. Isso realmente depende do assunto abordado pela mídia. Se a mídia abordar coisas como x no idioma y ou a maneira mais eficiente de codificar em z, concordo com sua afirmação. No entanto, outros tópicos (geralmente tópicos mais avançados, teóricos), como NP, P, análise de algoritmos, etc., IMHO são geralmente abordados melhor por um livro de texto. Veja The Art of Programming de Knuth . É um texto bastante antigo, mas ainda é considerado um dos principais livros de programação.
Cledoux
16
Eu acho que este é um caso de viés de confirmação. @Alex parece estar procurando uma resposta certa. Não estou dizendo que essa resposta seja ruim por si só, mas certamente não é a melhor resposta fornecida por nenhum esforço da imaginação.
zzzzBov
15

Adoro ler livros técnicos. Nem todos os livros técnicos, apenas aqueles sobre um determinado assunto em que estou interessado, dizem o Sharepoint. Lembro-me do primeiro livro que realmente li (várias vezes), s Programming Windows, de Charles Petzold. Por causa disso e de muitos outros, eu era capaz de escrever um aplicativo Win32 da memória. Eu quase não precisava procurar uma API, por isso consegui me concentrar na parte comercial.

Sinto que os livros fornecem uma maneira "autoritária" de fazer algo, talvez por alguém que sabe o caminho certo para fazer algo melhor do que eu. Confio que o que estou aprendendo é, ouso dizer, a melhor maneira de resolver meu problema. Isso é claro, se eu confiar no autor (tenho que amar a área de críticas na Amazon).

Embora agora eu esteja cada vez mais "pesquisando" e copiando e colando quando tento resolver um problema, passo um bom tempo me certificando de que o que estou copiando (ou sendo inspirado por :) seja algo confiável que eu pode colocar no meu código. Só porque encontro uma solução na Web, não é necessariamente a melhor.

Enquanto eu, como tantos outros programadores, agora apenas pesquiso as respostas, ainda me pego pegando livros de autores conhecidos. Sinto que o conteúdo é trazido a mim por alguém que é bom em explicá-lo (ensiná-lo) e evita que eu precise filtrar todo o lixo dos meus resultados do Google.

Eddie Paz
fonte
14

Suponho que sua pergunta não foi entendida como "por que usar tecnologia antiga como um livro impresso em vez de páginas HTML", mas "por que ler textos mais longos sobre programação escritos por um ou poucos autores".

Você pode pensar nos livros como uma coleção estruturada de informações sobre um determinado assunto. Tem a vantagem de alguém ter se esforçado para construir cada capítulo entre si para facilitar a compreensão do tópico. Geralmente, você também é informado sobre quais são os limites das informações (o que é coberto e o que mais há que você precisa procurar em outro lugar). Depois de ler e trabalhar com ele, você pode ter certeza de ter alcançado uma certa habilidade. Se você deseja aprender com o botão de avanço rápido pressionado, um livro pode forçá-lo a trabalhar em todos os aspectos sem pular as partes chatas, pelo menos se você confiar na estrutura do livro. A coleção chamada "livro" também costuma ser útil como referência.

Usando a Internet, blogs, "brincadeiras" etc. geralmente se enquadram no tipo de informação não estruturada. Você obtém muitos pedaços de sabedoria, mas precisa fazer mais trabalhos de pesquisa para aumentar seu conhecimento, porque ninguém o guiará ao dizer "aprenda isso primeiro ou você não verá o mérito daquilo que deseja". pesquisei no Google agora ". Você pode perder algumas partes porque elas são muito chatas ou ninguém lhe disse que eram importantes. Você pode aprender coisas erradas, porque nem tudo escrito na Internet é de primeira qualidade. Você pode gastar muito tempo filtrando resultados de pesquisa inúteis. Você pode perder dias tentando realizar algo por conta própria, apenas porque não conhecia um determinado padrão de design ou construção de programação e ninguém lhe disse. Quanto menos você souber,

Para colocar um pouco de provocação: eu nunca confiaria em um arquiteto para construir uma ponte que tenho que atravessar todos os dias se ele me dissesse que nunca tinha lido um livro sobre construção de ponte ou análise estrutural, mas apenas o aprendeu brincando e usando o Google ...

Ray
fonte
Minha pergunta poderia ser interpretada como sendo honesta, mas a última era meu consenso geral.
Alex Hope O'Connor
10

Se você é um programador C, como espera aprender Python sem um livro ou professor?

Se você apenas aprender a sintaxe básica e se aprofundar, acabará escrevendo o código C em Python e chegará à falsa conclusão de que o Python é tão detalhado e doloroso quanto o C.

BlueRaja - Danny Pflughoeft
fonte
Isso é um exagero. Se você começou a programar o Python, poderia pesquisar no Google respostas a problemas e encontrar coisas como receitas do Python que descrevem soluções Pythonic para problemas específicos.
Idbrii 28/07
6
@pydave: Se fosse um exagero então não haveria tanto C-código escrito-em-pitão no SO (exemplo)
BlueRaja - Danny Pflughoeft
4
Li seu exemplo de pergunta, li sua resposta e entendi o que você quer dizer: aprender a sintaxe básica não é o mesmo que aprender o idioma. (Eu nem considerei não aprender as construções da linguagem.) Se você aprender Python o suficiente para escrever código C em Python, ainda não aprendeu a programar em Python.
Idbrii
Este é um problema sério que merece mais atenção. Todas as linguagens de programação são completas de Turing, o que significa que você pode resolver qualquer problema escrevendo código Python tipo C ou código Ruby tipo Java. Não há nenhum obstáculo que o force a se conformar com o zeitgeist da linguagem em que você está programando. Pior ainda, você pode nem sentir a dor de sua ineficiência de codificação, porque será aproximadamente tão doloroso quanto em C nativo ou nativo Java, um nível de dor que você aceita como normal.
Wedge
não posso concordar mais - eu sou um programador C em PHP quando escrevo qualquer: - |
28911 warren
9

O Google normalmente é bom apenas para encontrar pequenos trechos de código ou bibliotecas de código aberto. A documentação de algumas bibliotecas / programas não é confiável, na melhor das hipóteses (se existir, ela mostra apenas exemplos simples ou comuns).

Não tenho muitos livros de programação, mas posso dizer agora que tenho um livro sobre OpenGL, e ele contém a maior parte do código de um mecanismo 3D, que você pode simplesmente copiar, mas pode leia a teoria também - você só precisa virar algumas páginas e uma explicação do código está ali, esperando para ser lida. Atualmente, você provavelmente pode encontrar alguns mecanismos 3D de código aberto na rede, mas se precisar alterar substancialmente o código, provavelmente terá algum problema - normalmente não existe um fórum de ajuda e as pessoas no SO não saberão o que é isso. responda à sua pergunta se ela for muito especializada. Quando se trata de coisas realmente especializadas, apenas algumas dezenas de pessoas em todo o mundo serão capazes de responder à sua pergunta sem gastar horas, a fim de descobrir o suficiente para estar em posição de encontrar uma resposta. Se você perguntar como implementar uma lista vinculada em C #, obterá mais de 5 respostas sobre SO nos primeiros 10 minutos, mas se perguntar qual a melhor maneira de implementar um algoritmo de sombreamento complexo no three.js é , sua pergunta será afundada na primeira página como uma pedra.

Além disso, os livros são escritos quase exclusivamente a partir da perspectiva que o leitor deseja aprender sobre a teoria envolvida, enquanto o Google produz apenas trechos aleatórios de códigos indesejados, discussões arquivadas sobre o assunto em que ninguém sabe do que estão falando. , etc. As fontes na internet melhoraram muito: SO, Moz Dev Network, site da Microsoft, blogs etc. Mas, historicamente, os livros têm sido muito melhores, com fontes da internet atualizando.

Michael
fonte
1
+1 por apontar o tempo necessário para resolver lixo aleatório com o "aprender pesquisando" método
Ray
1
+1 em 'discussões arquivadas sobre o assunto em que ninguém sabe do que estão falando etc.' - ROFL.
5arx
7

A qualidade da escrita nos melhores livros é tal que muitos dos problemas não óbvios são apresentados antes mesmo de você começar. Um autor com muita experiência saberá falar sobre coisas como: efeitos colaterais inesperados, repercussões a longo prazo, recursos não documentados, cenários típicos de uso ...

Basicamente, você está obtendo o benefício de um escritor com muita experiência, orientando-o no problema e apontando as partes realmente interessantes.

Às vezes, você também pode encontrar isso nas referências on-line, mas, devido à baixa barreira à entrada de muitas informações on-line, é muito básico, faltando detalhes ou simplesmente errado. Isso também pode acontecer com os livros; portanto, acredite apenas naqueles livros clássicos com críticas consistentemente boas. Outros livros também podem ser úteis, mas apenas como uma das fontes, você ainda precisará verificar as informações fazendo referência cruzada ou tentando você mesmo.

Joris Timmermans
fonte
1
+1000 'completamente errado' Há vários exemplos de códigos on-line escritos pelos 'melhores programadores' que não usam compiladores ou sabem do que estão falando. Além disso, um bom livro será escrito com um modelo pedagógico que introduz e depois reforça o conteúdo de maneira consistente e legível.
JQA
6

Os livros tendem a vir com muita informação em um formato estruturado. O Google costuma vir com uma enorme quantidade de informações nem sempre particularmente estruturadas e difíceis de organizar em termos do que você precisa fazer.

Na verdade, eu não leio mais livros em papel - há um leitor eletrônico ao meu lado e eu tenho o software Kindle no meu laptop que me dá acesso às informações que estou procurando.

Onde o Google é útil é se você não está procurando uma visão geral estruturada de como programar, mas precisa de detalhes sobre como programar uma tarefa específica. Quase sempre alguém escreve código para essa tarefa antes ou, pelo menos, algo parecido.

Eu acho que há uma diferença entre aprender a programar e aprender a programar uma tarefa específica. Eu questionaria a qualidade do código proveniente de alguém que só aprendeu partes de tarefas específicas do Google, se nunca conseguiu uma visão geral decente de como programar. Isso não é específico da linguagem, é mais conceitual.

tentador
fonte
4

Os livros são úteis se você quiser aprofundar um assunto. Claro que aprendi C # fazendo alguns tutoriais e escrevendo alguns projetos (de estimação). Mas o C # em profundidade ainda é útil para ver o que está acontecendo por baixo e para aprender algumas coisas novas.

Além disso, posso pegar um livro de programação e lê-lo no meu banho ou no exterior , ao sol. Não posso fazer isso com meu PC de mesa.

Carra
fonte
4

Porque é uma maneira conveniente de aprender com outros programadores.

Livros são um complemento. Você só pode chegar tão longe trabalhando tão rápido por conta própria. Quem não preferiria estar em um projeto com um programador melhor disposto a lhe ensinar algo do que apenas ler o livro?

Costumo usá-los mais como referência do que como "Tudo o que você precisa saber sobre programação".

JeffO
fonte
3

Os livros permitem absorver um conjunto de informações de forma "passiva". Você não precisa procurar o que é possível; é apresentado um subconjunto de possibilidades. Quando eu estava aprendendo C #, o livro realmente ajudou a apontar as possibilidades, e me perguntei quais eram os equivalentes em C ++. Obviamente, a masterização ocorreu ao usá-la em um projeto (tamanho real). Mas o livro realmente ajudou a apontar diferenças e possibilidades.

refro
fonte
3

Em suma, acho que os livros tendem a ser mais úteis em um nível alto. Eles podem fornecer orientações de design e ajudar a evitar problemas em vez de resolvê-los.


Os livros certamente têm suas desvantagens. Minha cópia do Programming Python cobre o Python 2.0, mas o tempo de execução que uso é 2.6.

No entanto, acho que o aspecto importante dos livros é que você pode encontrar coisas que não tropeçaria em si mesmo. O Google ajuda a resolver problemas específicos, mas os livros ajudam no design. E não apenas livros de design. Se você ler um bom livro que o ajude a entender o design de um idioma, entenderá melhor como usá-lo.

Outros livros são bons para refinar seu conhecimento. Acho que o livro Effective C ++ de Scott Murphy é um bom exemplo. Embora este livro não seja realmente muito bom para aprender C ++, ele ajuda a ver problemas no design de algoritmo / interface / herança que você não encontrou (ainda) ou que contornou. Pode ser fácil encontrar uma solução simples (que pode causar outros problemas posteriormente), mas, ao entender melhor o idioma, você pode projetar seu software para evitar esses problemas em primeiro lugar.

Obviamente, não é o fato de os livros serem impressos em papel que os torna valiosos. O cuidado e o esforço necessários para criá-los e o desejo de dar uma educação rigorosa são os que dão valor aos livros. Freqüentemente, como efeito colateral, você obtém recursos on-line úteis, como o C ++ FAQ lite, ou e-books como Dive into Python . Também existem tutoriais somente online que são ferramentas de aprendizado completas e úteis (como a documentação de algumas plataformas / idiomas / bibliotecas).

Os trechos na Web são uma boa maneira de responder sua pergunta, mas raramente dizem o que você deve estar perguntando.

idbrii
fonte
3

Eu quero me tornar um programador, então estou usando livros de programação. Os livros me permitirão ter proficiência profissional em programação.

Peter Mortensen
fonte
3

Eu realmente não leio um livro de programação há muito tempo. Costumo usá-los como guias de referência, mas agora acho que a Internet é mais fácil para a maioria dos idiomas e estruturas.

Enfim, acho que a melhor coisa a aprender com os livros de programação é a linguagem principal. Por exemplo, minha primeira linguagem real foi C. Aprendi escrevendo um SO (não recomendo isso). Como resultado, meu conhecimento de C foi bastante prejudicado, mesmo após dois ou três anos de programação. Eu nunca tive um bom conhecimento básico do idioma. Eu não sabia que poderia transformar essas 15 linhas de código confuso em duas linhas de código limpas. Assim, eu poderia resolver problemas, mas não estava utilizando o C em toda sua extensão.

Então, a certa altura, decidi aprender C ++ ... (cerca de 2 anos depois de começar a aprender C). Então, eu li o único livro em C ++ que eu tinha por aí, um livro em C ++ para Leigos. Eu li cerca de 3/4 da matéria, fazendo muito pouco "trabalho" durante esse período ... e como resultado, quando pulei no meu primeiro projeto, em vez de me sentir confortável com essas 15 linhas de código bagunçado, eu sabia que havia uma maneira mais fácil de fazer isso (mesmo que eu tenha que procurar).

Fiz a mesma coisa quando aprendi C # / ASP.NET. Eu não fiz quase nada além de ler até terminar com cerca de 3/4 do livro. E pelo que não aprendi, procurei Stack Overflow em busca de perguntas interessantes sobre C #. Quando entrei no meu primeiro projeto, diria que a maior parte do meu código estava relativamente limpa e só teve que ser "enormemente" refatorada uma vez desde então.

Então, eu diria que os livros são muito úteis para aprender os recursos de uma estrutura ou linguagem. Além disso, porém, a maioria se torna inútil pela Internet, exceto, é claro, pelos fortes livros teóricos e especificamente projetados para serem materiais de referência.

Earlz
fonte
2

É menos sobre o que você lê, mas quanto. Eu gosto de ter alguns livros de programação em movimento enquanto trabalho em um projeto. De vez em quando (com mais frequência do que você imagina), você lê sobre uma técnica que pode ser aplicada ao seu projeto atual.

Depois de implementar uma solução do mundo real, as informações serão mantidas.

Fuzz leve
fonte
2
Na verdade, acho que é o caso ao responder perguntas em sites como o SE. Costumo constatar que os comentários me levam a informações relevantes para resolver um problema em que estou trabalhando ou sei que em breve estaremos trabalhando.
Lea Hayes
2

Prefiro usar livros porque sinto que eles fornecem um instantâneo do estado da tecnologia em que você está trabalhando. O autor declarará que, com a versão XX da linguagem / biblioteca Y, é assim que você resolve o problema Z. Os tutoriais do site podem deixar de listar quais versões eles estão usando ou fornecer o código de exemplo que eles usam enquanto os livros costumam fazer.

Os livros costumam abordar o "porquê" dessa solução resolver o problema, enquanto os documentos on-line costumam copiar e colar.

Você também pode perder links para todas as suas referências, elas podem ser movidas ou desativadas. Eu protejo e cuido dos meus livros como um investimento (o que eles são).

Spacebob
fonte
2

Você pode resolver problemas sem ler livros, mas então realmente saberá o que está acontecendo por trás do seu programa para resolver esse problema?

Você precisa saber o que está acontecendo e o que poderia ter sido uma alternativa melhor. Para isso, você precisa de bons livros de programação. Apenas ler livros, é claro, não basta, você precisa entender o conteúdo, ler outros livros, pensar em diferentes abordagens para resolver problemas e assim por diante. O aprendizado continua com e sem livros.

Peter Mortensen
fonte
1

Quando eu estava aprendendo C ++, achei a maior parte da literatura bastante inútil até que algo na minha cabeça clicou. Até hoje não tenho certeza do que era, mas tudo começou a fazer sentido. Livros e sites então faziam muito mais sentido. Levei 2 livros para aprender a programar em C ++ e nenhum dos livros C ++ verdadeiros (eram livros do Visual C ++ que focavam principalmente no MFC).

Se você receber o (s) livro (s) certo (s), poderá ser realmente útil. Um amigo meu estava lendo alguns livros de Dietel na universidade e eu os achei extremamente bem escritos. Eu nunca achei os livros "... para Leigos" tão úteis porque eles não explicam as coisas da maneira certa para mim. O melhor conselho é ir a uma livraria e obter uma amostra do livro para que você não gaste muito dinheiro com livros que costumam ser extremamente caros.

Para alguns tópicos de programação, acho útil ler vários livros, realizar pesquisas via Google e experimentar. Eu me vi fazendo isso muito quando estava trabalhando em algoritmos de IA quando estava trabalhando em um jogo de damas com o J2ME. Também me vi fazendo isso quando estava aprendendo a criar um compilador de compilador para sintaxes personalizadas. Existem tantas variações e visões diferentes.

Às vezes, o entendimento de várias visualizações permite fazer conexões que, de outra forma, são mais obscuras.

Lea Hayes
fonte
1

Costumo aprender (programação) com livros e fontes "just in time", como a web. Ambos podem ser bons, mas no geral eu prefiro aprender com os livros, eis o porquê:

Quando você aprende apenas o que precisa saber imediatamente para concluir uma parte de um projeto, às vezes perde o quadro geral. Os melhores livros não são meramente referências, mas, em certo sentido, alcançam algo mais próximo de um aprendizado, fornecendo uma visão geral bem arredondada de uma tecnologia e muitos conselhos experientes sobre as melhores soluções para problemas comuns.

O aprendizado just-in-time pode muito facilmente sofrer com o problema de satisfação. Quando você identifica um problema que deseja resolver, pula para a primeira solução que parece funcionar e depois corre para as interwebs para descobrir como implementá-lo. . No entanto, muitas vezes isso pode causar problemas, se você puder conversar com um programador experiente sobre o seu problema, eles não dirão "aqui está como fazer o X", mas sim " X, faça Y em vez disso ". E esse é o tipo de conhecimento que você costuma obter dos melhores livros. De fato, alguns livros são inteiramente sobre esse tipo de coisa, como Javascript: The Good Parts .

O outro problema que o aprendizado JIT pode ter é uma curva de aprendizado muito mais lenta. Com o aprendizado JIT, você tende a aprender apenas o que precisa saber. Mas, muitas vezes, apenas ter um núcleo básico de conhecimento pode acelerar o aprendizado de um novo idioma ou estrutura. Em vez de tropeçar no básico, você começa com uma base sólida e depois constrói a partir daí. Uma boa parte do material que você pode cobrir ao ler um livro pode não ser imediatamente útil para você, mas ter esse conhecimento básico pode ser benéfico para orientar sua tomada de decisão e principalmente para entender o novo código ao qual você está exposto. É claro que existe uma troca e existem livros ruins que se acumulam em fatos inúteis dos quais você não se lembrará depois de lê-los, mas também há bons livros que fornecem uma boa base para os fundamentos e o que '

Também existem livros em um nível superior a um único assunto tecnológico que eu acho crucial para amadurecer como desenvolvedor. Livros como Código Completo , Refatoração , Trabalho Eficaz com Código Legado , etc. Você não vai captar o conhecimento desses livros apenas através do aprendizado do JIT.

Wedge
fonte
1

Eu acho que vou ler livros. Especialmente baixar ebooks. Ler cada parte do capítulo. Copie seu código! cole no seu editor de programação e veja qual é o resultado.Em seguida, tente alterar a lógica dele.Eu mencionei e-books para download porque para trabalhar mais rápido.Os livros são realmente excelentes.Eu não estou mentindo, mas desde novembro passado até hoje. Tudo isso requer amor para ler. Por exemplo, eu limitei os controles com a tabela de dados e não sei o que os conjuntos de dados fazem e recebi a tarefa de fazer relações entre cópias residentes de memória das tabelas do banco de dados que não consigo.

Adeel
fonte
0

É muito difícil para os novos programadores entenderem o que é realmente a programação e quão profunda é.

Qualquer um pode escrever um programa para instruir um computador - bem, qualquer coisa com muito pouco aprendizado, isso não é difícil! O difícil é criar um programa que seja suportável e possa ser entendido rapidamente e compreendido profundamente por outros membros da equipe. Essa parte leva anos, dezenas de anos.

Além disso, aprender a trabalhar como parte efetiva de uma equipe é um pouco complicado.

Então, como os livros ajudam a resolver esses problemas de programação "reais" de uma maneira que a pesquisa de referências na Web não ajuda?

Bem, dois dos meus livros favoritos são "Design Patterns" e "Refactoring".

A refatoração é um ótimo livro que mostra como reconhecer códigos incorretos. Se você aprendeu pesquisando referências de codificação, este livro (Bem, um dos muitos livros sobre Refatoração) é crítico.

Os padrões de design não oferecem muito que um bom programador não possa descobrir, mas deu nomes a uma ampla variedade de padrões que todos já usavam no código. Isso permitiu que os programadores se comunicassem de maneira mais eficaz e ajudou alguns programadores a encontrar novas maneiras de atacar problemas. Embora você possa encontrar padrões de design na Web, é muito mais fácil pesquisar no google o nome do padrão de design do que no google o que você está tentando fazer.

Nas entrevistas, fui solicitado a descrever esses dois livros e o que eles estão tentando realizar. Acho que essa é uma pergunta de entrevista muito válida ... Gostaria de prestar atenção a um programador que não sabia sobre esses dois livros livros, a menos que ele estivesse se candidatando a uma posição extremamente júnior.

Bill K
fonte
0

Aprendi a programar diretamente com livros. Cerca de 20 anos atrás, antes que o google e a rede se tornassem populares. Eu acho que eles são ótimos recursos. No entanto, a maioria dos livros modernos apenas cita artigos técnicos dos fabricantes. Então, agora eu concordo que é melhor aprender online. Com uma palavra de aviso da seguinte maneira:

Embora eu tenha lido muitos livros e tenha acesso à Internet quase porque era financeiramente viável. Eu nunca fui capaz de concluir qualquer tipo de projeto considerável. Claro que eu poderia fazer muitos dos projetos importantes em grandes livros avançados, onde eles levam 20 capítulos para orientá-lo, mas quando se tratava de meus próprios projetos do mundo real, sempre sem execuções, batia em uma parede de tijolos. Preciso lhe contar, li alguns livros pesados.

Eu tive problemas a vida toda na faculdade, mas agora estou entrando no meu terceiro ano. No meu primeiro ano, conheci pessoas no quarto ano e mestres, e pude manter conversas produtivas sobre as teorias de IA, HCI, montador e desenvolvimento de compiladores. Mas, com todo esse conhecimento, não consegui criar um programa razoável. O que estava faltando ... A única coisa que você não pode obter de nenhum livro ou online.

Estrutura. No primeiro ano, eu não aprendi nada de natureza técnica (já sabia tudo e me envolvia sem um dia de estudo, matemática e design excelentes, pois eram razoavelmente novos para mim), mas aprendi estrutura e trabalho em equipe. Nas minhas primeiras férias de verão, cheguei mais perto do que nunca de concluir meu primeiro trabalho real.

No meu segundo ano, aprendi muitas coisas novas em tecnologia (ainda o básico em comparação com o que sabia, mas estava colocando a teoria que conhecia na prática real). Isso enfatizou a importância da estrutura novamente. Eu não terminei meu primeiro projeto real. Agora me considero um programador.

Não acredito que seja necessário ler livros para aprender programação. Mas é uma ajuda. No entanto, acredito com certeza que nenhum livro ou site ensina ou pode ensinar o que você obtém em até 2 anos de faculdade. Se você conseguiu concluir os projetos sem nunca ter cursado a faculdade, jogo limpo, mas é uma experiência que eu recomendo, independentemente da idade.

Os livros são bons, a internet é melhor, o Google e o YouTube são fabulosos, mas nada supera a boa e velha faculdade fashoned na minha opinião. E duvido que qualquer quantidade de pesquisa e youtubing alguma vez o faça, e sei em primeira mão que nenhuma quantidade de livros jamais será.

Jack Spratt
fonte
Onde está escrito acima "Eu não concluí meu primeiro projeto real. Agora me considero um programador". Deveria ler "Agora concluí meu primeiro projeto real. Agora me considero um programador". Desculpe pelo erro de ortografia.
precisa
0

Eu não tenho idéia. Sou contra livros de programação. Na maioria dos casos, você ainda precisa pesquisar na Internet para pesquisar informações adicionais.

Você quer aprender uma linguagem de programação? Google para isso. Eu odiava o jQuery porque estava parecendo difícil. Então eu vim para o Stack Overflow e sei muito disso. Sem a ajuda de livros.

  • Google para isso
  • Procure um aplicativo de código aberto completo e profissional
  • Navegue nesse código e tente obter o que está acontecendo.
  • Tente escrever um aplicativo rápido / simples a partir de trechos de um código existente.
  • Tente reescrever por si mesmo.
  • Encontre mais tutoriais na Internet
  • Tome experiência
  • Tenha mais experiência
  • Você acabou de aprender um novo idioma! (Eu não disse que você será um especialista, mas o básico será aprendido em algumas horas ou dias)
gênese
fonte
Ter um livro como referência é muito útil - você ganha com a experiência de outras pessoas. O "livro" pode até ser uma extensa documentação on-line / tutoriais como django ou jquery . Mas apenas a fonte de tentativa e erro + leitura deixará grandes lacunas no seu conhecimento. Agora, se você precisar apenas de algumas linhas de jQuery, seu método funcionará, mas você não aprendeu o idioma. Mas se você quiser aprender C, eu recomendaria ter K&R como referência. Certamente, a maioria das informações está online em algum lugar, mas espalhada por muitos posts do blog.
dr jimbob
0

Acho certo que a programação não possa ser aprendida apenas com livros (como a maioria das pessoas mencionou), você precisa praticar muito e há muitos recursos disponíveis na internet (artigos, vídeos, amostras etc.).

Mas um bom livro preenche as lacunas de seu conhecimento. Depois de ler uma capa de livro a capa, você terá a confiança de que não tem nenhum buraco no seu conhecimento sobre o assunto. Embora o desafio seja encontrar bons livros sobre o assunto.

Manoj
fonte