O que você deve aprender para se tornar um mestre Yoda em Java

John Selawsky Blocked Desbloquear Seguir Seguindo 2 de janeiro

Então você decidiu ser um Java Jedi … Há um longo caminho pela frente.

A estrada começa escrevendo código todos os dias, praticando e aprendendo um pouco de teoria. O primeiro grande passo é praticar o Java Core. Este passo é uma chave e consiste em vários níveis (veja abaixo). O segundo passo é aprender diferentes tecnologias que todo desenvolvedor moderno de software deve conhecer. A etapa final depende do que Java Padavan em particular quer fazer. " Treine-se para deixar tudo o que você teme perder" – disse Yoda.

Etapa 1: Java Core +

Nível zero: sintaxe Java

Isso é como aprender seu “ABC” para Java. Quando você era criança, aprendendo a escrever, você ganha uma compreensão de letras e palavras e como usá-las em conjunto. A mesma história com uma linguagem de programação. Não se preocupe com esse nível. Você absorve a sintaxe Java passo a passo durante a prática.

Temas:

  • O que é um objeto
  • O que é uma aula?
  • O que é um método
  • tipos primitivos
  • tipo String
  • Operadores básicos
  • Declaração Java if-else
  • Declarações de loop (por enquanto)
  • Matrizes

nível 1: OOP

OOP não é o tópico mais difícil do mundo, mas é extremamente importante. É importante ler e praticar os princípios da POO.

Herança de classes, implementação de interfaces, abstração de dados e comportamento, encapsulamento de dados e implementação de classes, polimorfismo e métodos virtuais são tópicos chave. Pratique os conceitos e leia livros (por exemplo, Cay Horstmann, Gary Cornell Core Java, Análise Orientada a Objetos e Design de McLaughlin).

nível 2: coleções Java

Você pode chamar um grupo de objetos individuais representados como uma única unidade como Coleção . Java fornece o Collection Framework que define várias classes e interfaces para representar um grupo de objetos como uma única unidade.

Você aprenderá as estruturas de dados por meio da interface Java Collections ( java.util.Collection ) e da interface Map ( java.util.Map ). Você pode chamá-los de duas principais interfaces de “raízes” de classes de coleções Java.

nível 3: exceções Java

Uma exceção (ou evento excepcional) é uma situação anormal, que surge durante a execução de um programa. Esse mecanismo simplifica muito a captura de bugs nos programas. Todas as classes de exceção são subtipos da classe java.lang.Exception e todo estudante de Java deve conhecê-la muito bem.

Nível 4: fluxos de entrada / saída

Java realiza operações de entrada e saída via Streams. Você pode imaginar um fluxo como um fluxo contínuo de dados. Este tópico pode ser problemático para iniciantes. Um bônus para aprender este tópico é descobrir o verdadeiro significado oculto de System.out.println() .

Nível 5: algoritmos e quebra-cabeças

E quanto aos algoritmos? Muitas vezes há um debate sobre o valor de aprender como codificar algoritmos de classificação ou pesquisa. Durante o estudo das coleções e estruturas de dados, você descobrirá métodos de classificação / pesquisa. Java e a maioria das linguagens possuem bibliotecas com implementações de todos os algoritmos conhecidos para classificação e pesquisa. Isso significa que eles já foram escritos para você usar. Então você deve (ou não) se preocupar em aprender como codificá-los?

A resposta que eu prefiro é – você deve aprender isso para saber como pensar melhor como um engenheiro de software. É muito útil criar suas próprias implementações de algoritmos, bem como formar uma compreensão de sua complexidade. Especialmente para pessoas que estudaram matemática apenas no ensino médio.

Todos os algoritmos populares de ordenação e pesquisa são descritos e resolvidos na rede muitas vezes. Então você não precisa de um validador para verificação. Escolha qualquer curso, por exemplo, Universidade de Princeton ou CS50 ou um vídeo do YouTube e tente codificar sua própria versão.

E quanto a quebra-cabeças ou tipo não padronizado de tarefas Java? Eles são extremamente úteis para qualquer programador porque você é ensinado a resolver problemas difíceis e confusos.

Nível 6: Multithreading Java

Todos após o nível zero podem escrever um programa que exiba “Hello World”, mas e se você fizer isso usando a API Java Thread, para que a famosa frase seja impressa de um thread adicional? E se o programa deve imprimir “Hello world” cinco vezes, a partir de cinco threads diferentes, sem seqüências de caracteres alternadas. Multithreading é difícil até mesmo para as tarefas mais simples e é um tópico Java avançado.

Nível 7: Padrões Java

Neste nível você saberá que pode escrever programas um pouco. Eles são bons o suficiente? Eles se parecem com código profissional? Para escrever código como um profissional, você deve aprender primeiro os padrões de design. Eles representam as melhores práticas usadas por desenvolvedores de software experientes. Os padrões de projeto resolvem muitos problemas gerais enfrentados pelos desenvolvedores de software durante o desenvolvimento. Esses padrões foram escolhidos como resultado de tentativa e erro de vários desenvolvedores de software durante um período substancial de tempo.

