quinta-feira, 10 de maio de 2007

Como começar e como manter o foco (parte2)

Normalmente pessoas me perguntam como começar, pois se deparam com uma nuvem enorme de siglas que, vamos concordar, não são poucas. Mesmo que você pegue apenas uma tecnologia, ao exemplo de Java.

Como minha maior especialidade é Java, vou usá-la como exemplo para este post, voltando-me mais para web, sendo que é isso que está em alta hoje no mercado. Apesar de que para iniciar em programação não exista exatamente um caminho das pedras, vou tentar citar o que eu acho importante saber e em seguida como começar com java.

  1. Orientação a Objetos - Precisa saber muito bem. Não se engane, aprenda mesmo, aplique, leia muito sobre o assunto, aplique, refaça, mude, modele, remodele... Hoje, creio que o pior problema de programadores, é não saber realmente OO, acham que sabem, e criam sistemas que "desmoronam" mais tarde. A hora que vc disser, eu sei OO, to "bão" no negócio, então estude novamente tudo o que havia estudado e mais. Saiba como aplicar OO a sistemas, como desenvolver sistemas OO. Com este conhecimento, você será um bom profissional, note que nem estou falando em Java até agora.
  2. Design Patterns - Aquela coisa que para os iniciantes parece ser o "santo graal", não é nada de mais, são apenas formas de como se fazer as coisas, como modelar teu sistema, para que você consiga manter a qualidade e sobre tudo, eles são alguns padrões de como fazer as coisas, documentados por pessoas que passaram pelo mesmo problema, e descreveram a melhor forma de solucionar um certo problema. Lembre-se, não force o uso de um DP, mas sim, depois que você tiver a maioria deles bem estudados, e bem conceituados em sua cabeça, o seu uso será natural em seus sistemas. Note novamente que Java nem entrou ainda em seus estudos. Queria enfatizar que você irá ler muito até aqui, mas leia com atenção, não desanime porque ainda não está pondo a "mão na massa".
  3. UML - Acho bem interessante o aprendizado de UML e seus diversos diagramas, mesmo que inicialmente você não venha a ser um Analista/Arquiteto de sistemas, mas você irá responder a um, que, deus-queira, monte um diagrama de classes, de seqüencia, ... para que você possa trabalhar "consciente" do que está fazendo. Ainda não entramos em Java.
  4. Conceitos de Web - Se você irá trabalhar com Web, antes de aprender o que quer que seja, Java, .Net, Ruby, ou seja lá o que, aprenda os conceitos de Web. Como funciona, que tipo de protocolo usa, o que é um Request, Response, Session, métodos Post, Get, Head, etc. Ou seja, estude legal estes conceitos, pois muitos dos problemas que os iniciantes tem, são com estes conceitos.
  5. Plataforma Java - Este estudo não precisa necessariamente vir depois de todos os anteriores, normalmente ele vem seguindo em paralelo com eles. Porém ATENÇÃO, NÃO comece a desenvolver antes de ter aprendido os 4 primeiros. Aprenda o que é a plataforma completa, como ela está dividida, e então comece a aprender a linguagem em si, sintaxe, loops, if´s, coisas básicas. Normalmente, um iniciante se perde nesta parte, pois a Plataforma Java é bem abrangente. Um direcionamento profissional seria interessante, um curso, ou mesmo algum material disponível na internet, mas procure algo bom, existe muita coisa ruim pelo mercado. Eu sempre indico o material da Caelum, é o melhor material que eu conheço. Depois de ter aprendido bem a linguagem, existe algumas coisas ainda que são importantes, como:
    1. Collection API
    2. JDBC
    3. Thread e Sincronização
    4. ...
  6. Java WEB - Só então comece a aprender Java para web. Esqueça Frameworks, você não precisa deles agora, ainda não está pronto para eles. Aprenda primeiro, como é a estrutura de uma aplicação Java para Web, como fazer uma JSP, como fazer um Servlet e como fazer uma JSP e um Servlet conversarem, como fazer um Post, um Get e como trabalhar com Session. Depois, aprenda para que serve o tal arquivo web.xml e o que da pra fazer com ele, o que é um Filter, os Listeners possíveis e como aplicá-los. Tente então juntar os conhecimentos adquiridos até agora, OO, DP, UML e os Conceitos de Web com o Java e fazer um sisteminha simples para testes. Após feito e ele funcionando legalzinho, comece o mesmo sistema, de outra maneira, estudando e tentando melhorar alguns aspectos, tentando aplicar outros conhecimentos adquiridos com o primeiro projeto.
É..., não falei que iria ser fácil e que o tempo de estudo seria curto, porém, esta não é necessariamente a curva de aprendizado do Java em si. Mas sim a curva de aprendizado de um bom profissional. Não só na minha opinião, mas em todos os aspectos da vida, se uma coisa não tem uma base forte, o que for construído por cima dela, uma hora ruirá.

Enfim, esta é minha opinião hoje sobre o assunto, não sou o dono da verdade, porém hoje vejo que se tivesse seguido alguns caminhos assim, minha vida teria sido muito mais fácil =). Sei que alguns concordam, outros discordam, e ainda outros tem muitas coisas a acrescentar, mas isso foi o que me veio a cabeça em quanto estava escrevendo este post. Agradeço as opiniões.

Nenhum comentário: