Poderia gastar algum tempo no Programmers.SE ou Stack Overflow ser um substituto de bons livros de programação para um iniciante? [fechadas]

44

Poderia gastar algum tempo (e participar ativamente) de programadores.SE e Stack Overflow me ajudam a melhorar minhas habilidades de programação, de maneira semelhante ao tempo gasto na leitura de um livro como o Code Complete 2 (que seria o próximo na minha lista de leitura).

Ok, pode ser a resposta a esta pergunta para alguém que está começando com a programação pode ser um não, mas eu gostaria de acrescentar que esta pergunta está sendo feita no contexto quando a pessoa está familiarizada com linguagens de programação, mas quer melhorar suas habilidades de programação. Eu estava lendo esta pergunta no SO e também este livro foi recomendado por muitos outros (incluindo Jeff e Joel ).

Para ser mais específico, eu também acrescentaria que, embora eu faça programação em C, Java, Python, etc, mas ainda não estou feliz com minhas habilidades de codificação e lendo a revisão do CC2, percebi que ainda preciso melhorar muito .

Então, basicamente, eu quero saber qual é a melhor maneira de melhorar as habilidades de programação - gastar mais tempo aqui / SO ou continuar com o CC2 e pode vir aqui quando e quando o tempo permitir.

Atul Goyal
fonte
1
Possível duplicada / relacionada: Stack Overflow como uma maneira de aprender coisas novas
1
É definitivamente impressionante para um programador iniciante.
surfasb

Respostas:

102

Não, não é um substituto, mas um complemento perfeito . Sinto que uma combinação dos dois tem muito poder.

Por que uma boa palestra ensina mais do que apenas ler um livro? Interação e capacidade de fazer perguntas.

Apenas lendo um livro, algumas perguntas podem surgir para as quais você não encontra respostas. Procure essas perguntas aqui ou pergunte se não foram discutidas antes.

Steven Jeuris
fonte
+1 para complemento perfeito. Só consigo imaginar como seriam os anos 80 para mim se o SE ou o SO estivessem por perto. eles são ótimos recursos.
Michael Riley - AKA Gunny
1
+1 como um complemento perfeito para um complemento perfeito. Basta ler perguntas "mundo real", ea tentativa de resposta (ou duplicar soluções respostas existentes) são grandes mini-katas para aumentar a habilidade, conhecimento e intuição
Dave Newton
De qualquer forma, a capacidade de expressar problemas e soluções em um canal facilmente compreensível e acessível melhora sua capacidade como desenvolvedor, além de melhorar suas habilidades de comunicação.
surfasb
+1 (novamente) para um complemento perfeito. Eu leio P.SE todos os dias. Nem sempre leio todas as respostas, mas leio a maioria das perguntas e as principais respostas. É uma ótima maneira de pensar sobre as coisas em campo que de outra forma você pode não encontrar. Às vezes, vejo algo em uma sessão de perguntas e respostas não diretamente sobre o que estou fazendo, que acaba sendo realmente útil também, o que é legal.
Andy Hunt
12

(Atualmente) sou membro do StackOverflow há 1 ano e 10 meses. Durante esse período, eu me tornei um aluno disciplinado da arte: conhecedor de arquitetura, padrões, dissociação, teste de unidade e a lista poderia continuar ... mas, que papel o SO teve ???

Primeiro, ele respondeu minhas perguntas imediatas. Mas quando comecei a explorar o SO, descobri que era um programador muito ruim. Desejando ser um artesão no meu ofício, comprei livros ... mas não era C # Unleashed, Learn C # Programming ou outro texto para iniciantes abaixo do padrão que eu precisava. Comprei o tipo certo de livro que visava áreas de habilidades que descobri serem deficientes. Obviamente, reservei um tempo para ver o que os especialistas em SO recomendavam.

Segundo, o SO me deu um lugar para continuar aprendendo com aqueles que (representados pela reputação) realmente sabem o que estão fazendo - sintática e filosoficamente. Há uma certa quantidade de informações a serem obtidas sobre SO, CodeReview e Programadores que você simplesmente não pode obter de um livro.

Obviamente, o SO não pode substituir livros ou todos os outros recursos da Web (embora, se eu pudesse combinar o MSDN e o SO em um único recurso de conteúdo ...); em vez disso, o SO complementa esses outros recursos. O melhor professor, no entanto, continua sendo a experiência .

IAbstract
fonte
11

Qual é a melhor maneira de melhorar as habilidades de programação?

Programando mais. A leitura de livros e páginas da web é secundária.

Você aprende melhor fazendo.

Humphrey Bogart
fonte
17
Sim e não. Fazer mais pode ser feito sem aprender mais. Eu poderia programar em um determinado idioma ano após ano e não aprender nada de novo. Leitura e escola ensinam coisas fora da sua "zona de conforto". Não é suficiente para um voto negativo, mas ainda não é um bom comentário.
WernerCD
1
A verdade é que eu estava programando muito sem aprender. Então, criei sites em PHP sem conhecer objetos ou usar uma estrutura. Você tem que se afastar do código e ir e aprender
Bojan Kogoj
@ Werner - é verdade. Eu quis dizer com "programa mais" no sentido de "encontrar algo que você quer construir, e construí-lo, de preferência de uma maneira nova, de modo a aprender algo novo"
Humphrey Bogart
Lembro que quando eu era estagiário, o "professor" no trabalho às vezes nos dava tarefas de programação, esperando que aprendêssemos melhor fazendo. O problema era que, qualquer que fosse o problema, muitas vezes ainda não estávamos nesse nível. E quando alguém lhe fazia uma pergunta sobre isso, ela ficava dizendo: "Oh, isso é tão fácil! Você precisa descobrir. Você aprende melhor dessa maneira". Várias horas se passam, com a gente debruçado sobre a documentação, tentando coisas fora, etc. Quando ela finalmente iria nos dizer a resposta ...
Panzercrisis
... seria algo que simplesmente não recebemos as informações necessárias para descobrir . Levaria uma semana ou mais para encontrar as informações necessárias, quando não tínhamos tempo e, às vezes, as informações simplesmente não estavam disponíveis para nós ou para o público em geral. Portanto, basta dizer que a instrução é muito importante, e simplesmente dizer a alguém para descobrir as coisas por conta própria é bom quando e somente quando estiver pronto e até esse nível.
Panzercrisis
5