Nível 8: teste unitário

Uma habilidade importante para qualquer programador que esteja escrevendo testes de unidade em seu próprio código. Quando você descobre como escrever testes, você deve aplicar isso como um hábito para todos os seus projetos. Os testes de unidade são muito mais úteis do que fazer verificações usando a saída do console. Testes de unidade também são a primeira coisa que as empresas normalmente confiam em novos desenvolvedores para escrever.

Nível 9: lambdas

O suporte para expressões lambda apareceu no Java 8, mas nem todos os programadores as adotaram ainda. No entanto, hoje o conceito de “tarefas para Java Junior” inclui manipulações com expressões lambda, então eu recomendo aprendê-las também.

Nível 10: Serialização em JSON, RMI, HttpUrlConnection, soquete

Esses tópicos são para desenvolvedores Java intermediários e avançados. Eles exigem um conhecimento mais profundo e atuam como uma espécie de ponte para seus próprios projetos, estágios e trabalho.

Onde encontrar tarefas práticas para os níveis 0–10?

CodeGym – é um curso Java Core com mais de 1000 tarefas de codificação com validações.

w3resource – um site bom e muito famoso para desenvolvedores web.

GeeksForGeeks (especialmente algoritmos e quebra-cabeças) – recurso muito agradável com muitas tarefas e cursos diferentes.

Etapa 2: complementos

O desenvolvedor de Java usa não apenas Java, mas muitas tecnologias diferentes. Alguns deles se tornaram um padrão para todos os que estão em TI. No entanto, isso não significa que você deva conhecer essas tecnologias tão profundamente quanto o Java Core. Aprenda-os um pouco, alguns deles você vai descobrir melhor durante o seu trabalho ou estágio.

Git. É o sistema de controle de versão mais usado para rastrear alterações em arquivos de computador e coordenar o trabalho nesses arquivos entre várias pessoas. Então, se você quer ser um programador profissional, entender o Git é um requisito. Quase toda empresa de software usa isso.

Aprenda aqui: Aprenda Git Branching ou aqui: o que é Git

Aprenda Git – Melhores Tutoriais Git (2019) | gitconnected
Os 42 principais tutoriais do Git. Os cursos são submetidos e votados pelos desenvolvedores, permitindo que você encontre as melhores lições do Git e… gitconnected.com

JavaScript. Essa linguagem de script de plataforma cruzada e orientada a objetos é encontrada em qualquer navegador da web. O JavaScript pode ser conectado aos objetos de seu ambiente para fornecer controle programático sobre eles. Portanto, o JavaScript está em toda parte e, mesmo que você não queira trabalhar como desenvolvedor frontend, a palavra "JavaScript" é um bom complemento para o seu currículo.

Aprenda aqui: w3resource ou aqui: codecademy

Aprenda JavaScript – Melhores Tutoriais em JavaScript (2019) | gitconnected
Os 64 melhores tutoriais de JavaScript. Os cursos são submetidos e votados pelos desenvolvedores, permitindo que você encontre o melhor… gitconnected.com

SQL Definido pela Wikipedia como "Structured Query Language é uma linguagem específica de domínio usada em programação e projetada para gerenciar dados mantidos em um sistema de gerenciamento de banco de dados relacional (RDBMS) ou para processamento de fluxo em um sistema de gerenciamento de fluxo de dados relacional (RDSMS)." É muito fácil aprender no nível iniciante. Quase todo programador usou SQL em algum momento.

Aprenda aqui: SQLBolt ou aqui w3schools

Aprenda SQL – Melhores Tutoriais SQL (2019) | gitconnected
Os 27 principais tutoriais de SQL. Os cursos são submetidos e votados pelos desenvolvedores, permitindo que você encontre as melhores lições de SQL e… gitconnected.com

Etapa 3: Torne-se um mestre

A maioria dos desenvolvedores de Java trabalha em duas áreas: tecnologia móvel ou projetos corporativos. Depois de obter o conhecimento básico nos dois primeiros passos, dividimos em dois ramos diferentes. Não vamos nos aprofundar neles em detalhes, mas cada ramo merece um artigo especial. Então, brevemente:

Tecnologias Móveis

O conhecimento de Java abre o mundo do desenvolvimento do Android para você. Um ótimo lugar para começar a aprender a programação do Android: Treinamento para desenvolvedores do Google

Aprenda Android – Melhores Tutoriais Android (2019) | gitconnected
Os top 28 tutoriais do Android. Os cursos são submetidos e votados pelos desenvolvedores, permitindo que você encontre o melhor Android… gitconnected.com

Tecnologias empresariais

Isso consiste em um monte de tecnologias difíceis de aprender sozinho. É muito melhor encontrar cursos ou um estágio. É proveitoso aprender sobre o Spring , o Java Framework mais popular, e o Hibernate , uma ferramenta de mapeamento relacional de objetos e outras tecnologias relacionadas, e eles são ensinados nesse curso gratuito da Udemy .

Se você escolher o caminho do desenvolvedor Java – Que a força esteja com você!