Prefácio Rápido
Aprenda fazendo: conhecimento versus know-how
Há uma enorme diferença de conhecimento e know-how. É um erro comum que os novos alunos pensem que, como eles podem "entender" um programa enquanto o lêem, eles realmente entendem o motivo pelo qual o programa está sendo escrito da maneira que é.
E a única maneira de chegar a essa segunda parte é praticar. Sente-se, abra um editor de texto, uma linha de comando e vá direto ao assunto.
É provável (e esperado) que, neste estágio, sua capacidade de compreender como vários componentes de software complexos interagem entre si seja limitada. E é realmente uma coisa boa, pois força você a começar do básico. Não pule a arma e mova-se no ritmo certo: comece com pequenos exercícios para pequenas tarefas.
Para ser sincero, nunca me convenci de que começar a aprender programação com Java é o caminho a seguir (eu costumava ensinar programação para morar na universidade e ainda ocasionalmente fazer aulas particulares). É complexo demais para você começar, e a maioria dos livros sobre Java parecerá bastante assustadora. No entanto, certamente isso pode ser feito (pelo menos em algumas áreas desse conhecimento global que esperamos dos programadores), desde que você se restrinja a aprender passo a passo.
Livros
Como você define Java, e se precisar de um livro decente sobre Java, recomendo:
- Pensando em Java . Tudo bem, embora agora um pouco desatualizado.
- O tutorial de Java . Não é exatamente o melhor companheiro do aluno, mas uma ótima referência para se manter à mão, pois abrange todos os conceitos básicos e fornece exemplos. A trilha Aprendendo a linguagem Java provavelmente deve estar na sua lista de leitura, embora eu ache que pode ser assustador para iniciantes completos, pois introduz conceitos que podem ser difíceis de entender a princípio.
- Java eficaz . Não é um ótimo livro para aprender, mas também uma referência incrível que você deve ter em mãos para mais tarde. Não para ler em uma sessão, mas em pedaços pequenos.
Só estou mencionando isso porque não sei o que você usa em sala de aula. Há muitos outros livros. Alguns são bons. Alguns aleijarão os alunos por anos.
Seu Processo de Estudo
O fluxo de trabalho básico
A partir de agora, recomendamos que você siga este processo em duas etapas para todos os exercícios e exemplos de código que você viu na aula:
- Leia e estude
- leia os exercícios
- certifique-se de entendê-los
- código
- feche o livro
- sente-se na frente de um computador com esse editor de código e linha de comando
- tente reescrever o programa sozinho
Em caso de falha
Se você falhar e sentir que precisa dar uma olhada no livro, é provável que sua falha seja:
- (provavelmente) que você realmente não entendeu a solução,
- (menos provável) que você tenha esquecido a aparência de uma parte específica da solução: sintaxe, uso da API, ...
É provável que a primeira causa seja o que você enfrenta com mais frequência. O segundo é anedótico. Ambos são abordados pela prática recorrente.
Toda vez que você falha na implementação de um desses exemplos anteriores, olhe o livro novamente e feche-o novamente. Não codifique enquanto olha para o livro. Eu até aconselho que você exclua toda a solução e comece de novo. A repetição é uma parte irritante, mas importante, do processo de aprendizado.
Não leve isso de ânimo leve. Toda vez que você sentir vontade de dizer a si mesmo "sim, ok, eu sei disso" ou "estou 90% lá, está quase tão bom quanto feito" e quiser pular para outra seção, lute contra essa vontade e comece de novo. É muito difícil ter a honestidade de admitir para si mesmo que você não entendeu completamente um conceito.
Nota lateral: Considero um grande desserviço que a maioria dos programas escolares agora tente "dar um pontapé inicial" nos cursos de programação, simplificando demais as coisas e fornecendo ferramentas avançadas demais para os alunos: o objetivo não é tornar sua vida miserável ou para você também aprender de cor, coisas que mais tarde em sua carreira serão automatizadas por suas ferramentas e que às vezes você nem se lembra. É para lhe ensinar todas as partes que flutuam por aí.
Em Caso de Sucesso: Vá Além!
Se você conseguir implementar seu exercício, não salte diretamente para o próximo. Tente ver o que você pode fazer para melhorar isso. Você pode alterar a saída solicitada? Adicionar um pequeno recurso? Uma opção? Tente, pois agora você está naquela zona divertida onde passou pela principal dificuldade, e esses pequenos requisitos auto-impostos são mais propensos a manter um pouco de ânimo.
Porém, não exagere: você não imprime o alfabeto e o inverte para que apareça de repente em uma diagonal na tela com um gradiente de cores. Dê pequenos passos. O aprendizado é um processo longo e interativo, e você precisa abordar problemas com níveis crescentes de dificuldade (por exemplo, veja como eu geralmente penso em explicar a recursão ).
É apenas aprendizado - uma comparação
Seu problema não está realmente relacionado à programação. É o mesmo problema que milhares de pessoas encontram quando tentam aprender matemática.
Se você lhes der um problema, eles não verão como chegar à solução. No entanto, se você escrever a solução para eles, a maioria entenderá e pensará "caramba, isso foi tão simples!". No entanto, você lhes dará um problema semelhante com diferentes medidas e hipóteses e eles não conseguirão resolvê-lo: eles não entenderam a lógica por trás disso e precisam de prática para poder fazer isso sozinhos.
Observe que esse é um problema comum com a matemática, mas, na minha opinião, você o vê em vários outros campos em que há alguma lógica necessária: aprendizado de solfege, gramática de linguagem, física, etc ... E não se resume a uma habilidade "natural" para entender essas coisas: tudo se resume à prática (seja nessa área ou em outras que levem o indivíduo a entender conceitos neste campo mais facilmente).
Não há motivo para você não aprender a escrever código. Você apenas continua tentando até chegar a esse "ah AH!" Momento Eureka. Em seguida, passe para o próximo problema mais difícil.
Isso também pode ajudar (mais tarde):