Gostei muito da reportagem sobre conheça 10 empresários com menos de 20 anos bem-sucedidos na tecnologia.
Esses exemplos de podem servir de expiração para muitas pessoas.
Kleber Rodrigo de Carvalho
Gostei muito da reportagem sobre conheça 10 empresários com menos de 20 anos bem-sucedidos na tecnologia.
Esses exemplos de podem servir de expiração para muitas pessoas.
Kleber Rodrigo de Carvalho
Pessoal
Enquanto existem pessoas preocupadas com o fim do Java, existem outras querendo aprender Java.
Baseado no artigo que li há muito tempo atrás, sobre Quer ser um desenvolvedor Java, decidi aqui fazer uma receita mais atualizada para as pessoas se tornarem um programador Java. No artigo Quer ser um desenvolvedor Java o Hildebrando Furlan Neto fala sobre o item 1 – Faça uma faculdade de tecnologia, então aqui não quero discutir se você já trabalha com alguma linguagem de programação ou tem experiência com desenvolvimento de software, mas é importante o item 1 mencionado pelo Hildebrando. Quando eu iniciei meu curso técnico em processamento de dados em 1994, investi muito em lógica de programação, é isso me ajudou muito a aprender a linguagem C na época, quando entre na universidade as coisas realmente ficaram mais fáceis.
1. Lógica de Programação
Sendo assim recomendo fortemente para aqueles que nunca programaram, estudar essa seqüencia:
Entender lógica de programação é muito importante. Neste caso não recomendo nenhum livro ou tutorial especifico, se concentre em procurar isso na Google, existem sempre ótimos tutoriais e livros disponíveis, tanto em inglês como em português. Recomendo livros e tutoriais bem recomendados, se for comprar livros, veja as recomendações dele, se for baixar alguns tutorial na internet, veja o que as pessoas acham dele. Numa rápida pesquisa aqui achei vários.
Encontrei o Curso Básico de Lógica de Programação, que parece ser um ótimo guia para lógica de programação.
2. Paradigma de linguagem de programação
Entender esses 2 paradigmas de programação é muito importante. Hoje quando se compra um livro sobre Java, alguns abordam o mesmo assunto, tipo aprender Orientação a Objetos com Java junto. Como a minha primeira linguagem de programação foi o C, eu aprendi junto com o C o paradigma de programação estruturada. Sendo assim, se você quer se tornar um desenvolvedor Java, se concentre em programação orientado a objeto.
Abaixo as links do wikipedia em português:
Linguagem de programação
Programação estruturada
Linguagem orientada a objetos
Abaixo links do wikipedia em inglês, que parecer estar mais completo:
Programming language
Structured programming
Object-oriented programming
Bom, neste momento você tem tudo para poder investir em uma linguagem de programação, no caso o Java.
3. Java e OO
E importante você se concentrar em aprender Java, neste momento, embora haja uma forte demanda para que você pule os passos indo direto para JSP e Servlets.
Antes de você iniciar no mundo Java na Web, e imprescindível você conhecer muito bem a linguagem Java.
Então agora eu recomendo alguns livros para você, sobre Java:
Java: Como Programar da Deitel, que está na sexta edição em português, parece que domina o mercado nessa área de Java e OO para iniciar. Mas você pode escolher um livro sobre Java da sua preferência, mas pelo que tenho conversado com vários alunos, os profissionais sempre recomendam este livro. É muito importante, você sempre ao adquirir um livro ver a recomendação do livro, e também ver se o livro está desatualizado ou não. A ultima versão do Java How to Program (7th Edition), para quem quiser adquirir a versão em inglês.
Eu também recomendo o livro Core Java 2: Fundamentos – vol. 1, quando comecei em Java eu estudei por esses livros, tanto o volume 1 como o volume 2, mas isso foi por volta de 1997, e naquela época usei a versão em inglês mesmo. Em português eu encontrei apenas o Core Java Fundamentos Volume 1, que hoje se encontra na sétima edição, o original que encontrei na amazon está na oitava edição:
Core Java(TM), Volume I–Fundamentals (8th Edition)
Core Java(TM) 2, Volume II–Advanced Features (8th Edition)
Java em poucas palavras (In A Nutshell), parece ser também uma boa introdução, pelo menos quando pesquise na amazon, encontrei bons comentário deste livro.
Java In A Nutshell, 5th Edition (Paperback)
Um livro que está na moda, e todos falam bem é o Head First Java, 2nd Edition, por isso acho que esse livro vale a pena também pois tem boas indicações e comentários
A Caelum uma empresa de treinamento Java, além de oferecer um curso Java e Orientação a Objetos, oferece uma apostila, que é quase um livro, totalmente em português aqui e grátis, baixe a vontade.
Além disso, temos também na categoria Java e Orientação a Objetos, os cursos Introdução à Programação I e Introdução à Programação II disponibilizados no projeto JEDI, com apostila, apresentação, vídeo aula e exercícios, além de uma estrutura para tirar dúvidas de casa lição.. Ou seja, para você investir nisso, você pode ser inscrever no curso do JEDI, que é uma excelente iniciativa na carreira Java, e também grátis.
Depois do tópico Java e Orientação a Objeto, você pode estudar Estruturas de Dados também, que é recomendável neste momento.
4. Estruturas de Dados
Novamente vou fazer propaganda da Caelum e do JEDI.
A Caelum disponibiliza o curso Algoritmos e Estrutura de Dados em Java, com apostila em português disponível aqui.
O JEDI também disponibiliza um curso de Estruturas de Dados com apostila, apresentação, vídeo aula e exercícios também, que é outra fonte de estuda para estudar sobre Estruturas de Dados grátis também.
Vocês perceberam que avancand0 no estudo de Java, que existem segmentos diferentes para desenvolver Software em Java. Aplicações standalone ou aplicações batch, ou seja programa sem interface gráficas. Esse programas serão feitos por você muitas vezes, quando vocês estiverem aprendendo a linguagem Java, e é claro existem aplicações no mundo real para este tipo de aplicação.
5. Design Pattern
Depois que você já está bem afiado em OO, Java e estrutura de dados chegou a hora de estudar Design Pattern. Perceba que neste momento você deve estudar Java Design Pattern e não JEE Design Pattern.
Para este o estudo de Java Design Pattern eu indico os seguintes livros:
Design Patterns: Elements of Reusable Object-Oriented Software, este livro é o mais famoso na area de design pattern, conhecido pelo time de escritores Gang of four (Erich Gamma, Richard Helm, Ralph Johnson, John M. Vlissides). O exemplos desse livro estão em C++, mas isso não será um problema para quem já conhece o java. Este mesmo livro tem uma versão em português intitulado com o Padrões de Projeto.
Outro livro muito recomedado para Design Patterns é o Head First Design Patterns.
Temos também o Padrões de Projeto em Java e sua versão em inglês Design Patterns in Java, para quem quer ver os exemplos em códigos Java.
Para quem não quer gastar dinheiro o livro Java Design Patterns , está disponibilizado aqui, para qualquer que queira estudar por ele.
6. AWT/Swing/SWT
AWT/Swing/SWT são APIs para desenvolver programar com interface gráfica em Java. Eu Já falei isso aqui no blog, neste momento vocês estarão aprendendo a construir aplicações no estilo Visual Basic e Delphi. Lembrando que nestes livros sobre Java para iniciante, abordam apenas o tópicos sobre interface gráfica de uma maneira geral. Se você quer se especializar em desenvolver softwares com interfaces gráficas em Java, recomendo comprar um livro somente sobre assunto como AWT, Swing ou SWT.
7. Java na Web
Esse é o assunto alvo para muitos desenvolvedores. Muito estudam tanto para chegar aqui, e finalmente desenvolver aplicações Java para a Web.
Mais é muito inportante neste momento inicial você se concentrarem em 2 tópicos.
7.1 HTML
HTML é a linguagem de marcação de texto que os nossos browser como o Firefox e IE (Internet Explorer) entendem. Tudo o que você visualiza dentro de um browser, foi desenvolvido e escrito usando HTML. Então HTML é essencial neste momento. Se concentre em estudar HTML através de livros com boas recomendações e atualizados.
Já vi muitas pessoas estudando feito desesperado JSP e Servlets API para construir aplicações Web em Java sem a mínima noção do que é HTML, então recomendo fortemente concentrar esforços em HTML antes de ir para JSP e Servlets.
7.2 JSP e Servlets
Finalmente você chegou no momento para desenvolver aplicações Java para Web. Por desespero você não ve a hora de aprender Struts, que é o framework para desenvolvimento Web mais ultilizado do mercado (muitas oportunidades de empregos pedem Struts). Mas antes de partir para o Struts, pense em estudar bem JSP e Servlets.
JSP e Servlets são APIs para desenvolvimento em Java, por exemplo o framework Struts usa muito a API Servlets.
JSP ( Java Server Pages) é a tecnologia de visualização no mundo Java. Podemos comparar inicialmente JSP com PHP. Em Java diferente do PHP, onde só usamos scripts dentro de páginas PHP, podemos fazer a mesma coisa com o JSP, mas devido as recomendações de boas práticas usamos o JSP somente para a camada de visualização do nosso sistema.
Neste momento recomendo você estudar muito JSP e Servlets. Por isso fica a vontade em escolher um bom livro que apenas aborde JSP e servlets.
Eu estudei JSP e Servlets por esses:
Core Servlets and Javaserver Pages: Core Technologies, Vol. 1 (2nd Edition)
Core Servlets and Javaserver Pages: Advanced Technologies, Vol. 2 (2nd Edition)
O problema desse livros é que eles são um pouco velho (principalemente as versões em português), e a tecnologia muda muito rápido, por isso eu recomendo o Murach’s Java Servlets and JSP, 2nd Edition, que é novo e parece ser bem interessante também. Achei um interessante discussão sobre esse livro no the server side. No mesmo the server side encontrei um livro grátis, em inglês com o titulo de Servlets and JavaServer Pages: The J2EE Technology Web Tier.
Na próxima parte deste artigo vou escrever o que vem depois de JSP e Servlets.
Last update: March, 18, 2008
Kleber Rodrigo de Carvalho
Hoje em dia se tem falado muito do futuro do Java. Será que o Java está em declínio ? Será que vale a pena aprender Java ainda ? Ou seja, várias perguntas surgem na cabeça do desenvolvedor e principalmente naqueles que iniciaram agora na area de desenvolvimento de Software.
O Cesar Taurion escreveu no blog dele o artigo Java hoje e amanhã, assim como já tinha indicado um artigo Java é o novo Cobol, falando exatamente sobre o futuro do Java. Isso sem citar outros milhões de posts e fóruns que discutem exatamente isso. Para nós entendermos o que está acontecendo com o Java hoje, é importante olharmos o passado um pouco, afinal de contas, como dizia um professor de História da Ciência e da Técnica, na univeridade, quando eu perguntei porque um curso de história era importante em um cursos de ciência da computação, ele me respondeu o seguinte: “A historia nós faz analisar o que já aconteceu no passado”. Dai eu extraio uma frase, que sempre repito na minha vida, os inteligentes aprendem com os próprios erros, os sábios com erros dos outros.
Voltando a historia, em 1996 quando eu me formei do meu colégio Técnico em Processamento de Dados, eu fiz uma analise do Mercado na área de desenvolvimento de Software. O mercado era mais ou mesmo assim. As Universidade ensinam linguagem tipo C/C++, Pascal etc, mas os profissionais na grande maioria quando entravam no mercado de trabalho, trabalhavam como Clipper, Visual Basic e Delphi. Existiam realmente poucas oportunidade e sistemas que eram desenvolvidos na área comercial usando essa linguagens que as universidades ensinavam. Os alunos estudavam linguagem tipo C/C++ e Pascal, mas o mercado de trabalho queria Visual Basic e Delphi. E claro que tinham exceções, assim como toda a regra.
Durante meu anos de universidade eu tive um forte embasamento em linguagem C, até porque cursei o curso de Bacharel em Ciência da Computação. Quando comecei a estudar metodologia de Orientada a Objetos, comecei a estudar o C++ ( uma caminho a ser seguido, afinal já programava em C) e comecei a estudar Java também.
Foi nessa mesma época que comecei a trabalhar com Linux, mais ou menos em 1997. Achava que linux e Java era lindo. Até porque me dava muito trabalho migrar um programinha do C do Windows, para o C do linux. Achava Java realmente muito bom para isso. Para vocês terem um idéia, a primeira linguagem Visual que aprendi não foi nem Visual Basic, nem Delphi, e sim o Borland C++ Builder. Naquele época por ter um tendência a achar que, programa bom deveria funcionar pelo menos em Linux e Windows, o Visual C++ da Microsoft não era uma opção embora com o Borland C++ Builder as coisas também não era tão fáceis assim.
Agora Java era o máximo para mim, foi a partir disso que eu me especializei nessa linguagem. No último ano da Universidade quando já fazia estágio, no falecido Zaz, hoje conhecido como Terra, eu era o unico desenvolvedor Java deles (da região de Piracicaba), enquanto o desenvolvimento Web era ainda era muito pouco concebida e PHP e o ASP da microsoft eram as preferidas dos clientes. Mesmo assim, se você queria ganhar bem, recomendava-se aprender Visual Basic e Delphi e desenvolver aplicações desktop, mas realmente eu gostava mesmo de Web.
Finalizando meu estágio, eu quase decidi aprender ASP e PHP, porque achava que Java não tinha muito mercado, isso foi em 1999 e 2000. Até que decidi me mudar para São Paulo. O Ano era 2001 e Java começava a bombar.
De cara o meu primeiro grande projeto em 2001 foi para um companhia de telecomunicações chamava Vesper, onde o sistema era hospedado na IBM Tutóia, com toda infraestrutua IBM e seu WebSphere (naquela época WebSphere estava engatinhando). Foi esse o meu primeiro grande projeto Java e dai em diante eu comecei a ir para o lado da IBM e seus produtos.
Mas, afinal de contas, o que aconteceu daquela época para cá ?
Aconteceu muitas coisas, uma delas que é Java começou a ser ensinado nas escolas e universidades, e finalmente o aluno começou sair da Universidade para o Mercado de trabalho, usando a mesma linguagem que ele havia estudado lá . O Alunos não precisavam mais aprender outras linguagem de programação (ma maioria das vezes). O meio científico, que tinha como linguagem preferida o C/C++ começou a olhar o Java de uma forma melhor (sim eu participei de um projeto científico na USP financiado pela FAPESP em 1998, se você falava em desenvolver pesquisa em Java, você seria completamente ignorado, o meio científico e academico dizia que cientistas programavam em C/C++). As empresas que desenvolvem produtos, passaram a ter escolhas além do C/C++ para desenvolver produtos, e Java começou a aparecer não somente no mercado comercial, mas no mercado científico e acadêmico, mas como também empresas que desenvolvem produtos.
Mas o que são produtos ?
Citei apenas alguns para vocês terem ideias. Nesse quase 10 anos que venho trabalhando e estudados Java, Java se tornou a linguagem escolhida para muitos produtos, softwares, aplicações etc.
Mas agora as pessoas perguntam, será que Java é bom para tudo ?
Será que para eu desenvolver um Sistema rápido não seria melhor usar PHP, Python, Ruby, ou Groovy ?
Assim como no passado o mercado disse, não precisamos de uma linguagem tão complexa ou poderosas para desenvolver aplicações comerciais, embora eles tivesse o C/C++ muitas aplicações eram desenvolvido em Visual Basic e Delphi. Hoje o mercado faz a mesma coisas, será que precisamos desenvolver tudo em Java, será que para determinado projeto não seria melhor PHP, Ruby, Groovy e Python ?
Então o que acontece hoje não é que Java está perdendo seu espaço. Os desenvolvedores e os tomadores de decisões estão apenas perguntando, será que isso realmente precisa ser feito em Java, ou eu posso escolher outras linguagem mais simples !
Trabalho com Java a muito tempo, e até alguns anos atrás só havia estudados C/C++ além do Java. Hoje tenho estudado e ficado em alerta em PHP, Ruby, Python e Groovy. Porque ?
Quando preciso argumentar em um projeto, sobre as vantagens de cada linguagem, preciso ter um ótimo embasamento técnico para argumentar qual a melhor solução para aquele determinado cliente. Falar que linguagem X é bom, porque eu gosto não é o melhor argumento.
Outra coisa, estudar outras linguagem não me fez gostar menos do Java. Aprender outras linguagens me fez abrir a cabeça e entender que para cada solução eu posso ter um linguagem para resolver o meu problema.
É por isso que empresas como a Sun, está investindo pesado em para portar linguagem para a JVM (assim como a microsoft faz com o seu CLR), veja o caso do Ruby como o JRuby, Python com o Jython, e o Grovy. A Sun não está abandonando o Java, eles só querem ter um número maioria de linguagens na JVM, conseqüentemente Java poderá se interagir com várias delas.
A própria IBM no Projecto Zero, usa bastante em PHP e Groovy.
Na semana passada a Sun contratou 2 desenvolvedores chave do Python e Jython, mas um indicio que termos mais uma boa alternativa de linguagem dentro da JVM.
Kleber Rodrigo de Carvalho
A InfoWord lançou um serie de reportagem nomeada como 2007’s Top 10 Underreported Tech Stories, algo como As Top 10 Historias de Tecnologias mal contadas de 2007.
Como o próprio título diz “Underreported”, significa algo que não foi reportado o suficiente. A primeira noticia que eu li foi sobre Companies may have found a way around H-1B visa limits, que fala sobre como as empresas talvez tenham encontrado um meio para contornar a solicitação de vistos para os Estados Unidos.
A segunda noticia é sobre Java está se tornando o novo Cobol.
Kleber Rodrigo de Carvalho
Infelizmente depois de algumas horas tentativas, ainda não consegui resolver o problema do erro de CGI.
Na verdade existe um bug no CGI/FastCGI do IIS.
Eu achei que era um problema do wordpress:
http://wordpress.org/support/topic/146225
http://wordpress.org/support/topic/131976
Mas perceba que esse problema somente aparece no Microsoft-IIS/6.0, meu ambiente de teste aqui é Windows/Apache com CGI/FastCGI, e não tem problema. O mesmo acontece no Linux/Apache. Realmente o problema está no IIS com FastCGI.
A empresa de host que contratei, possui alguns plano e eu assino o plano Aw, com Windows e Microsoft-IIS/6.0.
Se os problemas persistirem, e ter outro custo beneficio melhor, terei que mudar.
Kleber Rodrigo de Carvalho
Pessoal
Alguns links do blog aqui não estão funcioando, e aparece a mensagem CGI Error.
Isto está acontecendo devido a um bug do wordpress:
http://trac.wordpress.org/ticket/5951
http://wordpress.org/support/topic/131976
http://wordpress.pastebin.ca/893007
http://wordpress.org/support/topic/150484
Na verdade já existe um fix para este bug, mas eu tenho que atualizar minha versão do wordpress, que vai levar um certo tempo.
Estarei fazendo um mais rápido possivel, mas enquanto isso você não conseguiram acessar os artigos no histórico desse blog.
Peço desculpa, e assim que corrigir estarei fazendo um novo post com os resultados dessa correção.
Kleber Rodrigo de Carvalho
Acabei de ler um excelente artigo sobre O Brasil como um Mercado Emergente na Produção e Exportação de Software, escrito pelo professor José Augusto Fabri. Não esquecendo a fonte, eu cheguei até esse artigo pelo blog do Juliano Martins.
Recomendo fortemente a leitura dos comentários desse artigo também, eu mesmo postei alguns lá:
Excelente artigo, o Steve Bowden e o Juliano Matins enfatizam 2 pontos interessantes.
>Our conclusion was that the salaries and protection system (leis trabalhistas) are too constraining to make a move to Brazil worthwhile.
Infelizmente sem uma reforma tributária, não conseguiremos resolver isso. Chega de remendos na nossa tributação, precisamos realmente de uma reforma definitiva. Eu sei, que uma regra do empreendedor é não reclamar do governo e sim encontrar um solução para contorna-lo, mas realmente a reforma tributária está sendo vista como uma solução até para um iniciante em finanças como eu.
>A smaller, but still problem was the weak English spoken by most of the programmers.
Não basta falar um inglês bom, para ser um profissional respeitado, é preciso ter um inglês ótimo.
Quanto ao inglês eu já escrevi sobre isso no meu blog, no artigo A importância do Inglês.
Kleber Rodrigo de Carvalho
Tirando o hype que essa social network causou, realmente não me interessei por ela. Mas li um artigo sobre How Open Is Facebook, Really escrito por Richard MacManus que mostra várias aspectos dessa social network. Vale a pena ler a idéia central desse artigo.
Kleber Rodrigo de Carvalho
Quem aqui nunca fico perdido com as tecnologias que envolvem o plataforma Java.
Eu por exemplo já trabalho com algumas tecnologias no dia a dia e ainda preciso me manter atualizado, porque eu sei que meu projeto não é finito, na verdade não existe projeto infinito.
If you are a Java web developer and you want the highest degree of marketability, you nee to know..
Então com se manter atualizado com as tecnologias que te proporcionam estar dentro do mercado ? E quais são essas tecnologias ?
O mercado brasileiro é um pouco diferente, mas no artigo sobre How to Survive in a Turbulent Job Market, Steven Haines fez uma pesquisa sobre quais são as keywords que os recrutadores mais pedem no mercado Java. Não é uma pesquisa com grande teor científico, mas pode sim servir como um guideline para quem quer direcionar sua carreira para o mercado de trabalho, ou melhor para qual tipo de tecnologia o mercado está precisando.
Kleber Rodrigo de Carvalho
Assistindo este vídeo na CNN, voltei a pensar na teoria que grandes ideais estão baseadas em coisas simples.
GreenPrint é um software baseado em uma ideia simples, mas resolve um problema que se encontra em vários lugares ” o desperdício de folhas impressas”, que são folhas que contém somente URLs, propagandas, bannners, anúncios etc. Estas paginas perdidas ocorrem muitas vezes ao dia, fazendo com que nós e empresas ao redor do mundo percamos dinheiro, tempo e arvores.
Gostou da solução, então não deixe de visitar o site printgreener.
Kleber Rodrigo de Carvalho