orientações JAVA - linha de aprendizagem

12 respostas
K

Sou ótimo em aprender as coisas sozinho, não só no campo da programação, mas como em tudo na minha vida.

Estou envolvido em diversos projetos, não só na área de tecnologia, mas tb na área de administração de empresas e na área social.

Já tenho algum conhecimento em Delphi e banco de dados. Conhecimento suficiente para fazer algumas pequenas aplicações de que eu necessitava. Não sou um expert na área de desenvolvimento, aprendi apenas aquilo que era necessário para as minhas necessidades. Aprendi sozinho, estudantado em casa por livros e consultando fóruns.

A algum tempo que já venho sentindo a necessidade de me aprofundar ainda mais na área de desenvolvimento, e depois de algumas pesquisas decidi aprender JAVA e descobri o GUJ como o melhor ponto de apoio para suprir as minhas necessidades.

Necessito então da ajuda de vcs para que eu possa montar meu mapa de aprendizado da linguagem JAVA, junto com todo o conhecimento periférico que eu possa vir a necessitar para ter o melhor aprendizado possível. Gostaria, se possível, de receber uma linha/sequencia de aprendizado do básico (qual o melhor banco, se possível free para se trabalhar e qual o melhor gerenciador para se trabalhar com o banco, ja sei que para o java é o eclipse) ao que tem de mais avançado, passando por todas as possibilidades do java, como a programação web (e o que o java pode me oferecer nesse sentido), celulares, servidores e avançando sempre.

Que outros tipos de linguagens e aplicações (xml, flex, air, php?, javascript, ruby) eu posso vir a aprender e no que isso pode melhorar meu desempenho com o java? quero ter informações para que eu possa no mínimo conquistar uma boa certificação e currículo na área e no máximo conquistar tudo o mais que existe.

Tenho alguns projetos interessantes, mas ainda me falta muito conhecimento para por tudo em prática.

antecipadamente,
agradeço a todos.

12 Respostas

giovanni_dalfre

Então rapaz, minha situação foi bem semelhante a sua…

Acho que o melhor jeito de seguir uma linha de aprendizagem é seguindo apostilas.
Vou colocar o link onde você pode fazer download das apostilas da Caelum, desde o básico até o mais avançado:

http://www.caelum.com.br/cursos/java/

Da pra aproveitar MUITO delas, mesmo sem o curso.

Espero que te ajude!

K

Obrigado. Já tenho bastante material, incluindo essas apostilas da caelum. O que eu estava precisando era de uma sequencia de estudos. Esse link Que você enviou ajuda bastante, mas ainda não é tudo que necessito. Estou prestes a comprar o livro da kathy Sierra. “use a cabeça - JAVA”. 123 reais. Livraria saraiva.

Gostaria de saber alguma coisa sobre flex e similares. Em que ponto ele entra na linha de estudos? O que ele faz na realidade? Ele substitui alguma ferramenta/padrão nativo(a) do JAVA? A algum outro tipo de ferramenta do tipo que eu de deveria aprender?

Alexandre_Saudate

kokatrix:
Obrigado. Já tenho bastante material, incluindo essas apostilas da caelum. O que eu estava precisando era de uma sequencia de estudos. Esse link Que você enviou ajuda bastante, mas ainda não é tudo que necessito. Estou prestes a comprar o livro da kathy Sierra. “use a cabeça - JAVA”. 123 reais. Livraria saraiva.

Gostaria de saber alguma coisa sobre flex e similares. Em que ponto ele entra na linha de estudos? O que ele faz na realidade? Ele substitui alguma ferramenta/padrão nativo(a) do JAVA? A algum outro tipo de ferramenta do tipo que eu de deveria aprender?

Flex está em franco declínio, já que a Adobe resolveu “matar” o Flash. (Flex faz a conversão do que você escreve nele para Flash).

Se você quer saber mais sobre interfaces ricas na web, sugiro dar uma olhada em HTML5 e CSS3.

[]'s

emanuelmm

asaudate:

Flex está em franco declínio, já que a Adobe resolveu “matar” o Flash. (Flex faz a conversão do que você escreve nele para Flash).

Se você quer saber mais sobre interfaces ricas na web, sugiro dar uma olhada em HTML5 e CSS3.
[]'s

Disse tudo!

B

Recomendo pegar um domínio dentro da linguagem, e ir do nível mais baixo para o mais alto.

Por exemplo, conectividade com banco de dados:

Aprender a fazer CRUD de uma tabela com JDBC. Depois fazer o mesmo CRUD com Spring JDBC Template, depois Hibernate com XML, Hibernate com configuração via Spring, Hibernate com annotations, JPA.

