Então, você decidiu se tornar um programador. Ótima ideia, mas o que você deve fazer agora?
Existe uma grande diferença entre ter uma ideia e implementá-la. Você enfrentará hesitações, maneiras erradas de aprender, bugs, perda de motivação, preguiça, falta de tempo e assim por diante. Não acho que você possa encontrar um artigo que resolva todos esses problemas.
No entanto, você pode definitivamente evitar pelo menos alguns deles, se alguém lhe disser o que está errado.
Posso ser esse “alguém” para você se quiser aprender Java.
Este artigo descreve erros comuns de quem deseja aprender Java e de Java iniciante (ou alunos de qualquer outra linguagem de programação). Sou desenvolvedor Java sênior e tutor de Java, então sei muito sobre o assunto.
Antes de começar … Erro nº 0: Pensar que a faculdade de TI é obrigatória
A faculdade ou qualquer outra instituição educacional oficial oferece conhecimento e compreensão da ciência da computação, mas dificilmente o torna um desenvolvedor de software profissional voltado para a indústria.
Na faculdade, você enfrenta uma abordagem acadêmica da programação. Seu estudo é focado em teoria e algoritmos. Você também pode fazer alguns grandes projetos quase científicos no final do ano. Pode ser útil, mas não para um desenvolvedor de software típico voltado para a indústria.
O que quero dizer é que talvez a faculdade não seja a melhor fonte de conhecimento em desenvolvimento de software, mas pode servir para você se você está sonhando com uma carreira de programação científica. Se você é um estudante do ensino médio e quer ser um programador, a faculdade de ciência da computação também é uma boa escolha para você.
Em qualquer outro caso, a faculdade de TI não é uma necessidade e, muitas vezes, é apenas uma perda de tempo. Lembre-se de que nem todos os programadores têm diploma de ciência da computação. Sem surpresa, a maioria deles não o faz.
Erro nº 1: a ilusão de aprendizagem
Lembro-me de Dave, que era um dos meus alunos. Ele tentou vários cursos de Java online gratuitos várias vezes. Ele comprou, presumo, metade de todos os livros de Java na Amazon. Ele tinha um milhão de páginas nos favoritos de seu navegador, tudo sobre Java … e … ele não sabia o que fazer.
Ele começava um curso, depois outro, apenas para soltá-los um por um, repetidamente. Três anos (!) De seu esforço de aprendizado se passaram antes que ele me conhecesse.
“Então, Dave, em que tópicos você está no momento?” Eu perguntei.
“Scanner e leitor”, ele respondeu.
“Oh, bem … Como estão indo sua programação orientada a objetos e coleções?”
“Tentei um pouco, mas não em profundidade.”
“Você me disse que está aprendendo Java há três anos, não é?”
“… Sim, mas parei há alguns meses, você sabe, e comecei do zero novamente.”
Ele perdeu três anos apenas vagando e pulando de uma fonte para a outra. Bem, se você conhece Java pelo menos um pouco, deve estar pensando que Dave simplesmente não foi feito para o desenvolvimento de software. Felizmente, isso não está correto.
Seu problema é que ele começou a colecionar cursos e livros em vez de realmente aprender. Ele não era um mau programador em potencial, mas um péssimo professor para si mesmo.
Dave se tornou um desenvolvedor Java em treinamento um ano depois de se juntar a mim e começar a levar seu aprendizado a sério. Não estou tentando dizer a todos: “Ei, encontre um tutor agora; você não pode fazer isso sozinho. ” A maioria das pessoas pode fazer isso sozinhas, se souberem o que fazer e tiverem um plano de estudos adequado. E foi isso que fiz por Dave antes de tudo. Desenvolvi seu currículo e cronograma de aprendizado.
Não me interpretem mal. Conheço muitas pessoas que aprenderam a programar sozinhas usando apenas a internet. Eles têm uma habilidade muito importante – a capacidade de trabalhar com informações e distinguir entre o que é útil e o que é inútil.
O erro nº 0 pode matar seu sonho rapidamente, e o nº 1 o faz consumindo lenta e dolorosamente seu tempo e dinheiro.
É fácil lutar contra o número 0. Visite qualquer plataforma de candidato a emprego e pesquise uma posição de desenvolvedor de software Java. Eu não acho que você encontrará algum que requeira um diploma de ciência da computação, mas sim conhecimento e experiência em tecnologia.
O erro nº 1, “a ilusão de aprender”, é difícil. Ele contém preguiça, falta de decisão e busca pela pílula mágica para um aprendizado bem-sucedido. Um potencial desenvolvedor obtém muitas informações confiáveis e não sabe o que fazer com elas. Eles começam a achar que o desenvolvimento de software é muito difícil e param de tentar … ou tentam novamente e cometem os mesmos erros.
Bem, meu principal conselho é fazer da maneira certa:
- Obtenha o plano de estudos correto. Se você tem um orientador (um tutor ou amigo programador), esse é o melhor cenário. Se você não tem um plano de estudos e não pode ou não quer fazer cursos off-line, procure um bom curso on-line, um ou dois no máximo, e vá em frente. Avaliações / classificações independentes o ajudarão a escolher os cursos certos e, mais adiante neste artigo, darei alguns exemplos de bons cursos gratuitos.
- Consistência é a chave para uma aprendizagem bem-sucedida. Codifique todos os dias, ou pelo menos a cada dois dias.
- Do seu tempo, 75% ou mais deve ser dedicado à prática e 25% ou menos à teoria. Entrarei na análise desse erro típico do iniciante com mais detalhes abaixo. ## Erro nº 2: ler muita teoria e não praticar o suficiente Imagine um garotinho de 2 anos que está tentando falar. Porém, a mamãe e o papai não o deixam fazer isso, porque ele é muito pequeno e não sabe nada sobre o assunto. Eles decidem explicar-lhe as regras gramaticais primeiro e contratar um fonoaudiólogo (quanto mais cedo melhor!). Bem, depois de todas essas medidas, eles o deixaram tentar. Bem, acho que haveria mais pessoas sem palavras com essa abordagem!
Ou vamos imaginar um cara maior que quer jogar hóquei no gelo. “Foi mal cara. Sem gelo para você até que você leia ou ouça algumas palestras, como:
- A física do gelo
- Cinemática e dinâmica dos movimentos do jogador de hóquei
- Disco e taco de hóquei para manequins
- Psicologia do trabalho em equipe de jogadores de hóquei no gelo
- Feridas e traumas de jogadores iniciantes de hóquei no gelo
- O que fazer se os patins dos outros jogadores de hóquei estiverem desconfortavelmente perto do seu rosto ”“ Bem ”, diz o cara,“ é melhor eu continuar minha vida sem este jogo. O hóquei deve ser muito chato e assustador. E muito complicado. ”
Parece ridículo, não é? No entanto, muitos alunos e alguns professores pensam que é assim quando falamos sobre programação.
Minha mensagem aqui é muito simples:
- Para dominar qualquer atividade prática, você deve praticá-la!
- A programação é uma atividade prática.
- A conclusão de 1 e 2 é óbvia, certo? Desde os primeiros passos, encontre um curso ou livro com muitas tarefas de codificação e resolva-as todos os dias. Se você fizer isso, irá omitir um dos maiores erros ao aprender programação: focar muito na teoria.
Não quero dizer que você deva ignorar a teoria. Apenas “menos teoria, mais codificação”, com uma proporção de 25:75. Escrever código é a melhor maneira de aprender Java.
Erro nº 3: não verificar suas soluções da maneira certa
Seu código faz o que deveria? Quase sempre, o programador novato pensa que sim, se obtiver o resultado correto. No entanto, isso não significa que tudo está funcionando bem.
Quanto mais cedo você aprender a testar seu código adequadamente, mais rápido se tornará um codificador melhor. O teste de unidade de aprendizagem é uma habilidade muito útil, mas não para um novato completo. Você sabe, o teste de unidade adequado é uma espécie de superpotência!
O primeiro passo para dominar sua própria revisão de código é pensar em um “e se?” forma e tente conjuntos de dados diferentes. Não é fácil considerar todos os casos, mas você acumula uma experiência preciosa com cada “e se” no momento certo.
No entanto, devo admitir que nos últimos anos, surgiram alguns cursos e plataformas de programação muito legais, equipados com revisão automática de código. Eles simplificam significativamente suas primeiras etapas de codificação e oferecem a oportunidade de concentrar sua atenção nas tarefas.
Abaixo, você encontrará alguns links úteis para recursos com validação automática de código.
Erro nº 4: prática infrequente
Você conhece a maneira mais destrutiva e irracional de desenvolver habilidades práticas? Posso descrever com apenas uma palavra – “às vezes”. Aprender a codificar é como escalar uma colina de gelo. Se você parar, deslizará para trás muito rápido e provavelmente até rolará de cabeça para baixo. É a mesma história com suas habilidades de codificação. Quando você para de codificar, começa a perder a habilidade com uma rapidez surpreendente.
Aprender dessa forma desperdiça muito do seu tempo. Pare de se torturar e pratique a codificação regularmente. Com isso, quero dizer pelo menos três vezes por semana – ou, melhor ainda, todos os dias.
Erro nº 5: ser orgulhoso demais para pedir ajuda
Você sabe o que um desenvolvedor de software profissional faz quando não consegue resolver uma tarefa com possíveis soluções que ele já conhece? Eles vão ao Stack Overflow para perguntar a outras pessoas no fórum. Por que você, meu caro iniciante em Java, não faz o mesmo?
“E se minha pergunta for estúpida e outros caras rirem de mim?” você pode perguntar. Bem, realmente, e se? Você sabe que estamos vivendo na Grande Era dos Trolls, então uma boa ideia é simplesmente ignorá-los.
Lembre-se de uma coisa importante: você tem o direito de fazer a pergunta mais idiota do mundo para o seu aprendizado. Mas antes de perguntar, apenas google sua pergunta. Quase todas as perguntas para iniciantes foram feitas por outros alunos e já foram respondidas.
Quando se trata de fóruns de programação, fazer perguntas ou apenas conversar com outros iniciantes em Java ou desenvolvedores de software é realmente motivador. Você percebe que não está sozinho com essas questões, e há muitas pessoas que podem ajudá-lo, assim como aquelas a quem você pode ajudar.
Erro nº 6: desistir ou tentar resolver sua tarefa muito rapidamente
“Tentei resolver a tarefa uma vez e não achei a resposta certa. Devo perguntar ao Google … ou ao meu tutor … ou ao desenvolvedor de software que conheci recentemente. ”
Para para para. Você nem tentou ainda!
Claro, é difícil estimar o momento certo para pedir ajuda. No entanto, pergunte-se primeiro por que deseja obter ajuda agora. Provavelmente, é apenas preguiça ou que você quer realizar a tarefa mais rápido. Se for esse o caso, não o faça. É do seu aprendizado que estamos falando aqui, não de uma competição de velocidade.
Erro nº 7: escolher tarefas que são muito difíceis
Bem, este é o outro lado do erro nº 5. Alguns alunos estão prontos para passar centenas de horas resolvendo uma tarefa, o que é muito difícil para eles agora. Acredito que resolver muitos problemas simples para iniciantes é melhor do que resolver uma tarefa difícil, pelo menos nos primeiros dois ou três meses de aprendizagem.
Eu sugiro que você deixe sua (s) tarefa (s) difícil (s) para depois e vá em frente e resolva as outras. Você sempre pode voltar à difícil tarefa mais tarde. Talvez você descubra que não é tão difícil quanto parecia?
Erro nº 8: Perder sua motivação
“Não entendo o assunto… Não sou bom o suficiente para programar. Eu deveria desistir e tentar outra coisa. ” Parece familiar, hein?
Todo – quero dizer – todo aluno iniciante em programação perdeu a motivação pelo menos uma vez. Isso aconteceu comigo muitas vezes. Com muita frequência, na verdade. Todos os meus companheiros de equipe, bem como todos os meus alunos de sucesso, também experimentaram isso.
Lembre-se disso quando bater em você novamente. Se sua falta de motivação parece séria, tente mudar o assunto que está aprendendo agora. E não se esqueça: quase qualquer pessoa pode programar. Não é fácil de aprender, mas é definitivamente possível.
Links para uma aprendizagem Java de sucesso
Coletei alguns links bons para meus alunos e para simplificar meu próprio trabalho como tutor. Eles serão úteis para você também.
CodeGym é para iniciantes e alunos intermediários. É um curso prático online onde você pode encontrar um excelente plano de estudos do Core Java, cerca de 1.000 (presumo) tarefas de codificação com validação automática de código, bem como dicas e sugestões. Parece um pouco com um videogame: você tem seu personagem (um roboguy) que deve passar de novato a um programador Java. Quanto mais tarefas de codificação você realiza, mais pontos você ganha, e você gasta esses pontos de habilidade para abrir novas palestras e tarefas.
CodinGame é para alunos intermediários e avançados de Java ou outras linguagens. Dá a você a capacidade de mudar o jogo diretamente no ambiente de desenvolvimento integrado baseado em navegador, compilá-lo e ver as mudanças em tempo real! Aceite alguns desafios difíceis e torne-se um desenvolvedor melhor. Não é um curso online, mas uma maneira divertida de codificar, com exercícios divertidos e desafiadores para iniciantes sérios e para desenvolvedores profissionais.
GeeksforGeeks é um enorme portal de ciência da computação para geeks. Ele contém alguns cursos acadêmicos para diferentes linguagens de programação com bons programas e muitas tarefas práticas, questionários e quebra-cabeças. Você também pode encontrar problemas úteis relacionados a algoritmos e ciência de dados.
O Oracle Docs é a principal fonte para todos os desenvolvedores ou alunos Java dos autores da linguagem.
Três bons tutoriais de teoria Java para todos, desde iniciantes até alunos avançados: Tutorialspoint , w3schools e javaTpoint .
Stack Overflow é a maior sociedade de desenvolvedores onde você pode fazer suas perguntas ou buscar as soluções existentes para suas perguntas (feitas por outros alunos).
Coderanch é menor que Stack Overflow, mas é muito amigável para iniciantes e bom para desenvolvedores Java.
Reddit é um grande site onde você pode encontrar as respostas para suas perguntas. Subreddits benéficos são learnprogramming , java e learnjava .
O que ler / assistir em sua carreira:
- Head First Java de Kathy Sierra e Bert Bates é um bom livro para iniciantes.
- Core Java Volumes I e II — Fundamentals de Cay Horstmann é um dos melhores livros de Java e adequado para todos os alunos de Java. ## Enfrente os desafios do Java com confiança Você não está sozinho. Todos os alunos iniciantes em Java enfrentam desafios em seu caminho para dominar o desenvolvimento de software. É normal cometer erros; você ainda está aprendendo!
Se você está estagnado nos estudos, talvez se depare com um dos problemas que mencionei acima. Lembre-se de que todos eles têm uma solução fácil. Tenha isso em mente e pratique da maneira certa.
Pare de se preocupar e comece a programar!
Este artigo foi postado primeiramente como um artigo convidado no impressionante blog do Simple Programmer .