Quais os degraus para a carreira em Java?

Saudações programadores! Eu sou o Gabriel e preciso da sabedoria coletiva de vocês.

//Introdução

Li alguns tópicos parecidos com esse, de mais de dois anos atrás. Porém senti a necessidade de postar e receber respostas atuais.

Eu sempre gostei de programação, porém nunca trabalhei como programador e esse ano eu decidi virar para essa área e estudar mais forte do que apenas por hobbie. Porém diante de pesquisas sobre conteúdos eu me encontrei de frente com dezenas de assuntos diferentes. E isso me faz questionar: O QUE APRENDER?

Dos livros que ESTOU ESTUDANDO ATUALMENTE, segue alguns títulos:

  • Java como programar edição 10; - Deitel
  • Java 8 – Ensino Didático - Desenvolvimento e Implementação de Aplicações - Sérgio Fugeri
  • Apostila Gratuita Java Orientação a Objetos - Caelum

Após esse conteúdo, VOU COMPRAR muitos outros. Como por exemplo:

  • Desbravando Java e Orientação a Objetos - Casa do Código

  • Design Patterns com Java - Casa do Código

  • Java SE 8 Programmer I - Casa do Código

  • Spring MVC - Casa do Código

  • Test-Driven Development - Casa do Código

  • Orientação a Objetos e SOLID para Ninjas - Casa do Código

  • Introdução à Arquitetura e Design de Software - Casa do Código

  • JSF Eficaz As melhores práticas para o desenvolvedor web Java - Casa do Código

  • Java 8 Prático Lambdas, Streams e os novos recursos da linguagem - Casa do Código

  • Aplicações Java para a web com JSF e JPA - Casa do Código

  • REST Construa API’s inteligentes de maneira simples - Casa do Código

  • JPA Eficaz As melhores práticas de persistência de dados em Java - Casa do Código

  • Java EE Aproveite toda a plataforma para construir aplicações - Casa do Código

  • Testes automatizados de software Um guia prático - Casa do Código

  • CDI Integre as dependências e contextos do seu código Java - Casa do Código

  • VRaptor Desenvolvimento ágil para web com Java - Casa do Código

  • JavaFX Interfaces com qualidade para aplicações desktop - Casa do Código

  • Coleção Código Java de Qualidade - Casa do Código

  • Explorando APIs e bibliotecas Java JDBC, IO, Threads, JavaFX e mais - Casa do Código

  • Play Framework Java para web sem Servlets e com diversão - Casa do Código

  • Coleção Frameworks Java - Casa do Código - Casa do Código

  • Meteor Criando aplicações web real-time com JavaScript

  • A lógica do jogo Recriando clássicos da história dos videogames - Casa do Código

  • MundoJ Segurança com Java - Casa do Código

  • iReport Crie relatórios práticos e elegantes - Casa do Código

  • MundoJ Orientação a Objetos - Casa do Código

  • MundoJ Java efetivo - Casa do Código

  • Desenvolvimento de Jogos para Android - Casa do Código

  • Jogos Android Crie um game do zero usando classes nativas - Casa do Código

  • Google Android crie aplicações para celulares e tablets - Casa do Código

  • A Web Mobile Design Responsivo e além para uma Web adaptada ao mundo mobile - Casa do Código

  • Web Design Responsivo Páginas adaptáveis para todos os dispositivos - Casa do Código

  • HTML5 e CSS3 Domine a web do futuro - Casa do Código

  • Dominando JavaScript com jQuery - Casa do Código

  • Introdução e boas práticas em UX Design - Casa do Código

  • Web Design Responsivo Páginas adaptáveis para todos os dispositivos - Casa do Código

  • Mean Full stack JavaScript para aplicações web com MongoDB, Express, Angular e Node - Casa do Código

  • Guia Front-End O caminho das pedras para ser um dev Front-End - Casa do Código

  • Coleção Web Design - Casa do Código

  • Coletânea Front-end Uma antologia da comunidade front-end brasileira - Casa do Código

  • CSS Eficiente Técnicas e ferramentas que fazem a diferença nos seus estilos - Casa do Código

  • Crie aplicações com Angular O novo framework do Google - Casa do Código

  • Vue.js Construa aplicações incríveis - Casa do Código

(Em frontEnd ainda preciso pesquisar outros livros, fora da casa do código)

//mainQuestions:

Na minha cabeça eu acho que devo aprender tudo. Começando com:
1 - A base que estou estudando, informada acima.
2 - Passar para banco de dados
3 - Desktop com JavaFX (Swing já vi um pouco por causa do livro do Sergio Fugeri, mas sei que agora é javaFX)
4 - Web (E tudo que inclui nela, linguagens de frontEnd e seus frameworks, etc)
5 - Android, apps e jogos.

//Importante
Agora vem as grandes questões pra me dar rumo:

1 - O que eu tenho na cabeça sobre o que preciso estudar está certo? Se não, quais os degraus que eu devo subir? Ou seja, o que eu devo por na lista, a sequencia a ser seguida?

2 - Atualmente, a área de web ainda é a maior? Meu interesse é bastante na web e android. Se sim, qual o curso de ações vocês recomendam? Baseando-se em livros.

3 - Para estudar java/Android eu preciso necessariamente passar pelos degraus anteriores ou não? Se não, é recomendavel que sim ou uma coisa não tem nada a ver com a outra?

4 - Que tipos de projetos são interessantes eu desenvolver e colocar no meu GitHub para servir como meu “curriculo” de desenvolvedor? Já que não tenho experiência

Obrigado se você leu até aqui e está disposto a doar seu tempo para ajudar na minha carreira!

Que a força esteja com você
Gabriel Saldanha
(Me add no Facebook pra gente fazer amizade, se quiser fb.com/SemBullShit)

Rapaz, se você está decidido assim como diz nesta expressão, só digo uma coisa: vá em frente!
É tanto livro que não consegui acompanhar o raciocínio de forma geral, mas tenho certeza que após ler essa lista aí você já estará muito a frente de muita gente e terá as respostas para TODAS as suas perguntas que fez mais abaixo.

Essa pra mim é a parte mais importante: independente se você vai ler 2, 5, 10, 50 livros, comece a fazer código no primeiro dia, de tudo o que for aprendendo. Crie projetos pessoais mesmo que simples e coisas que já existem e vá compartilhando no Github. À medida que você vai aprendendo mais, você mesmo vai encontrar problemas no teu código e vai melhorando ele, fazendo teus projetos no Github evoluírem.

O Github poderá ser teu portfólio pra conseguir o primeiro emprego. Não deixa pra fazer a primeira linha de código depois de ler aquela lista extensa de livros. Faça desde o primeiro dia.

Boa leitura…risos

Obrigado pela resposta @leandronsp !

O raciocinio é basicamente:

Na minha cabeça eu acho que devo aprender tudo. Começando com:

  • A base que estou estudando, informada acima.
  • Passar para banco de dados
  • Desktop com JavaFX (Swing já vi um pouco por causa do livro do Sergio Fugeri, mas sei que agora é javaFX)
  • Web (E tudo que inclui nela, linguagens de frontEnd e seus frameworks, etc)
  • Android, apps e jogos.

E as perguntas que eu faço são:

1 - O que eu tenho na cabeça sobre o que preciso estudar está certo?
Se não, quais os degraus que eu devo subir? Ou seja, o que eu devo por
na lista, a sequencia a ser seguida?

2 - Atualmente, a área de web ainda é a maior? Meu interesse é
bastante na web e android. Se sim, qual o curso de ações vocês
recomendam? Baseando-se em livros.

3 - Para estudar java/Android eu preciso necessariamente passar pelos
degraus anteriores ou não? Se não, é recomendavel que sim ou uma coisa
não tem nada a ver com a outra?

4 - Que tipos de projetos são interessantes eu desenvolver e colocar
no meu GitHub para servir como meu “curriculo” de desenvolvedor? Já que
não tenho experiência

Qual a sua opinião sobre essas 4 perguntas?

Eu não diria o que colocar na lista, mas tirar. Você não precisa sair aprendendo tudo de uma vez com livros, isso vai ser aos poucos, e mesmo depois que tiver 10, 20 anos de experiência, vai ver que não tem como absorver tudo, a não ser que tenha uma mente especial muito acima da média, memória fotográfica, algo do gênero.

É muita informação, você vai ficar bitolado e pode entrar em burnout. De tudo que pude aprender até hoje na minha experiência, a mais importante é saber dividir os problemas grandes em pequenos problemas, para assim não perder o foco e as metas. No teu caso, que tem um grande “problema” pela frente, divide ele em partes, faz a primeira e depois pensa na segunda. Não adianta você fazer uma lista extensa de aprendizado pq a medida que for aprendendo e ganhando experiência, vc mesmo vai mudar as prioridades da tua lista. Muita coisa na tua lista aí nem faz sentido aprender hoje em dia (na minha opinião).

Tentando responder a todas as suas perguntas, meus 2 cents para qualquer pessoa que está começando a programar em 2017:

Com isto acima, a quantidade de livros é bem menor do que tua lista e acredito que já estará apto pra fazer projetos e colocar no portfólio. Pensa em qualquer coisa, sei lá, o famoso e já clichê “TODO list”, ou outra coisa que vier em mente, faz de ponta-a-ponta, web e mobile e bota no Github. Esquece o restante da lista (frontend, etc), tenta fazer apenas isso e quando estiver pronto e com um projetinho mobile + web no Github, você encontrará por si a respostas pra todas suas perguntas e terá mais capacidade pra pensar nos próximos passos.

São pertinentes e entendo sua posição, também já tive essas dúvidas um dia e sou bastante ansioso por sinal. Mas meu conselho é: foca numa coisa, esquece o restante e quando terminar aquela coisa, pensa no próximo passo a seguir.

(Nota importante: tudo oq eu disse não é verdade absoluta, podendo servir ou não como ajuda nas decisões a serem tomadas pelo autor da thread).

1 curtida

Certamente a Casa do Código ficará feliz com suas compras :grin:

Eu concordo com o @leandronsp . Você está com uma lista enorme de coisas que quer aprender. O conteúdo listado aí é para muitos anos (décadas talvez ?) de estudo. Seus objetivos podem mudar com o tempo, então não tente absorver tanto em tão pouco tempo.

Falando em objetivos, o que você espera conseguir com tudo isso? Estudar é interessante, mas no quê você quer atuar? Já possui alguma formação na área (mesmo que um técnico/tecnólogo)? Se não, por que não considera essa opção? Tem algum tipo de vaga em mente?

Outro ponto é a questão de foco. Por exemplo, você colocou alguns livros de jogos. Embora seja interessante, faz parte dos seus objetivos estudar a fundo sobre desenvolvimento de jogos nesse momento? Ou é só por curiosidade? Porque é um investimento razoável para algo que você não vai usar num futuro próximo.

Outro ponto é não se apegar tanto a uma mesma tecnologia (Java, no caso), já que você pode estar ignorando boas oportunidades em outras linguagens. Começar com Java é uma boa, mas não fique limitado a ela, ainda mais se as demandas ou oportunidades que surgirem forem em outras tecnologias.

Abraço.

1 curtida

Cara veja bem, eu estudei java web a partir do livro programando java para web do luckow, la ele ensina tudo, e tipo ao longo do livro você vai desenvolvendo um sistema bem completo, e o livro aborda muitas tecnologias legais, o que tu tem que ter noção pra estudar ele é orientação a objetos e jdbc, muito bom, e esse negócio de pegar uma grande massa de informações e empurrar pra dentro não rola, o que é legal mesmo é você aprender sob demanda, por exemplo, preciso desenvolver uma tela de login, daí você pesquisa e etc… estudar é bom demais mas não adianta empurrar tanta informação por que no final das contas você não vai aplicar tudo no seu dia a dia, e também não vai lembrar de tudo, começa com lógica, programa um pouco pega alguns desafios na net, aplica orientação a objetos e depois estuda esse livro aí que te recomendei por que daí você vai ter um norte e vai estar de frente com tecnologias bem legais e pode gostar de uma em específico e querer se aprofundar, por exemplo hibernate, primefaces etc…

@TerraSkilll

Decadas pegou pesado. Infelizmente o Brasileiro não tem costume de ler e/ou estudar então parece muito distante mesmo ler tantos livros.

Nessa questão o investimento não é problema. Eu o problema é o que estudar antes do que? Qual a ordem lógica? Desktop antes de Web? Web antes de Android? Jogos antes de Web?

Pretendo sim, nesse segundo semestre de 2017 ou no inicio de 2018 irei iniciair ou ciência da computação ou ADS. Não sei no que quero atuar. Meu objetivo a longo prazo é desenvolver meus projetos pessoais. Então qualquer vaga web eu iria gostar bastante.

Eu decidi que vou ser Java. Porém eu vou estudar as linguagens de frontEnd e outras, como Python, C++. Mas o objetivo é foco total em java. É o que mais tem vagas. Exemplo bruto da catho: 1.121 vagas de emprego na catho para java em geral. Enquanto pra php 366 vagas no geral e C# que também ta entre as mais requisitadas 165. Então depois de entrar na área eu aprendo novas tecnologias

@Romero_Russel
Você sabe o nome do livro??

Programando Java para Web:

E sim em java não há ordem a seguir, desktop, mobile, e web são coisas totalmente distintas, o que você tem que ter inicialmente é conhecer o básico da sintaxe e orientação a objetos.

Acho que ele esta querendo dizer, é que quando acabar de ler todos esses livros, sei lá, daqui 5 anos, muita coisa já vai ser considerado relíquia (Ex: JavaFX), outras ainda existirão em sistemas legados mantido por drones corporativos (Ex: OO), e o que ainda estiver sendo usado e bombando no catho (Ex: Android) vai ser tão diferente em 5 anos que o conhecimento contido no livro vai estar desatualizado.

1 curtida

Se você for querer aprender tudo, não vai aprender nada direito. Foque no seu objetivo, se for por exemplo mercado de trabalho/estágio, se baseie no que pede as vagas da sua região. Se por exemplo não tem demanda com JavaFx na sua região, então nem perca tempo com isso.

Geralmente a maioria das vagas usando JavaOracle é web. As apostilas abaixo dão um bom direcionamento inicial do que seguir de conteúdo:



1 curtida

[quote=“gabrielSaldanha, post:7, topic:348639”]
Decadas pegou pesado. Infelizmente o Brasileiro não tem costume de ler e/ou estudar então parece muito distante mesmo ler tantos livros.[/quote]

Como o @pfk66 comentou, não falo no sentido de que não dá pra ler esse monte de livros, mas sim que é uma montanha de conhecimento e que leva anos pra absorver bem. Maioria dos livros da Casa do Código são curtos, dá pra ler em 1 ou 2 semanas. Décadas foi uma forma de enfatizar que você sempre estará estudando e se atualizando, então empilhar um monte de livros pode não ser uma boa ideia.

[quote=“gabrielSaldanha, post:7, topic:348639”]
Nessa questão o investimento não é problema. Eu o problema é o que estudar antes do que? Qual a ordem lógica? Desktop antes de Web? Web antes de Android? Jogos antes de Web?[/quote]

Como eu e outros frisamos, a questão é o seu foco de atuação, não de tecnologia (Java, C#, Python). Por exemplo, estudar desenvolvimento de jogos não é uma sequência de estudar Java Web, é uma linha diferente de estudo, que exige mentalidade e tópicos totalmente diferentes (por exemplo, em jogos não há utilidade prática para coisas como iReport, JPA e JSF). Mesma coisa com desktop e web que, embora tenham pontos em comum, são linhas de estudo e trabalho diferentes hoje em dia.

Abraço.