DEV Community

Rodrigo
Rodrigo

Posted on • Updated on

E a certificação hein?

Olá pessoal, tudo bom?
Antes de mais nada, feliz 2023! Que tudo de melhor aconteça com você <3
Faz tempo que não venho por aqui, então peço desculpas, eu tô tentando me organizar pra melhorar meus estudos no Java e tenho feito bastante experimentos com conteúdos, podcast, código, cursos, aliando isso a jornada de trabalho e por isso a coisa tá meio devagar, mas parado, nunca!
Pensando nisso, o que tô querendo executar agora por aqui é simples, tô iniciando uma leitura nova sobre o famigerado Oracle Certified Associate (OCA), que é a certificação inicial pra quem quer se aprofundar no mundo Java, dito isso, a ideia é trazer essa leitura pra cá e trocarmos experiências sobre o meu modo de ver o que estudei, compartilhando com vocês essa visão, logo, vamos ter bastante pano pra manga, certo?! #Partiu rumo a certificação!
Bom, o lance com a certificação (pra mim) é me condicionar a perseguir o que ela pede como requisito e usar esses requisitos como norte para aprender de forma mais direcionada sobre a linguagem Java (que é um universo bem grandão, fala ai?), mas isso pode valer pra qualquer outra certificação também, beleza?

Plano de estudo

Aqui um material de apoio sobre plano de estudo produzido pela Zup, muito legal! recomendo a leitura: https://www.zup.com.br/blog/plano-de-estudo-zup
Você fazer um plano de estudo hoje é relativamente fácil, embora devemos ter uma cautela para não sair fazendo ele de qualquer forma. Então bora lá?

Teu direcionamento pra estudo, de onde vêm?

Minha principal fonte de estudo hoje, bom...será da Alura. Aqui você será direcionado para a página da Formação Certificação Java, mas caso eu use as referências de algum outro material ao longo da jornada, fica tranquilo que eu também vou colocar as referências pra gente ir seguindo juntos a cada novo tópico, beleza? Ah! e esse texto aqui não será o final, ele vai ser orgânico pra sempre que possível, ele ir melhorando...

Por onde começo?

Acho importante partimos do modelo conceitual pra depois a gente entender o que no detalhe o Java faz por debaixo de tudo. Hoje, se você fizer uma classe Java qualquer em um projeto, você sabe como ela se comporta e por onde ela vai até ser executada de fato? Vou te confessar que eu não, então vamos aprender juntos!?
Imagem que mostra vários círculos um dentro do outro, no total de seis e em cada um, uma descrição que será explicada a seguir
Fonte: https://foojay.io/wp-content/uploads/2020/11/image2020-11-4_13-5-7.png

Detalhando um pouco a imagem acima, no desenho vemos várias camadas e vou tentar explicar cada uma adiante no que a imagem descreve como hierarquia de uma aplicação Java e tempo de execução - em tradução livre.
Da camada mais interna à mais externa temos:

  • JVM - O núcleo da aplicação que é conhecida como Java Virtual Machine ou em tradução livre Máquina Virtual Java, ou simplemente pelo acrônimo JVM. É na JVM que acontece a mágica do Java que ficou conhecido pelo ditado Write Once Run Anywere ou com pelo acrônimo WORA. Em outros artigos vou detalhar melhor o que é a JVM no detalhe e como ela trabalha, mas por hora, ficamos com esse conceito. É pra ela que vai todas as classes Java e independente do sistema operacional, o código será executado.
  • Java API libraries - Nada mais são do que as bibliotecas básicas para que o ecossistema Java funcione de forma adequada; Ex.: java/javac/tools/applet e outras;
  • JRE o Runtime - O runtime é a descrição do ambiente onde são concentradas as duas camadas anteriores (JVM + Java Lib) que são responsáveis pela de execução de um programa desenvolvido em Java. Então se você precisa executar um programa Java (um .jar da vida), por exemplo, da Receita Federal, você precisará ter um ambiente mínimamente preparado para essa execução e este ambiente é chamado de JRE runtime;
  • JDK - Já o Java Development Kit ou JDK é o ferramental que todo desenvolvedor Java necessita. Essa camada é necessária para que o desenvolvedor seja capaz de criar suas próprias lógicas de programação, seja ela, a execução mais simples como uma soma de dois números, um hello world ou uma execução mais complexa como uma classe de controle (Controller) dentro de uma API;
  • Apache etc. Open Source libraries - É o que a gente conhece hoje como Framwork ou até mesmo uma biblioteca adicional para uma dada execução qualquer. Ex.: Spring Framework ou a biblioteca para uso de logs na aplicação, o Log4J;
  • Application - É o produto final, um software, que foi desenvolvido e desenhado para cumprir um propósito. É muito comum dizermos que é o resultado de um desenvolvimento dado um cenário, seja ele uma pesquisa científica ou um fluxo de negócio dentro de uma empresa, por exemplo. E vejam, o produto pode ser uma biblioteca, um game, um app desktop, um web app, etc... Java é demais ☕

Deixo aqui um podcast que complementa o artigo acima: Podcast do Lambda3 - Ecossistema Java

Teve dúvida? coloca aí nos comentários e vamos bater um papo!

Abraços e até a próxima 🚀

Top comments (3)

Collapse
 
wldomiciano profile image
Wellington Domiciano

Achei muito legal a iniciativa de compartilhar sua caminhada neste objetivo!

Minha dúvida é: Por que vc escolheu a certificação do Java 8 e não a do Java 17 logo?

Entendo que grande parte das empresas ainda usa Java 8, mas as versões do 9 em diante trouxeram ainda mais coisas que ficarão de fora do seu roadmap como o sistema de módulos, por exemplo. E os frameworks estão aumentando a versão minima requerida e já deixando o Java 8 de fora.

Fora que a certificação do Java 8 é mais cara, pois vc precisaria tirar a OCA e a OCP e cada uma tá custando coisa de 1200.

Só que este modelo mudou na certificação do Java 11 e agora vc só precisa de uma única prova.

O que vc acha?

Collapse
 
eguadorodrigo profile image
Rodrigo

Fala Wellington, tudo beleza cara?
Explicando bem rapidinho o porque: porque a formação da Alura é baseado no Java 7 pra ser bem exato hahaha. Eu entendo que o Java 8 já tá sendo substituído pelas versões novas, como o 11/17/19...e logo, logo já teremos mais outra versão.
"Então cara, vai pras mais novas!" e a minha vontade é essa mesmo, só que mesmo que eu use o Java 8 como caso de estudo, se por ventura quiser seguir num Java 11 ou acima, vou precisar só pegar o que de fato mudou da versão mas a base será a mesma...vou precisar só revisar as tais JEPs.
Então meio que é indiferente a versão que eu uso se for pra aprender a base, os conceitos, palavras reservadas, declarações e etc...saca?
Mas você têm razão, se for possível, comece com uma versão mais recente pra estudar o cenário mais completo possível sobre as atuais experiências pra desenvolvimento Java!
E outra, meu foco não é a certificação, mas sim o estudo...se eu me inscrever e conseguir tirar ela, será um plus ! :)

Collapse
 
wldomiciano profile image
Wellington Domiciano

Entendi. Obrigado.

Faz mesmo sentido ir se atualizando tendo o Java 8 como base.