Web:

Estudar request e response com Servlets puras, JSP com scriplets, JSP somente com JSTL, modelo MVC com Servlets e JSPs, depois alguns frameworks action-based, Struts, Struts 2/WebWork, Spring MVC, Wicket, Play e VRaptor. Depois estude o framework component-based, JSF e seus componentes RichFaces, MyFaces, ICEFaces. Note que os component não são uma evolução do action, somente uma maneira diferente.

Com esta listinha já vai algumas semanas de estudo.

K

Muito obrigado. É exatamente de uma linha desse tipo q estou precisando. Valeu!

comecei a estudar nesta segunda e já aprendi acredito que quase tudo do básico (conceito de orientação a objeto, e estruturas básicas da linguagem) e já estou mexendo razoavelmente bem com o eclipse. Preciso por uma pequena aplicação para funcionar em rede. Há algo de importante que eu deva saber?

Próximo assunto: threads.
Não me parece difícil pelo que vi superficialmente.

Vou dar uma estudada em tudo q foi dito aqui. Em html5 e css3 tb.
Valeu a todos.

Tópico ainda está aberto a sugestões. Se alguém quiser listar aqui a sua curva de aprendizado, talvez seja interessante.

Alexandre_Saudate

Comentário mais pertinente que me veio à cabeça após ler isso:

MUHUHUHUAHAHAHAHAHAHAHAHAHAHHA

(Desculpe, não conseguí resistir)

lele_vader

Com o flex você poderia fazer o frontend da aplicação e delegar ao java o backend.
Sobre o mapa de estudos, acredito que você primeiro deve tentar entender tipos primitivos e a sintaxe de java. Operadores aritméticos,lógicos, fluxos de controle e de loop.
Depois tente aprender orientação a objetos.Polimorfismo, encapsulamento,herança,composição.
Daí você pode partir para alguns pacotes, os quais fazem parte da plataforma, como as classes:
-File, as quais servem para manipular arquivos.
-Calendar, serve para manipular com datas.
-Math, operações matemáticas.
-Hierarquia de exceções
Muito importante também aprender as estruturas de dados, e as suas implementações em java e a parte de tipos parametrizados e generics.
Após isso você pode tentar aprender jdbc, é a api java padrão para interagir com banco de dados.
Após isso você já deve ter um bom conhecimento na plataforma standard, daí pode partir para aprender programação desktop (swing ou java fx) ou web.
Em web também tem uma trilha de aprendizado e eu diria mais complexa, pois a quantidade de frameworks é absurda.
Mas tente ver Servlet, jstl, jsp, o qual é o básico.
Após pode se especializar em um framework. Em java existem vários, divididos em algumas categorias.
Tem os action-based, como o struts, spring e os baseados em componente, como o jsf e o gwt.
Junto com o aprendizado em web, você pode aprender a parte de backend propriamente dita, através de ORM (mapeamento objeto relacional), EJB, criação de webservices.
Imagino que a quantidade de coisas a se aprender deve te deixar meio assustado de início, mas tenha perseverança e material é o que não falta.Além de excelentes fóruns como o guj, java ranch e o stack overflow, os quais são excelentes fontes de estudo.

Como dica falaria para inicialmente ler a apostila de orientação a objetos em java da caellum e ler um livro, Pode ser o use a cabeça,do qual eu não posso falar muito, pois não o li, mas as pessoas falam muito bem dele.
Eu gosto do Java como programar e o core java.

Boa sorte e qualquer dúvida deixa uma mensagem

lele_vader

Acredite é bem difícil.
Thread faz parte da api de concorrência do java, recomendaria estudá-la para quando estiver em um nível mais avançado.
Tente seguir a apostila da caellum

K

asaudate:
kokatrix:

Próximo assunto: threads.
Não me parece difícil pelo que vi superficialmente.

Comentário mais pertinente que me veio à cabeça após ler isso:

MUHUHUHUAHAHAHAHAHAHAHAHAHAHHA

(Desculpe, não conseguí resistir)

Lol.
Espero tb estar rindo disso hoje a noite.
Vou dar só uma olhadinha superficial.

K

lele_vader:
Acredite é bem difícil.
Thread faz parte da api de concorrência do java, recomendaria estudá-la para quando estiver em um nível mais avançado.
Tente seguir a apostila da caellum

Imagino que seja!
Mas agora que toquei no assunto preciso saber do que se trata.
Se não meu cérebro explode de curiosidade. Dou uma olhada rápida e depois deixo de molho.

sergiotaborda

