Como iniciar em Java para WEB sem medo!

Introdução
Minha intenção com este post é tentar de alguma forma ajudar aqueles profissionais que estão iniciando em Java Web, profissionais que com tantas opções que a plataforma Java nos oferece, as vezes não sabem por onde iniciar, então quero tentar dar um norte inicial para começar bem.

Não vamos aqui discutir sobre qual IDE, ferramenta, infra em geral, pois já temos vários artigos na web que tratam deste assunto. Quero focar na parte conceitual da coisa.

Quero com este post responder algumas perguntas como:

1. Sou iniciante em Java para Web, o que devo aprender primeiro?
2. Devo começar pela especificação JEEx e seguir somente ela?
3. Qual framework devo começar?
4. Por que não devo começar com JSF/Seam e afins?

Não quero aqui entrar no mérito de quem é melhor, framework X ou Y, linguagem X ou Y. Como já falei em uma lista: Amadureci para não perder meu tempo discutindo sobre isso.

Vou escrever aqui a minha opinião, a minha visão, baseado nos anos de experiência que tenho com desenvolvimento Web e Java, baseado nas conversas que tenho com outros profissionais com a mesma e maior experiência do que eu, nas experiências de inúmeros projetos que já participei durante toda a minha carreira.

Então vamos iniciar as argumentações, lembrando que isso é voltado para aqueles que estão ainda iniciando no desenvolvimento Web na plataforma Java ou para aqueles que não tem uma base sólida em Web.

Iniciando no mundo Java Web

1. Sou iniciante em Java para Web, o que devo aprender primeiro?

Bem, se você está entrando agora no mundo Web, você precisa primeiro aprender WEB, aprender como funciona uma página WEB e aprender a linguagem da WEB, seus protocolos e comportamentos. Isso parece ser óbvio, mas muitos se perdem neste momento e simplesmente não ligam para isso, achando que já devem aprender frameworks X ou Z.

Vamos citar aqui os principais conceitos que um bom desenvolvedor web TEM que saber ou pelo menos conhecer:

Entenda como funciona e para que serve todos os verbos HTTP (HTTP verbs) que existem. Tenha um entendimento pelo menos de POST, GET, DELETE e PUT.

Você como desenvolvedor web é OBRIGADO a saber HTML, pelo menos as suas tags mais comuns, como utilizá-las e para que servem cada uma e como funcionam. Não saber isso é como querer tirar a carteira de motorista sem saber o que é um carro. Acesse: w3schoolsHTML

Entenda, como e o que é CSS, você não precisa ser um expert em CSS, mas saber o básico ajuda e muito, e você um dia irá precisar, acredite. A não ser que você não esteja desenvolvendo para WEB. Uma boa dica, é começar pelo site da w3schoolsCSS e o site do maujor.

Estude também o que é e como funciona um Web Container e sua estrutura básica de funcionamento.

APRENDA Servlet, JSP, por mais que você ache “antigo” eles são muito importantes para você complementar seu conhecimento em desenvolvimento web na plataforma java e acredite seu framework UTILIZA eles por baixo. Então é FUNDAMENTAL saber o que é e como funciona um Servlet e JSP.

“Brinque” um pouco com TAGsLib, EL (Expression Language), são ferramentas simples de se utilizar (principalmente EL), e deixam seu código bem mais legível. Você verá mais a frente.

JavaScript, ele é importante. Se você deseja ser um bom profissional web, você PRECISA saber javaScript. Por muitos anos o JavaScript foi considerado uma linguagem fraca, que só servia para enviar alerts para os usuários ou somente para validação de formulários. Grande engano.
O JS já provou por A + B que é uma poderosa linguagem em diversos segmentos de server-side desde Frameworks MVC (Express/Node.js | Helma/Rhino) a bancos de dados não relacionais (CouchDB, MongoDB), além do tradicional client-side com Frameworks populares (jQuery/ExtJS).

E o mito de que JS é ruim de manter, código desorganizado etc, é simplesmente somente um MITO, e é simplesmente falta de conhecimento de quem não sabe desenvolver com JS. JS hoje, está muito maduro e robusto, existem vários frameworks para facilitar a sua vida, é testável e é um código limpo, quando se usa da maneira certa. E isso claro, serve para qualquer linguagem.

Mas, assim como qualquer outra linguagem, não aconselho você já começar usando jQuery (ou qualquer outro), aliás, até pode sim, mas antes dê uma lida na documentação para entender o que é o DOM e BOM, apenas leia, você não precisa ser um expert, o que não seria ruim, pois iria te ajudar muito, mas apenas o conhecimento básico já é suficiente. Conhecer e saber usar uma ferramenta (framework) é uma coisa, ENTENDER o que ele faz é outra.

Depois disso, parta para um framework como o jQuery, MooTools, ExtJS etc.

[UPDATE-13/07/2011]

Alguns me perguntaram sobre quais livros ou fontes de estudos indico para iniciar com JavaScript, então resolvi atualizar aqui, essas dicas e para não replicá-las, vou pegar as mesmas que um amigo já fez :).

Dicas do site do Christiano Milfont:

Existem alguns bons materias gratuitos que recomendo, como: Como criar um Framework javascript, Eloquent Javascript, JavaScript Garden, jQuery Fundamentals (que apesar de ser sobre jQuery, cobre muito sobre javascript em si), Essential Javascript & jQuery Design Patterns for Beginners e o Guia e a documentação de Referência da Mozilla.

Os melhores livros de Javascript:

Existem vários bons livros, inclusive já os indiquei em posts passados, veja indicações: recente e antiga.

2. Devo começar pela especificação JEEx e seguir somente ela ?

Bem, o certo seria sim, você deve começar pela especificação, mas infelizmente não é tão simples assim.

Se alguém falar isso para você, corra, corra dele e procure um profissional o quanto antes para te descontaminar, esse papinho de que é Deus no céu e especificação na terra é pura besteira. Quer exemplos ? Vamos lá.

Se você depender e seguir como um religioso fanático somente a especificação, você como profissional, estará no mínimo 5 anos ATRASADO.

Sim, para se ter uma ideia, o Ajax foi implementado no JSF, somente em 2010, ou seja, você que é bitolado, só foi poder utilizar-se de Ajax ano passado, enquanto eu e outros profissionais já o utilizavam desde 2004. Vergonha ? Também sentiria.

E não caia na conversa de que é o que o mercado pede, a não ser que você queira ser SÓ MAIS UM no mercado, depois não reclame do seu salário. Destaque-se, se sobressaia, não seguindo essa conversa fiada você já terá boas chances de ser um profissional bem qualificado e consequentemente, bem remunerado no mercado.

Mais um exemplo simples, é seguindo somente a especificação, você não vai usar o Hibernate ou Spring, pois eles não estão na especificação, a especificação “recomenda” usar o JDBC, CMP, JPA e outros Patterns. Para quem sabe o que é o Hibernate e Spring saberá o quanto será péssimo desenvolver um sistema web java sem eles, principalmente sem o Spring.

Na minha visão a especificação é somente para te dar uma ideia de como as coisas funcionam, e não como devem ser feitas, ela não é a lei, ela nem sempre é a melhor solução para o seu problema. Por isso não seja bitolado por ela.

3. Qual framework devo começar ?

Supondo que você já tem conhecimento em HTML, CSS, JavaScript, Servlets, JSP, TagLibs ou EL, Container WEB, qual framework você poderia iniciar?

Bem, qualquer frameworks Action-like. Por que?
Quanto menos abstração no lado web o framework possuir (componentes para tudo), mais você vai exercitar e aprender tudo aquilo que você estudou, sem falar na liberdade no desenvolvimento.

Atentem, que não estou aqui entrando no mérito de quem é mais produtivo, rápido, simples ou qualquer outra coisa do tipo. Meu foco é puramente e simplesmente que você aprenda desenvolvimento Web e só isso.

Framework como eu disse é apenas uma ferramenta para se desenvolver, como um martelo para um marceneiro, ou uma chave de fenda para o mecânico.

Seguindo esses passos, você pode evitar o erro (que infelizmente é comum) de querer usar a ferramenta para tudo.

Imagine que o marceneiro ame seu martelo e só queira utilizar ele, então para pregar pregos ele utiliza ele, para parafusar ele também utilize ele, para colar a maneira, ele também utilize o martelo, já imaginou ?

Pois bem, a analogia funciona da mesma forma para frameworks.

Quando você entende web, entende a necessidade do cliente, entende o problema, fica fácil escolher a ferramenta e mesmo assim você pode correr o risco de errar, imagine agora na situação de saber utilizar somente um martelo e pior, achar que ele pode fazer o trabalho de uma chave de fenda. Pense nisso.

Agora, suponha que você é realmente um iniciante, não tem noção de HTML e tudo aquilo que falei, qual framework você deve iniciar ?
NENHUM. Estude aqueles tópicos primeiro.

Aprenda a engatinhar antes de querer correr, para não cair e quebrar as pernas.

4. Porque NÃO devo começar com JSF/Seam?

Porque EU, Handerson Frota, NÃO concordo que um iniciante, que ainda NÃO tem nenhuma noção SÓLIDA de WEB já inicie com JSF?

Porque ? Vamos tentar colocar por tópicos:

a . Abstração do Servlet

Esse não é um problema, não é um defeito, pelo contrário, é até bom, deixa o teu controller desacoplado do objeto HTTPServlet. O VRaptor faz isso e claro o JSF faz isso. Mas ao contrário do VRaptor, que possui um design que facilita os testes, é muito ruim escrever testes de unidade para os managed beans.

Não estou dizendo que não é possível escrever testes de unidade, mas sim que não é tão simples assim quando o código foge do trivial. E ai pergunto, onde está a produtividade? Ah tá, vocês não usam testes?

Agora pergunto para quem nunca viu ou sabe o que é um Servlet, como você vai entender o que é um, saber como funciona se você não vê e ainda acha que não esta usando?

Você não sabe como funciona, o que é, e diz que desenvolve para Web? Acho que não.

Acreditem, existem MUITOS profissionais que começaram assim, que NÃO SABEM QUE JSF, VRAPTOR OU STRUTS, TEM SERVLETS 🙂 não é legal? Você contrataria ele? Eu não.

b. Malditos componentes

Você está iniciando, não sabe o que é Servlet, mas também não vai aprender HTML, CSS, JS, ou qualquer LINGUAGEM DA WEB, pois você vai ter que aprender COMPONENTES. Componente para input (que muitas vezes o cara não sabe o que é, e acha que isso é do JSF), componentes para tudo.

Você já viu o código gerado do seu componente? Veja e se assuste.

Com o VRaptor ou Struts por exemplo, você usa o simples e eficaz HTML e EL. Simples assim. Resolve o problema e ainda deixa teu código mais limpo.

Veja um exemplo:
Formulario JSF com 2 campos.

[sourcecode language=”java”]
<h:form id="UserEntryForm">
<h:outputText value="Enter Your Name:"/>
<h:inputText value="#{UserBean.userName}" />
<h:outputText value="Enter Your age:"/>
<h:inputText value="#{UserBean.age}" />
<h:commandButton action="welcome" value="OK" />
</h:form>
[/sourcecode]

Agora com o simples HTML e EL

[sourcecode language=”java”]
<form id="form" action="" method="GET/POST" >
Nome: <input type="text" id="nome" value="${objeto.nome}" />
Idade: <input type="text" id="idade" value="${objeto.idade}" />
<input type="submit" value="OK" />
</form>
[/sourcecode]

Agora também compare o código gerado de cada um, e tire suas conclusões.

c. Conflitos de libs

Algo que eu via com muita recorrência em projetos com JSF, eram os famosos conflitos entre conjunto de componentes. Se você queria utilizar uma funcionalidade Ajax por exemplo, teria que utilizar o Richfaces/Ajax4jsf por exemplo, mas ele não se integra bem com o MyFaces Trinidad, por exemplo. Então você fica preso e obrigado a utilizar um componente do início ao fim de um projeto (praticamente).

Isso é prejudicial ao meu ver, pois aprendemos que durante o desenvolvimento de um software, ao contrário de construir um prédio, podemos mudar, podemos alterá-lo.

Você aprende mais sobre o negócio, você aprende mais sobre o próprio software, só que você não vai mais poder mudar, pois está preso naquele conjunto de componentes que você escolheu no inicio do projeto. A não ser que você queira alterar todas as páginas geradas e seus comportamentos. Isso inclui seus controles (ManegedBean e JSP), pois o JSF nos faz o favor de -colar- o JSP com o controller.

Você, ao invés de se preocupar em aprender como funciona a web, tem que se preocupar qual plugin/lib/componente utilizar e que não vá dar conflito com outro. Ok, alguns podem dizer que esses conflitos podem acontecer também com outros “componentes”, APIs/Plugins JavaScript etc. Mas posso afirmar com certeza, que é bem mais simples resolver esses conflitos.

d. Ciclo de Vida

Você ainda não sabe o que é um Servlet, como ele funciona e terá que primeiro entender o ciclo de vida do JSF? Que é completamente diferente do ciclo de vida de um Servlet, que o managed bean utiliza por baixo?
Preciso nem comentar sobre isso.

e. View é fortemente acoplada ao controller (managed bean)

Bem, na minha humilde opinião, não acho isso legal. O teu JSP, fica totalmente dependente do controller e claro dependente de libs do JSF. Diferentemente de uma página JSP com EL, cujo o Struts, VRaptor e outros usam.

Recentemente fizemos uma migração de um sistema em JSF para VRaptor, foi simplesmente APAGAR TUDO e refazer do zero, pois não tinha como reaproveitar nem as telas, pois eram todas feitas com componentes do JSF.

Não deu para aproveitar nada do layout, pois o CSS foi alterado por causado dos benditos componentes do RichFaces, nem as funcionalidades em JavaScript, pois quem fazia isso eram os componentes do JSF.

Ao contrário por exemplo, se fosse um Struts ou um sistema feito com outro tipo de controller que usa-se JSP e EL, e fossemos migrar para VRaptor, poderíamos aproveitar muita coisa, até 100% das telas e uma boa parte do controller.

Conclusão

Eu então, NÃO RECOMENDO que qualquer futuro aspirante a desenvolvedor web, INICIE seus estudos web em cima de um JSF e/ou SOMENTE com JEEx.

A pouco tempo, fizemos algumas entrevistas com alguns profissionais web, e foi um pouco decepcionante. Muitos estavam a anos estagnados em projetos JSF ou JEE “puro”. Ou seja, só sabiam JSF e JEE e não desenvolvimento WEB, não sabiam HTML, não sabiam CSS, não sabiam o que era um Servlet, e quando sabiam não sabiam dizer para que servia e como funcionava, não sabiam o que era um PUT ou um DELETE no verbo HTTP e muitas vezes nem o que era um verbo HTTP, não tinham ideia do que era Restfulie, não sabiam JS, logo não sabiam jQuery ou qualquer outro framework JS.

Sou pago para desenvolver soluções para vários tipos de problemas, e não posso ter somente um martelo como ferramenta.

Bem, finalizo aqui, com esses argumentos que vivenciei em vários projetos e por essa longa experiência que tive e tenho em desenvolvimento web, eu aconselho antes de tentar aprender qualquer framework, entenda o básico dele, ou seja, se é desenvolvimento web na plataforma Java:

NÃO COMECE com JSF!

194 Comments on “Como iniciar em Java para WEB sem medo!

  1. Muito bom. Estava atualmente com essa dúvida. Saí recentemente de um curso de formação e estava meio confuso com essa parte de web. A gente estudou JSP e JSF no final, mas não aprendi muito, confesso! Mas estou agora direcionando meus estudos e vou seguir o roteiro direitinho. Recomendo e repasso esse link.

  2. Ótimo post! Me deparo constantemente com esse dilema no trabalho e conversando com amigos. Sempre tentam me convencer que JSF é massa, que se não fosse bom as grandes empresas não o usariam… Quando uso os mesmos argumentos que você, dizem que o problema é comigo, que não gosto de JSF. Isso não deixa de ser verdade, mas não gosto justamente pelos motivos citados. Agora, antes de discutir, vou mostrar-lhes o seu post, pra poupar tempo.

  3. Sensacional seu artigo. Apesar de trabalhar com internet desde 2003 ainda não programei em Java, vou começar por aqui…

  4. @Marcos Vinícius

    Pois é, não gosto do JSF exatamente por esses motivos mesmo, não porque não fui com a cara dele, galera mistura as coisas.
    Obrigado.

    @Mamura

    Boa cara, vai trabalhar com Java agora? Massa 😉 precisando estamos ai.

    Abraços

  5. Oi Handerson

    Digamos que eu use JSF apenas em 10% dos meus projetos Java web.
    Me diz outra melhor alternartiva que devo usar nos meus outros 90% sem ter que ter dor de cabeça no futuro ao atualizar ou ampliar estes projetos?

  6. Fiz exatamente como voce disse, comecei por JSF tambem. Posso afirmar com certeza que foi a melhor coisa da vida. é muito produtivo. A SUN está de parabéns.

    Produtividade 100%.

    Agora irei estudar servlet. Nao acho que seja importante, mas é bom saber. Discordo de voce nesta parte.

    Com os componentes ricos do JSF nós nao precisamos saber nada disso. Uma vez precisei alterar o CSS e foi bem fácil.

    O primeiro sistema que fiz usando JSF, meus superiores na empresa ficaram muito impressionado com a usabilidade e beleza da aplicaçao.

    Muito bom seu post!

    Um abraço

  7. Olá Carlos Henrique, tudo bem?

    Você leu mesmo o post? rsrsr vamos lá…

    “Fiz exatamente como voce disse, comecei por JSF tambem. Posso afirmar com certeza que foi a melhor coisa da vida. é muito produtivo. A SUN está de parabéns. ”

    Você falou exatamente o CONTRÁRIO do post. Eu falei para NUNCA COMEÇAR COM JSF. 😉

    “Produtividade 100%.”
    Bem, esse não é o foco do post, mas pela minha experiência, e pela gama de frameworks com que eu já trabalhei, eu não concordo com vc. JSF não tem essa produtividade que tanto falam. Minha opinião.

    “Agora irei estudar servlet. Nao acho que seja importante, mas é bom saber. Discordo de voce nesta parte.”

    Mais uma vez você falou algo CONTRÁRIO do post. Servlet é MUITO importante sim, você tem que entender como ele funciona, e o que é um Servlet, para que serve, afinal mesmo usando JSF vc esta utilizando um Servlet. Você pensar assim, é exatamente por ter começado com JSF, por isso não sabe da sua importância. Obrigado por provar o que eu disse :).

    “Com os componentes ricos do JSF nós nao precisamos saber nada disso. Uma vez precisei alterar o CSS e foi bem fácil.”

    Bem, esse é um problema sério, já que um desenvolvedor web, não sabe tecnologia web, é complicado. A não ser, que você só queira trabalhar com JSF e só queira ser mais um. O @rponte (http://www.rponte.com.br/) que é uma referência em JSF aqui no Brazil e cujo sou sócio, concorda comigo, e ele não sabe somente componentes, ele sabe como cada um funciona por baixo e sabe que só isso não é importante, ele sabe css, javascript, tudo aquilo que escrevi no post, ou seja, tecnologia web. Pegue os desenvolvedores que se destacam, e veja se eles tem esse seu pensamento, com certeza que não. A web é MUITO mais do que componentes ricos bla bla bla. Fica a dica.

    “O primeiro sistema que fiz usando JSF, meus superiores na empresa ficaram muito impressionado com a usabilidade e beleza da aplicaçao. ”

    Bacana. Não duvido :), realmente a parte visual do JSF é bonita sim, mas existem milhares de outros que são bem mais simples e mais bonitos, como o EXTJS por exemplo.

    Obrigado por comentar no post, abraços e boa sorte.

  8. Oi Handerson

    Digamos que eu use JSF apenas em 10% dos meus projetos Java web.

    Me diz outra melhor alternartiva que devo usar nos meus outros 90% sem ter que ter dor de cabeça no futuro ao atualizar ou ampliar estes projetos?

    Atualmente projetos usando JSP/Servlet significa perda de tempo e ganho de produtividade em futuras migrações do sistema?

    Abraço,

    Erivando
    Freelance Web Developer

  9. Olá Erivando blz

    Cara, complicado esse assunto de produtividade etc. Eu particularmente não indico JSF, mas cada caso é um caso. O grande problema e é o que ataco mesmo, é que a grande maioria dos “desenvolvedores JSF” teimam é utilizar o JSF como solução para TUDO.

    Bem, fazer testes isolados no manegedBean é bem complicado e chatinho, com isso vc perde essa “produtividade”, como falei, se não faz testes, ai é outra história.

    O que aconselho é você pegar e da uma olhada em outros frameworks, como VRaptor, Struts etc.

    Abraços

  10. Concordo quase em 100% do que tu disse. Quem segue a especificação JEEx pura é doido, apesar de que a JEE6 tá muito boa em comparação a JEE5(quem nem criteria e CDI tinha). O problema é que ela logo logo vai ficar defasada já que a JEE7 não deve sair tão cedo(eu acho). Quanto a aprender JSF e Seam, 100% correto, eu mal sabia como um servlet trabalhava e fui direto pro Seam no meu estágio. Foi complicado debugar as fases de vida do JSF sem nem conhecer as de um servlet. Vi o quanto tinha perdido de conhecimento por causa das “facilidades” do JSF Seam quando precisei fazer um código simpels em JS e pensei:”fudeu, eu não sei JS”. JS é básico, tem que saber, já não acho que CSS também seja obrigatório, mas aí é só minha opnião.
    Enfim, acho que o JSF Seam seja bem produtivo quando você já tem uma certa bagagem, pois a curva de aprendizado foi gigantesca pra mim, Não posso avaliar o VRaptor,pois só o usei em estudos, coisas pequenas, mas me pareceu bom.
    Agora é correr atrás do prejuízo e estudar JS e seus frameworks.

  11. E ah, outra coisa que MUITO importante que eu acho que tu esqueceu são os BD’s NoSQL, apesar não serem muito usados pelas empresas, é uma tecnologia poderosíssima, recomendo a todos o MondoDB(nunca usei outros só li a respeito).

  12. @Hedley
    Tudo bem. Cara não comentei sobre Bds, NoSQL porque o foco do artigo é aprender o básico da web mesmo. Na verdade nem comentei sobre Banco de dados, já que o foco foi mais a parte Web da “coisa”.

    Obrigado pelos seus comentários.

    Abraços

  13. Parabéns Handerson, muito bom e esclarecedor não apenas para quem está iniciando mais também para que já está no meio (pelo menos para mim).

    Abraços,

    Wallace

  14. Boa tarde!

    Handerson, estou trabalhando com Java para Web há ou – 1 ano e meio e quando li o seu post vi que preciso e vou estudar muita coisa, infelizmente quando iniciei no mundo Web não tive nenhuma direção de como ou o que estudar e quando comecei a estagiar, procurei aprender aquilo que estava ao meu alcance ou seja o que a empresa usa. ainda hoje quando converso com os colegas a maioria das opiniões são exatamente sobre seguir a especificação e o que o mercado quer, eu tenho um sonho de a cada dia me tornar um desenvolvedor melhor do que sou hoje e para isso acontecer sei que preciso investir muito no meu aprendizado.

    Gostaria de lhe pedir uma ajuda, seguindo a ordem dos posts quais os livros que você indicaria para aprendizado em todas as áreas HTML, CSS, Javascript e algum outro que possa acrescentar. Faço essa solicitação, pois sempre que tento comprar um livro, erro na escolha e não tiro muito proveito do mesmo. Posso citar como exemplo o meu 1º livro foi o CORE JAVA SERVER FACES – 2ª EDIÇÃO e depois desse um de EJB 3 PROFISSIONAL – JAVA PERSISTENCE API e depois AJAX COM JAVA, ou seja pra quem não tem dominio dos conceitos citados fiz o caminho mais longo e hoje sinto que preciso aprender os conceitos básicos.

    Obs.: Nunca trabalhei com JSF profissionalmente o framework que usamos aqui na empresa em nossos projetos é o Struts 1.x como camada de controle, JDBC para acesso ao banco e JSP para a camada de visualização.

    Mais uma vez parabéns pelo post e continue assim a comunicade só tem a agradecer.

    Atenciosamente,

    Wallace Gonçalves

  15. Olá Wallace tudo bem.

    Cara, sobre livros de HTML e CSS eu não conheço muitos não. Indico mesmo o que indiquei no post, que são as páginas do w3cschool e do maujor. Lá tem excelentes tutoriais etc. Uma boa fonte de conhecimento com experiência.

    Sobre dicas de livros de javascript, atualizei o post, da uma olhada 😉

    Abraços e vlw.

  16. Tem gente que não gosta/não usa o twitter.Foi através dele que cheguei nesse post.Excelente iniciativa Handerson. Obd pelas dicas!!!

  17. No meu primeiro ‘estagio’ como programador meu ‘gerente de projetos’ disse que eu tinha que desenvolver um sistema usando JSF Hibernate. Sozinho. Eu nunca tinha visto nada de programação web e não tinha a quem perguntar. Meti a cara pra aprender direto JSF. Resultado: muita dor de cabeça e stress, pois eu não tinha a base, sabia muito pouco de HTML, quase nada de CSS e menos ainda de JSP/Servlets.
    Lembro que quando o projeto tava quase terminado mandaram mudar o layout todo…heheheheheh
    Muito bom esse seu post, se eu pudesse ter lido ele há cinco anos atrás…
    O que eu sei é que depois corri atrás de aprender tudo isso que você falou e fico pensando como é que deu certo aquilo? …

  18. Oi Handerson stou em duvida pra que lado seguir,estou no ultimo semestre de analise e desenvolvimento de sistemas,enão aprendi sobre web,me passaram a dica que seria interessante seguir essa area,estou pedida.

  19. Olá muito bacana o post.
    Você que manja de DWR,
    tem como integrar VRpator com DWR, tipo o DWR consegue trabalhar com os formatos JSON e XML na troca de informações entre o front-end e o back-end ?

  20. Olá Alan.

    Sim tem sim como integrar e é tão simples quanto os outros. Mas, o VRaptor já vem com muitos conceitos que o DWR usa. Então, não se faz necessário utilizar o DWR com o VRaptor, já que o controller do vraptor é bem simples de acessar.

    Se quiser usar o vraptor com dwr não tem problema, mas acho que 99% das coisas o vraptor já resolve por si só.

    Eu costumo utilizar somente o util.js do DWR com o Vraptor, extraio ele do dwr.jar e uso somente esse js na aplicação.

    Vlw

  21. Estou começando na área de programação. Já me arrisquei com C , C# e agora quero demais aprender Java e seguir com a profissão. A dúvida é simples: quando se começa com Java, geralmente aprende-se JSE. O que preciso saber de Java para começar a me arriscar pela WEB?

    Obrigado!

  22. Olá João Octávio tudo bem?

    Cara, releia o post, pois ele fala exatamente sobre isso, sobre como inciar em java para web 😉
    Veja os tópicos:
    1. Sou iniciante em Java para Web, o que devo aprender primeiro?
    2. Devo começar pela especificação JEEx e seguir somente ela?
    3. Qual framework devo começar?
    4. Por que não devo começar com JSF/Seam e afins?

    Qualquer dúvida posta ai ou manda um email.

    Abraços e bons estudos.

  23. Handerson,

    Essa integração de DWR com VRaptor possibilita usar o Ajax Reverso? Teria como indicar algum material para entender essa integração? Gosto muito de VRaptor e DWR, e seria muito bacana poder utilizar as classes dwr com os recursos do vraptor.

  24. Olá Parangotirimirruaro, bem a integração do DWR com o VRaptor é a normal que usamos, apenas ele não tem nada específico para o vraptor que você precise utilizar, basta anotar ou adicionar no dwr.xml o controller do vraptor e pronto.

    O Reverse Ajax dele é a mesma coisa.

    Atenciosamente

  25. Muito bom Handerson, me ajudou muito a projetar meus estudos, estava meio perdido usando Dreamweaver muita gente passando ideias diferentes. Meus parabéns, continue postando!

    Abç..

  26. Adorei te ver bem e gostei como você ensina no seu site(como sempre uma pessoa simpática).abraços

  27. Por que tanta complicação, não tem algo fácil como o Visual Basic 6, que possa ser compilado e disponibilizado?

  28. Bom gostei do post, é explicativo e feito por alguém que já conhece o ramo.
    Agora, para aprender bem principalmente a parte de servlet e jsp em diante é preciso um curso presencial, curso pela web ou até com uma boa apostila é possível?

    Valeu

  29. Olá Agusto tudo bem?

    A TriadWorks que é a minha empresa está desenvolvendo um curso especialmente para acabar com essa deficiência, ainda estamos finalizando o material.

    Mas um excelente curso que você pode estar fazendo, é o da Caelum, eles também disponibilizam a apostila gratuitamente. Confiram no site da caelum.

    http://www.caelum.com.br

    Abraços

  30. Parabéns pelo post, ficou muito bom e foi de grande valia para mim. Porém como já se passaram dois anos, queria saber se você faria alguma atualização em alguns desses programas ou em alguma parte desse post ou ele ainda server.

    Obrigado.

  31. Obrigado Fabrício pelo comentário.

    Bem, ele ainda não está desatualizado ou @deprecated, mas sim, já estou com algumas ideias aqui para atualizar o post e melhorar ele.

    Abraços e obrigado pela visita e comentários.

  32. Muito bom o post. Acredito que um profissional WEB tem que dominar pelo menos os conceitos de como funciona a “WEB”. As dicas da w3school foram ótimas.

  33. Blza Handerson? Seguinte, concordo com sua explicação no blog, mas o que realmente acontece, para quem está começando é o desespero de ver uma vaga de empregado mesmo para estágio, que os camaradas pedem jsf, hibernate e blabla e esquecem que o cara esta entrando justamente para aprender, nãoé o foco, mas quero concluir que: quando se procura algo no google “Java WEB aprender”, cada artigo, blog, ou site de cursos, querem apenas que vc saiba o básico de orientações a objetos e já te empurram um framework qualquer e assim vai e o cara quando vai falar com alguem da área a pessoa ja indica outras coisas e etc. Muitos ficam na duvida como começar. Acho que java é complicado por causa disso cada um fica no seu mundinho e acha que é o certo. Acho que o que vc disse é o correto aprender a base é fundamental. Hoje em dia os programadores JAVA consideram somente o que a SUN DITA como REGRA que é o caso do JSF. Pra quem esta iniciando aconselho a procurar uma escola de nome CAELUM e fazer a academia completa até chegar no web VRAPTOR e etc.

  34. Olá Caio tudo bem?

    Vagas de estágios em algumas empresas são apenas uma forma de ter um “recurso” barato, por isso acontecem esses probleminhas.

    Eu como empresa não permito isso, nossos estagiários passam no mínimo entre 3 a 5 meses somente estudando, fazendo artigos, palestras internas e até em eventos, etc, isso por que achamos importante ele ter uma base sólida, depois disso é que vamos aos poucos passando mais responsabilidades a ele e claro isso tudo com acompanhamento de profissionais mais experientes.

    Sei que isso é frustante as vezes, isso já aconteceu comigo, mas no lugar de ficar com raiva ou algo do tipo, tente ver algo positivo, estude mais, o grande problema de muitos “novos” futuros profissionais, é que de achar que só devem estudar na faculdade e/ou no estágio e isso está errado. Não estou dizendo que seja o seu caso, apenas um comentário sobre o seu. Mas o aconselho é que ele estude, evolua e procure outra empresa. Agora temos também aqueles “profissionais” que buscam apenas o salário, e não tem nenhum conhecimento a agregar a empresa, mas isso é outro assunto.

    Sobre o que você comentou dos artigos que falam para saber o básico, é isso mesmo, está certo. Toda a base de qualquer framework MVC WEB em Java tem como base o velho JSP e Servlet, isso é fato, entender bem como isso funciona vai ajudar e MUITO a você aprender qualquer framework, como dito neste post.

    Java não é complicado 🙂 na verdade ele é até é mais simples que muitas linguagens e plataformas, pois ele é mais “burocrático” ou seja, já existem certos caminhos que se devem seguir, se segui-los você aprenderá facilmente.

    A WEB sim pode ser considerada complicada, pois como pode notar neste post, existem N linguagens, tecnologias, metodologias que você terá que aprender/saber para se trabalhar com WEB independentemente de linguagem e plataforma.

    Sobre a SUN bem, sou um dos que brigou muito por causa disso, tanto que foi esse o principal motivo para eu fundar a JavaCE(www.javace.org), por discordar deste tipo de atitude 😉 e concordo com você.

    A CAELUM sem sombra de dúvidas possui excelentes cursos, eu como profissional e como empresa(TriadWorks) somos fans deles e amigos, por isso estamos lançando em Fortaleza cursos que pregam essa ideia que a CAELUM possui.

    Se tiver interesse da uma olhada: cursos.triadworks.com.br

    No mais, obrigado pelo seu comentário e qualquer dúvida pode enviar.

    Abraços

  35. Olá, gostei muito do seu artigo.. Você falou tudo e principalmente os passos para ser um bom desenvolvedor java..

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

*

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.