Quando alguém começa a aprender a programar , seja sozinho ou através de cursos online, é muito importante enfatizar algum domínio e estruturar tudo. Neste artigo, apresentamos nossa estrutura — Tarefas Java para iniciantes, com uma indicação de quanto cada tipo específico de tarefa é representado no curso de programação online CodeGym , juntamente com links úteis.
Pratique com a sintaxe da linguagem
Estas são as primeiras tarefas de programação Java para iniciantes — a base — de "Hello, World" a loops e arrays. CodeGym tem muitos deles: eles estão especialmente concentrados nos seis primeiros níveis da missão Java Syntax . É improvável que você precise procurar mais deles em outro lugar. Certamente temos o suficiente para dominá-los. Além do mais, quando você faz qualquer tarefa mais difícil, você automaticamente revisa a sintaxe. Mas se de repente você se sentir em necessidade, qualquer livro de Java para iniciantes contém problemas semelhantes. Mas, ao contrário do CodeGym, esses livros de exercícios não terão verificação instantânea de tarefas.Pratique com coleções
As coleções são o primeiro tópico "sério" que os programadores novatos encontram em seus estudos. Tarefas iniciantes dedicadas a coleções Java também são bem representadas no CodeGym — no sétimo e oitavo níveis da missão Java Syntax. É aqui que o aluno ouvirá pela primeira vez sobre o Java Collections Framework e trabalhará um pouco com as interfaces Set, List e Map junto com algumas de suas implementações. No entanto, neste estágio, você obterá apenas uma introdução a esta ferramenta útil e a tarefas Java simples. Você estudará as coleções mais detalhadamente durante a missão Java Collections . Você pode ver como esse assunto é importante - uma missão inteira foi batizada com o nome dele!Pratique com exceções
Java fornece um mecanismo especial para lidar com situações excepcionais, simplificando significativamente o processo de "capturar" erros de aplicativos. Mas para aproveitar ao máximo, você precisa descobrir como o tratamento de exceções funciona em Java. CodeGym tem muitas dessas tarefas. Você até os encontrará na primeira missão — Java Syntax.Pratique com conversão de tipos
Este grupo de tarefas poderia, é claro, ser classificado como tarefas básicas de sintaxe. No entanto, em nossa humilde opinião, as pessoas costumam subestimar essas tarefas e os novatos se atrapalham nelas. É por isso que quebramos o molde: não estudamos as tarefas de conversão de tipo primitivo logo no início, como outras pessoas costumam fazer. Em vez disso, vamos abordá-los um pouco mais tarde — no final da missão Java Syntax. E então aprenderemos a lançar tipos não primitivos (objetos) quando estudarmos OOP na missão Java Core . CodeGym tem o suficiente dessas tarefas. Você não precisa procurar mais.Pratique com POO
OOP não é o tópico mais difícil, mas é extremamente importante. E esconde muitas sutilezas que os entrevistadores gostam de usar para capturar aspirantes a desenvolvedores juniores. O curso CodeGym contém tarefas práticas de programação para iniciantes para ajudá-lo a entender a filosofia orientada a objetos. Mas, para realmente entender OOP, recomendamos que você leia a literatura relacionada (por exemplo, "Core Java" de Cay Horstmann e Gary Cornell, "Análise e design orientado a objetos" de McLaughlin ou outros livros ) .Pratique com fluxos de entrada/saída
Começamos a usar fluxos de E/S muito antes de entendê-los. Este é Java, meu jovem gafanhoto! Explicar System.out, muito menos System.in, é difícil e desnecessário quando você começa. Mas conforme você trabalha na missão Java Core , você sabe apenas o suficiente para entender esse tópico um tanto confuso, e falamos não apenas sobre E/S do console, mas também sobre como trabalhar com o sistema de arquivos. O principal é não pular essas tarefas (o CodeGym tem bastante) e mergulhar consistentemente na teoria.Quebra-cabeças
Por "brainteasers", queremos dizer tarefas de maior complexidade que não são tanto sobre conhecimento, mas sobre a capacidade de aplicar o que você sabe de maneiras não convencionais. Essas são tarefas comuns para um desenvolvedor Java júnior. As empresas gostam muito de perguntar a eles durante as entrevistas, mas no trabalho real, esses quebra-cabeças não são encontrados com muita frequência. Portanto, o CodeGym tem alguns, mas não muitos (geralmente você os verá nas aulas do Capitão Esquilos). Onde posso encontrar quebra-cabeças?- https://javahungry.blogspot.com/2014/03/java-programming-puzzles-tackling-brainteaser-in-java-interv...
- https://howtodoinjava.com/java-interview-puzzles-answers/
- https://www.codechef.com/
- https://www.codewars.com/?language=java
Algoritmos e estruturas de dados
Quanto a algoritmos e estruturas de dados, há um debate constante sobre o quanto um futuro programador precisa deles. Responderemos mais uma vez: eles são essenciais para estabelecer a mentalidade correta, mas raramente são necessários diretamente para o trabalho. Isso ocorre porque Java, assim como outras linguagens de programação, possui bibliotecas com implementações de todos os algoritmos imagináveis para classificação, pesquisa e muito mais. Ainda assim, escrever sua própria implementação de um algoritmo pode ser muito útil e dar uma ideia de sua complexidade. Especialmente para pessoas que estudaram matemática apenas no ensino médio. Basicamente, essas tarefas podem ser trocadas por quebra-cabeças com a única diferença de que todas foram descritas e resolvidas repetidamente online. Você nem precisa de uma ferramenta validadora. Escolha qualquer curso, digamos, da Universidade de Princetonou uma faculdade na Califórnia . Pratique com estruturas de dados:Multithreading
Qualquer um pode escrever um "Olá, Mundo!" programa. Mas que tal usar a Java Thread API para exibir a famosa frase de um thread separado? Ou que tal exibir "Hello, World!" cinco vezes de cinco fios diferentes sem misturar as cordas? Multithreading será o melhor "teste de sua força" enquanto você estuda Java Core. Uma missão inteira do CodeGym, chamada Java Multithreading , é dedicada a esse tópico, que está longe de ser fácil. Ele contém um grande número de tarefas para permitir que os alunos sintam a "dor e a beleza" do processamento paralelo. Os primeiros projetos "reais" dos alunos geralmente contêm algum nível de multithreading. Por exemplo, jogos simples.
Pratique com multithreading Cinco filósofos silenciosos sentam-se a uma mesa redonda. Um prato de espaguete está na frente de cada um deles. Há garfos na mesa entre cada filósofo (um à esquerda e outro à direita). Cada filósofo pode comer ou ter pensamentos profundos. Mas ele só pode comer segurando dois garfos, ou seja, pegando o da esquerda e o da direita. "Pegar o garfo" e "colocar o garfo" são ações distintas que são executadas sequencialmente. |
Pratique com genéricos
A generalização é a própria essência da automação, portanto, em certo sentido, é a essência da programação. Assim, não podemos ignorar o tópico de genéricos em Java. CodeGym tem tarefas de programação envolvendo genéricos (principalmente na quest Java Collections, a partir do nível 5). Onde posso encontrar exercícios e materiais úteis sobre genéricos?- https://docs.oracle.com/javase/tutorial/java/generics/QandE/generics-questions.html
- https://www.geeksforgeeks.org/generics-in-java/
- http://www.angelikalanger.com/GenericsFAQ/FAQSections/ProgrammingIdioms.html
- "Java Eficaz" por Bruce Eckel
Pratique com padrões de design
Em algum ponto (dois terços do curso CodeGym), os programadores iniciantes devem começar a observar as regras para alcançar uma boa forma na programação. Estamos falando de formatação de código adequada (mais simples) e padrões de design (mais difíceis). CodeGym tem tarefas para isso. Você precisará de mais e poderá encontrá-los em " Head First Design Patterns " de Elisabeth Freeman e Kathy Sierra. Ou você pode pensar em como aplicar padrões de design a tarefas resolvidas anteriormente.Teste de unidade
Uma habilidade importante para qualquer programador, muitas vezes erroneamente atribuída apenas aos testadores, é a capacidade de escrever testes de unidade para seu próprio código. O CodeGym tem algumas tarefas relacionadas a testes de unidade, mas você realmente não precisa se preocupar em procurar mais. Quando você entender como escrever testes de unidade, crie o hábito de cobrir seu código (em seus próprios projetos, em seus estudos) com eles. Isso é muito mais útil do que realizar verificações com a saída do console, uma prática que geralmente aflige estudantes de programação. Além disso, muitas vezes a primeira tarefa que os novos desenvolvedores juniores recebem nas empresas é escrever testes de unidade para o código de outra pessoa.Pratique com expressões regulares
Este é um tópico simples que quase nenhum iniciante entende, porque é desconhecido e eles são preguiçosos. Realmente vale a pena passar alguns dias estudando o assunto, chegar ao fundo do "regex" e ganhar vantagem sobre quem não o fez. Isso também é útil porque as expressões regulares são quase independentes do idioma: se você as aprender uma vez, poderá usá-las em qualquer lugar. CodeGym não possui tarefas dedicadas a expressões regulares, embora algumas possam ser resolvidas com a ajuda delas. Aqui estão recursos adicionais para entender este tópico:- regex101.com — um site onde você pode verificar expressões regulares online
- Mike Fitzgerald's "Introducing Regular Expressions" — uma cartilha concisa e simples.
GO TO FULL VERSION