Bom dia, sou novo no mundo de programação. Tenho grande interesse em começar a estudar programação web com java, porem não sei bem o que estudar, vejo falar muito de spring MVC, hibernate, JSF, JPA. Gostaria de saber se alguém tem alguma dica ou como fazem para programar web, que framework utilizam, e se tem alguma dica sobre a programação web.
Se é novo em web, nem para framework deveria ir
Como ainda vai começar, comece usando Servlets e procurando saber como funciona. Vá lendo a apostila FJ-21 pra ter uma noção. Faça uma calculadora, um formulario que tenha um campo que receba um nome e mostre em uma tela. Depois, quando sentir-se bem, tente fazer um CRUD (operações com bancos de dados) somente usando Servlet e as bibliotecas pra conectar-se com o banco de dados (na verdade SGBD). Não veja SpringMVC, Hibernate, JPA, JSF ou outros frameworks.
No começo é complicado, vai sentir-se desgostoso por ter problemas que não saberá como resolver logo de cara, mas quando resolver verá que era uma simples besteirinha - programação é assim mesmo, e falo por experiência própria - . Procure por exemplos no github ou em outros sites, quebre a cabeça e peça ajuda. Qualquer coisa, estamos aqui no fórum.
Certo. Existem duas abordagem
a primeira é a Top-Down, onde vc começa com um framework muito facil onde vc segue a receita de bolo e tudo funciona. o melhor exemplo disso IMHO é Ruby on Rails ( e os frameworks derivados ). Mesmo sem saber Ruby é possivel fazer coisas interessantes.
Este tipo de exemplo é bem comum, um blog em 15 minutos
https://www.reinteractive.net/posts/32-ruby-on-rails-3-2-blog-in-15-minutes-step-by-step
Perceba que nessa abordagem vc aprende a fazer um sistema web bem simples e vc começa a interagir, a fazer umas paradas extras, etc. com o tempo vc vai estudando e se aprofundando ( por isso “de cima para baixo” ).
Outra abordagem é a Bottom-Up. Nela vc tem que estuda o protocolo HTTP e entender ( mesmo que superficialmente ) redes, socket, stream de caracteres ( o que é o \n? qual sua origem ? do que se alimenta? tabela ASCII ? ). Entendendo a diferença entre POST e GET, entendendo os cabeçalhos e o fato que o HTTP é um protocolo STATELESS isso te abre um leque de opções. E ai vc descobre que vc esta lidando com uma aplicação distribuida: vc tem o servidor ( vulgo back-end) e o cliente ( vulgo front-end, que chamamos carinhosamente de Browser ). O Browser fala HTTP e consome HTML, CSS e JavaScript.
Hoje em o frontend é quase uma aplicação completa que roda no Browser e interage com o Servidor (por exemplo Single-page application). Entender isso é crucial. E ai vc tem tecnologias para responder aos requests HTTP e tecnologias para apresentar isso no browser. São coisas distintas nos dias de hoje.
Nessa abordagem vc aprende coisas como: o que foi o CGI, a evolução para fast-CGI, servlets, cache, SSI, HTTPS, cookies, balanceador de carga e muito mais.
IMHO a melhor abordagem é mesclar ambas, sob demanda.
Bottom-UP é crucial para criar uma aplicação web escalavel, segura, rapida, linda e cheirosa.
Top-Down é crucial para ter um feedback razoavelmente rapido da sua ideia rodando no Browser. Imagina q vc imaginou uma “rede social de troca de imagens”, a primeira versão pode ser lenta, pesada e feia mas precisa VALIDAR o conceito. Sem falar que o diabo esta nos detalhes e vc pode evitar otimizações prematuras. Sem falar que o blog da sua prima ou o site da sua padaria não precisa responder em 100 milissegundos.
Java eu acho péssimo para Top-Down WEB SE vc não souber Java. Vc precisa de uma IDE e vai esbarrar em problemas não de web, mas pq vc usou a linguagem do jeito errado ( o famoso ‘minha aplicação deu erro’ e ai vai ver é um NullPointerException totalmente evitavel ). Porem Java é uma linguagem agradavel, que dá dinheiro.
Se eu fosse vc eu investiria em algo como VRaptor web e estudando o basico do java em paralelo. Uma hora as coisas vão se encontrar.
Por exemplo, eu vejo muitos programadores feras que matam a pau em JSF, JPA etc mas chega em Threads da aquela amarelada, mas isso pq existe um estilo de programação onde o uso de threads/paralelismo é abstraido e vc “não precisa se preocupar com isso”. Porem conhecer Threads é um diferencial e ajuda em determinados momentos.
Nunca deixe de estudar. vc tem muitos topicos aqui. 2016 e o mundo não para
Procure por Applets Java.
applet está praticamente descontinuado não?
Sério?
Então agora só tem web com JavaScript…
e mais facil comprar temas para criar um site
Sim por que escrever escrever a sites e perder muito tempo, se agora tem a oportunidade de comprar com temas barato http://templatemonster.com/pt-br/ . Mais ainda a tempo, um monte de as economias.