Banco de Dados

25 mai, 2010

Ganhando experiência em banco de dados

Publicidade

Olá, pessoal. Hoje falaremos um pouco sobre como ganhar experiência na área de banco de dados. Geralmente quem está começando em BD sofre um pouco com isso, pois esta é uma das áreas de TI que mais requer confiabilidade do profissional.

Algumas semanas atrás recebi um
e-mail de uma leitora do iMasters me perguntando como fazer para começar na
área, pois em todas as entrevistas de emprego de que ela participou
cobraram experiência. Mas, pelo que pude entender, ela estava querendo começar
na área e estava justamente buscando uma oportunidade onde gostaria de ganhar
experiência.

Bem, já comentei anteriormente aqui no iMasters sobre vagas para um DBA. Além disso, também desviei o foco técnico dos artigos e abordei assuntos como postura no trabalho, habilidades não técnicas e até já descrevi como é o típico dia a dia de um DBA, porém ainda não havia falado de como ganhar experiência na área, e não estou falando de como subir de nível com o seu Tauren ou com o seu paladino.

Quando um estudante ou mesmo
alguém deseja começar na área de banco de dados, essa pessoa deve ter a
consciência de que tem muito a aprender. Muito mesmo. E também saber que, muitas
vezes, esse aprendizado nem sempre vai ser fácil ou vir de graça. Assim como a
confiança, certas oportunidades não vêm de graça e precisam ser conquistadas.

Piada velha, mas que mostra a realidade da falta de experiência com banco de dados. Via Nanquimaoquadrado

Na área de banco de dados, e em particular para o cargo de DBA, é comum que o profissional comece trabalhando com programação. Essa transição de programador para DBA, geralmente após um período considerável de experiência, é muito natural e já foi até comentada no primeiro episódio do podcast Dabatabasecast. Além de ser um caminho natural, tenho visto muitos profissionais que começam trabalhando como programadores e ao longo de sua carreira resolvem se especializar em banco de dados. Mas também é muito comum encontrar profissionais que vêm da área de infraestrutura (redes, suporte, help desk, etc) e que desejam aprofundar seus conhecimentos em banco de dados, especialmente na parte administrativa.

Independentemente da origem, saber trabalhar com banco de dados requer algum grau de experiência, tanto na parte teórica quanto prática. E é aí que está o problema: a falta da parte prática, pois a parte teórica é relativamente fácil de ser obtida através de estudo, cursos, faculdade etc. Sem entrar em detalhes a respeito da minha opinião sobre a parte teórica, aconselho aos leitores mais interessados que visitem o artigo que escrevi sobre o compartilhamento de conhecimentos na área de T.I.

Voltando ao assunto, como conseguir experiência com banco de dados se todas as entrevistas de emprego pedem essa tal experiência? Bem, quando recebi o e-mail, primeiro sugeri que talvez as vagas para quais essas entrevistas estavam selecionando não fossem para estagiário ou DBA júnior. Por definição, a vaga de estagiário ou DBA júnior não deveria necessitar de experiência. Contudo, muitas vezes o mercado acaba exigindo algo que foge às definições, especialmente em situações onde o empregador quer ser ‘esperto’ e contratar um profissional que conheça muito para uma remuneração que não é adequada. Deixando a discussão sobre isso de lado, vou comentar o que sugeri para a leitora que me enviou um e-mail.

Uma ótima forma de se ganhar experiência em programação, e por tabela com banco de dados, é a participação de projetos de software livre. Sim, esses projetos são abertos à comunidade e sempre estão precisando de colaboradores.

Muitos projetos de software livre precisam de colaboradores de todos os níveis, desde aquele programador avançado até quem está começando a aprender a utilizar o computador. O importante é compreender o espírito de colaboração e saber contribuir para o projeto com algo relevante. Com certeza quem coloca no seu currículo que participa ativamente em um projeto de código livre mostra um diferencial na hora da contratação, assim como quem tem certificação também se diferencia. Porém colaborar para um projeto de software livre, independentemente do nível do projeto ou do tipo de colaboração, mostra que o profissional sabe trabalhar em grupo, é pró-ativo e está em sintonia com a comunidade.

Certificações, de acordo com o Wallisson Narciso, do ótimo Nanquimaoquadrado

É claro que existem diversas formas de contribuir para um projeto de código livre. O primeiro passo é conhecer o projeto, como funciona e qual é a sua finalidade. Em seguida, é preciso entrar em contato com os membros que participam do projeto, geralmente através da lista de discussão de e-mail, fórum, comunidades em redes sociais e até pelo twitter. Este é um ponto chave: apresentar aos membros do projeto quem você é, como você quer contribuir, como está engajado.

A contribuição em si pode variar. Não sabe programar? Tudo bem, você pode montar uma documentação, ajudar na tradução ou mesmo sugerir melhorias ou reportar bugs. Normalmente o começo é assim, devagar. Porém, com o tempo, é possível assumir mais responsabilidades, desde que você entenda a visão dos membros mantenedores do projeto e se adapte à forma de trabalho deles. Novamente, o importante aqui é ter vontade de contribuir para ganhar experiência. Divergências sempre vão surgir, mas, pelo menos a princípio, é importante deixar claro até que ponto você pode contribuir no projeto e como você pretende realizar essa contribuição.

Um exemplo clássico: muitos profissionais iniciantes não conseguem ter experiência com softwares de controle de conversão do tipo csv, subversion e team server. Porém a comunidade de software livre está cheia de repositórios que fornecem suporte para se trabalhar desse jeito. Esses repositórios são uma verdadeira fonte de idéias e projetos de software livre que podem auxiliar muito quem está precisando de experiência. Para citar apenas alguns, recomendo o SourceForge.net , o Savanah  e o CodePlex. Existem também repositórios em português, como o CodigoLivre.org  e o
AgroLivre.gov.br.

Outro ponto importante a ser lembrado é que a contribuição em projetos de software livre começa devagar. Raramente algum novo membro do projeto já vai começar trabalhando direto no projeto e tomando decisões. O mais comum é que o novo membro comece realizando tarefas repetitivas, documentação, comentário em código, tradução, refatoração, desenvolvimento de plug-ins ou mesmo auxiliando na divulgação do projeto ou na execução de diferentes tipos de testes. Esse é um primeiro passo que pode não tem conexão direta com a experiência em banco de dados, mas é muito importante para ensinar como se trabalha em equipe e também é útil para avaliar a vontade e o comprometimento do novo membro. Aliás, esse tópico de comprometimento merece ser um pouco mais detalhado.

Não são raras as situações onde um novo membro de um projeto de software livre está entusiasmado em contribuir e aceita qualquer nova tarefa. Porém, com o tempo, esse entusiasmo diminui e, devido às limitações de tempo, prioridades ou outras questões pessoais, o novo membro resolve se desligar do projeto. Apesar de essa situação não ser muito agradável, pelo menos para o projeto, ela acontece muito. O ideal aqui é sempre deixar a comunidade informada do comprometimento e, em caso de desligamento do projeto, deixar claro o que foi feito, até que ponto a tarefa progrediu o que precisa ser feito para que outra pessoa possa continuar de onde a tarefa foi parada.

Para finalizar, vou citar alguns projetos de software livre relacionados a banco de dados e aplicações corporativas com os quais realmente vale a pena contribuir de alguma forma, seja programando, testando ou documentando. Existem muitos outros projetos interessantes na área e sugiro ao leitor procurar projetos de seu interesse nos repositórios de software livre já citados. Caso algum leitor queira contribuir solicitando ajuda em algum projeto de código aberto relacionado a banco de dados, sugiro a utilização dos comentários deste artigo para tal solicitação.

  • MySQL Workbench: Este projeto é uma excelente interface para a criação de objetos no MySQL. Veja como contribuir neste link.
  • Legisdados: Este projeto é sobre a obtenção de dados públicos pode facilitar e tornar transparente o acompanhamento de ações políticas, destino de recursos, causas e efeitos de atitudes, conscientização e outros fins.
  • CRM: O Sugar CRM é um software livre para CRM. Contém muitos conceitos importantes para quem deseja trabalhar com CRM. Outro bom projeto de software livre que lida com CRM é o vTiger.
  • ERP: Existem diversos ERP que são software livres. Para mais informações sobre alguns projetos, vejam a lista contida neste link. Neste outro link são apresentados mais alguns projetos ERP de software livre. Outro artigo interessante sobre ERPs de software livre pode ser encontrado aqui e aqui. Mais um link com lista de ERPs de software livre aqui.
  • Ponto de venda: O PHP-POS (Point Of Sale) é um programa de ponto de venda (PDV) desenvolvido em PHP que possui muito potencial a ser explorado, principalmente no Brasil. Outro projeto interessante de ponto de venda com código livre é o ptPOS.
  • Sistema de gestão comercial: O STOQ é um projeto de código livre bem interessante que contém uma suíte de aplicativos para gestão comercial.
  • Sistema de Call Center. O VOCP é um ótimo projeto de código livre para controlar telemarketing e call Center. Há um artigo em português explicando como utilizá-lo aqui.
  • Sistema financeiro: O LedgerSMB é um sistema de contabilidade (partidas dobradas) via web, livre (licenciado sob a GPL), escrito em Perl e usando o PostgreSQL para armazenamento de dados. Ele é voltado para pequenas e médias empresas e pode ser usado por intermédio do navegador web. Neste link há uma apresentação sobre softwares livre de contabilidades.

Até a próxima!