kokatrix:
Sou ótimo em aprender as coisas sozinho, não só no campo da programação, mas como em tudo na minha vida.

Estou envolvido em diversos projetos, não só na área de tecnologia, mas tb na área de administração de empresas e na área social.

Já tenho algum conhecimento em Delphi e banco de dados. Conhecimento suficiente para fazer algumas pequenas aplicações de que eu necessitava. Não sou um expert na área de desenvolvimento, aprendi apenas aquilo que era necessário para as minhas necessidades. Aprendi sozinho, estudantado em casa por livros e consultando fóruns.

A algum tempo que já venho sentindo a necessidade de me aprofundar ainda mais na área de desenvolvimento, e depois de algumas pesquisas decidi aprender JAVA e descobri o GUJ como o melhor ponto de apoio para suprir as minhas necessidades.

Necessito então da ajuda de vcs para que eu possa montar meu mapa de aprendizado da linguagem JAVA, junto com todo o conhecimento periférico que eu possa vir a necessitar para ter o melhor aprendizado possível. Gostaria, se possível, de receber uma linha/sequencia de aprendizado do básico (qual o melhor banco, se possível free para se trabalhar e qual o melhor gerenciador para se trabalhar com o banco, ja sei que para o java é o eclipse) ao que tem de mais avançado, passando por todas as possibilidades do java, como a programação web (e o que o java pode me oferecer nesse sentido), celulares, servidores e avançando sempre.

Que outros tipos de linguagens e aplicações (xml, flex, air, php?, javascript, ruby) eu posso vir a aprender e no que isso pode melhorar meu desempenho com o java? quero ter informações para que eu possa no mínimo conquistar uma boa certificação e currículo na área e no máximo conquistar tudo o mais que existe.

Primeiro que tudo ha que aprender a linguagem e aprendê-la bem. Para isso nada melhor que um curso, mas se isso não for opção, então os livros de preparação para certificação da Katy Sierra são os melhores. Tlv não goste do estilo dela, mas baixo básico que isso não tem.
Depois vc precisa esquecer que existe um banco de dados. Em delphi é comum a arquitetura em client-ui->banco-de-dados. Não esta a arquitutura padrão em java.
A seguir vc precisa saber que tipo de aplicação vc quer fazer. Cada area e nicho tem as suas API especiais.
Para web, temos o conceito de web container a API de servlets e a de JSP. Depois temos JSF e vários frameworks construidos em cima destas tecnologias. Para entender mesmo tem que seguir o caminho das pedras. Se está interessado em desenvolvimento rápido então dê uma olhada no Spring Roo e no Grails ( para o grails terá que entender groovy, então melhor começar pelo Roo). Se ir a fundo então o melhor é dominar o conceito de IoC o Spring Injection Framework e partir dai.

Para celulares smartphone por agora é ir com android - embora tecnicamente não seja java - a linguagem é a mesma e se sabe java , entende android.
Tudo o que for baseado em flash esqueça. Ruby, so de for on Rails, mas ai tem que aprender Ruby. O Grails e o Roo são concorrentes em java para essa tecnologia. PHP nem merece o tempo.
Para web é bom entender de HTML, CSS, javacript e hoje em dia JQuery.
XML é mandatório em qualquer tecnologia e é muito simples. JSON também é muito simples e é bom saber.
Para trabalhar com banco de dados qualquer banco pode ser usado. Vc apenas precisa de um driver jdbc que normalmente o fabricante fornece.
Em termos de qual o melhor banco , não existe melhor banco. Eu uso o Postgres sempre que possivel, porque é free , é simples, é tão poderoso quanto qualquer banco de marca. Além disso roda em linux e windows.

Para mecher com banco é bom vc entender os conceitos de JDBC e brincar com isso um pouco, mas só para entender. Profissionalmente vc vai usar o JPA ou o Hibernate.

Para servidor precisa entender o conceito de EJB container e JNDI. Para usar tem várias opções, entre as free JBoss e Glassfish, ou o novo TomEE que dá para brincar com EJB se não quiser nada muito avançado.

Isto é o basico do básico. Se for para desktop temos outras tecnologias. É interessante compreender Swing mesmo se não usar porque vários frameworks web modernos são baseado em conceitos de GUI para desktop ( o Vaadin, ZK, Wicket e até o JSF).

Tem mais coisas para aprender: tratamento de transação, segurança, i18n (internacionalização), log, tag files e tag libs , etc… etc… mas o que falei acima já dá para começar e fazer algo funcionar.

Criado 8 de agosto de 2012
Ultima resposta 8 de ago. de 2012
Respostas 12
Participantes 7