A aprendizagem precisa de alguns ingredientes:

  1. Aluno (que é claro que você)
  2. Tempo (que você deve gerenciar e dedicar)
  3. Recursos (dos quais sites SE são apenas uma pequena parte)

Você é um bom aluno? Você gasta tempo suficiente aprendendo? Se a resposta dessas 2 perguntas for afirmativa , você já tem potencial suficiente para aprender quase com qualquer recurso.

Mas, para responder à sua pergunta, sim, eu pessoalmente aprendi muito nos sites da SE. IMHO, eles não devem se tornar sua única fonte de aprendizado, mas são benéficos.

Saeed Neamati
fonte
5

Duas coisas que SO e P.SE oferecem que nem a leitura de outros livros nem a escrita de código oferecem: teste e ensino. Se você apenas fizer cegamente perguntas como

Por que isso não compila

wall
of
code
100
lines
long

E alguém diz "na linha 33 que a vírgula deve ser um ponto e vírgula" e você aceita a resposta e continua, e continua a fazer as mesmas perguntas para sempre, para que não melhore.

MAS, se você estiver lendo as perguntas de outras pessoas, pensando na resposta, observando para ver quais respostas chegam e como elas se comparam com o que você sabe, isso realmente o melhorará. Se você digitar algum código no seu editor favorito e tentar algumas coisas para ver qual é a resposta, isso realmente o melhorará. E quando você começa a tentar explicar conceitos (e as pessoas estão esperando lá para "esclarecer" o que você diz) que também irão melhorar você.

Há cerca de 30 anos, descobri que nunca aprendi um tópico tão bem quanto quando, acreditando que o conhecia, decidi ensiná-lo. Para mim, essa é a principal contribuição dos sites * .se para minhas habilidades como desenvolvedor. Além disso, quando eu só quero saber um fato simples, é o meu lugar número um para procurar (ou ocasionalmente perguntar).

Kate Gregory
fonte
3

Suas habilidades de programação são melhoradas melhor não lendo sites ou livros, mas repetindo

  1. escrever código com base no conhecimento atual
  2. avaliar resultado
  3. Aprenda com a avaliação sobre o que fazer e o que não fazer.
  4. vá para 1

A prática leva à perfeição. O que parece legal em um blog ou livro pode revelar-se complicado de usar por algum motivo não compreendido pelo autor do blog ou que o autor do livro não abordou.


fonte
2
Livros (e blogs e SO) podem expô-lo a conceitos que você pode não ter inventado por conta própria, mas você se torna um programador melhor escrevendo código.
Annika Backstrom
2
Por outro lado, se eu nunca prestar muita atenção a conselhos externos, não irei longe demais. Outras pessoas aprenderam da maneira mais difícil, e seria tolice não aprender com suas experiências. Claro, não confie apenas na leitura e na audição, mas também não cometa o erro de tentar aprender sem a ajuda de outras pessoas.
Phil
A leitura externa entra em # 2
a leitura externa é necessária para descobrir os recursos não óbvios, exclusivos ou avançados de uma determinada técnica ou linguagem ou biblioteca de programação. São coisas que não são estritamente necessárias para executar tarefas, mas podem melhorar a maneira como você faz (por exemplo, metaprogramação). Como eles nunca são estritamente necessários, as pessoas raramente vêm procurá-los apenas por experimentação.
Lie Ryan
2

Como você respondeu, não, mas passar um tempo aqui é um complemento útil para um aprendizado mais estruturado. Eu não dependeria disso sozinho, pois pode haver lacunas em alguns conceitos que podem não ser cobertos. Uma de suas melhores apostas para melhorar sua codificação para indivíduos no nível intermediário é ler o código de outro bom desenvolvedor, gastando tempo no GitHub ou em outro repositório de código aberto.

Chave na mão
fonte
1

Pensamento e análise críticos ainda são necessários

Por si só, não. A única maneira de gerar fonte de aprendizado (livro, blog, site, SO, etc) é através da compreensão, análise e incorporação repetida. O que as pessoas escrevem em fóruns como esse não é evangelho e não deve ser tratado como tal, não importa quantos votos tenham. Você precisa fazer sua própria análise da opinião apresentada para descobrir se é:

  1. Uma boa ideia
  2. Uma ideia aplicável à sua situação

A melhor maneira de melhorar

Geralmente é específico para a pessoa. Algumas pessoas melhoram com a leitura e a pesquisa. Algumas pessoas melhoram com brincadeiras e experimentações. Outros podem até melhorar através da auto-reflexão e análise. Tente o que lhe agrada e veja se funciona melhor para você.

dietbuddha
fonte
0

Aprender java ficou muito, muito mais fácil quando descobri o stackoverflow. Eu não fiz perguntas, mas comecei a ler as perguntas sobre java diariamente. Muitas das perguntas estavam fora do meu entendimento, mas de vez em quando alguém fazia a pergunta para iniciantes. Muitas pessoas perguntam sobre os conceitos que leem de um livro, mas não entendem, e obtêm uma resposta muito mais compreensível aqui, geralmente com um pequeno exemplo de código para explicar melhor o problema.

Zavior
fonte