terça-feira, 4 de agosto de 2009

Que caminhos seguir

No último post falei um pouco sobre possíveis carreiras a serem seguidas na área de TI. A tônica deste post é qual caminho seguir, em que segmento investir nessa área.Acho que essa é uma resposta difícil de responder, pois quando uma pessoa escolhe uma profissão pode levar em consideração uma série de quesitos para apoiar sua decisão como oportunidade, custo benefício, grana ou o gosto natural por alguma atividade.

No início de uma graduação somos bombardeados por uma avalanche de informações. Acredito que essa situação visa justamente a tomada de decisão por parte do estudante no sentido de fazer uma escolha.No meu caso o quesito levado em consideração foi o da oportunidade. Tive um professor de programação que me apontou um caminho que até hoje em dia possui grande demanda e conseqüentemente apresenta muitas oportunidades - O desenvolvimento de sistemas.

Caminho escolhido! Qual o próximo passo? O que fazer para se tornar um analista desenvolvedor de sistemas? O que aprender? As respostas a essas perguntas me surpreenderam e podem assustar a qualquer aspirante ao cargo em questão.

Por conta do surgimento de novas tecnologias a cada dia, pode-se afirmar que hoje um bom programador é aquele cara que entende de tudo um pouco, pois os programas desenvolvidos por este profissional com certeza precisaram interagir com essas tecnologias. Por exemplo, vamos supor que uma empresa solicite a você o desenvolvimento de um sistema de controle de entrada e saída desta empresa e que as informações manipuladas por esse programa devam estar armazenadas em um banco de dados. O mínimo que se espera desse profissional é que ele conheça a linguagem de programação a ser utilizada para o desenvolvimento desse sistema e que o profissional saiba como manipular os dados do banco de dados em questão.

Vamos supor ainda que essa empresa possua uma matriz e diversas filiais espalhadas pelos quatro cantos do mundo de modo que o sistema tem que ser desenvolvido de forma distribuída. Além do conhecimento de programação e banco de dados, o programador agora deverá entender um pouco de redes. Afinal de contas, como os computadores espalhados pelos diversos endereços dessa empresa se interligariam na ausência ou na presença desta rede?

Começou a sentir na pele o drama de ter que se decidir que caminho seguir?É meu amigo! A decisão não é fácil.

Conheço gente que atua bem em qualquer um dos desafios apontados no post anterior. Esses são os profissionais que considero “cabeçudos”, ou que nasceram com um dom natural para o negócio.

Para mim foi uma questão de predisposição. Eu até esse momento não tinha sequer noção do que essas maquininhas de calcular avantajadas seriam capazes de realizar.Como não era cabeção resolvi seguir o conselho do Virgilio (o professor de programação mencionado neste post alguns parágrafos acima).

Agora se você quiser seguir o mesmo caminho que eu, leia as dez dicas que eu escrevo abaixo:

Primeiro passo: Aprenda lógica de programação. É importante memorizar aquela tabelinha verdade que os professores anotam no quadro ( V & V = V; V & F= F e por aí vai). Ela com certeza será muito utilizada nas estruturas de condição e repetição presentes em um programa.

Segundo passo: Adote um linguagem de programação para aplicar na prática o que foi aprendido nas aulas de lógica de programação. Eu, a época em que estava aprendendo lógica, decidi utilizar a linguagem javascript, pois a mesma não necessitava de nenhuma IDE (ferramenta utilizada para auxiliar o programador no desenvolvimento de sistemas). Com o bloco de notas do Windows, se consegue escrever os programas feitos em javascript.

Terceiro passo: Aprenda a manipular as informações constantes em um Banco de dados. Hoje em dia, a maioria dos SGBD ( sistemas gerenciadores de banco de dados) fala a linguagem SQL. Portanto pelos menos um pouco de SQL o programador deve saber. Inserir, alterar, consultar e excluir registros presentes em um banco de dados é essencial.

Quarto passo: Não basta saber lógica. É importante que o programado aprenda as técnicas já consagradas de programação. Existem uma série de algoritmos que mostram como ordenar ou estruturar dados (procure "bublesort" no Google que você vai entender do que estou falando).

Quinto passo: uma das qualidades de um bom profissional de desenvolvimento de sistemas deve aprender a abstrair, ou seja, separar do resto do mundo o que realmente interessa ao cliente ou a empresa que demanda um sistema.

Sexto passo: Aprenda a entender os diagramas utilzados na relação entre os interessados no sistema. A UML é a linguagem utilizada pela maioria das empresas no mercado. Seguir esse padrão sem dúvida irá diferenciá-lo dos demais profissionais que atuam na área de desenvolvimento de sistemas.

Sétimo passo: Consulte os exemplos de algoritmos constantes nos diversos fóruns de discurssão sobre o assunto espalhados pela Internet. Tente entender a técnica ou lógica utilizada nesses códigos. Com o tempo você notará que algumas soluções poderão ser utilizadas em diversos sistemas desenvolvidos pelo programador ao longo de sua trajetória profissional.Oitavo passo: Não tem pra onde correr. Fiquem alerta as tecnologias que surgem a cada dia. XML, AJAX, Web services. Tenha a certeza que uma hora, um sistema desenvolvido por você terá que interagir ou fazer uso de uma dessas tecnologias.

Nôno passo: Uma hora você irá perceber que a maioria dos sistemas que acessam banco de dados fará a mesma coisa, ou seja, incluirá, alterará, excluirá e consultará dados constantes de um banco de dados com o objetivo de produzir informação.

Décimo passo: Todo programa deve realizar algum tipo de processamento. Assim, alguém ou algo fornece argumentos para o programa (entrada). Esses dados são processados (processo) pelo programa e gera algum tipo de resultado (saída).

Décimo primeiro passo: Um analista deve ter o dom da abstração, ou seja, o analista deve possuir a habilidade de concentrar nos aspectos essenciais de um contexto qualquer, ignorando características menos importantes ou acidentais. Em modelagem orientada a objetos, uma classe é uma abstração de entidades existentes no domínio do sistema de software.

E por último eu diria o seguinte: sem dedicação e persistência não há santo que ajude a alguém a conquistar um objetivo. Lembre-se você está traçando o seu caminho profissional e como tal essa trajetória deve ser tratada com seriedade.

Espero ter ajudado!

Saudações a todos.

Nenhum comentário: