Ontem (17/03/2018) aconteceu o WoMakersCode Summit, aqui em SP.
Participei deste evento desde o surgimento da ideia,e foi uma experiência muito legal!!! Tive o privilégio de ver 200 mulheres com sede de fazer a diferença neste mundo louco que vivemos… Aqueceu meu coração.
Uma das etapas do evento era a mentoria. Nela as meninas podiam escolher uma profissional e conversar para responder 3 perguntas:
- O que você sabe sobre essa carreira (exemplo de perguntas: você sabe o que essa função faz? Por que ela te chamou atenção?)
- Como o mercado vê (exemplo: onde essa posição está dentro de um projeto, quais os skills necessários, além dos skills técnicos)
- O que eu preciso estudar para chegar lá (criar uma espécie de roadmap para montar um plano de estudos)
As meninas que conversaram comigo e com a Gabriela (lindas e queridas!) queriam saber mais sobre banco de dados e a nossa conversa foi muito legal!
Este post sintetiza o que eu conversei com elas.
Pergunta 1 – O que é um DBA?
DBA é a sigla para Database Administrator, ou seja, aquele que administra o banco de dados.
Bancos de dados são criados para armazenar aquilo que a empresa tem de mais valioso, seus dados e por isso é uma carreira de muita responsabilidade e enorme pressão (dica de sobrevivência é saber lidar com a pressão, porque ela é inerente a função).
O DBA atua com várias equipes da empresa (desenvolvedores, arquitetos de dados, auditores, QA e etc…), e isso é muito legal porque temos a oportunidade de conhecer muita coisa.
Os bancos de dados são criados “dentro” de aplicativos chamados SGBD (Sistema Gerenciador de Banco de Dados), e é indispensável para o DBA conhece-los muito bem. Existem vários, por exemplo:
SQL Server, Oracle, MySQL, MongoDB, Cassandra, Redis, Neo4J…
Não precisa chorar, porque você não precisará dominar todos, mas precisará conhecer muito bem aquele que você for trabalhar.
Você já percebeu que o assunto é complexo, né? Mas trago boas notícias!!! Existem perfis diferentes de DBAs, porque é praticamente impossível saber tudo e administrar tudo. Eu divido os DBAs em alguns tipos de acordo com a atividade principal que ele executa no dia-a-dia:
- DBA de Infra
- São os profissionais responsáveis pela instalação, configuração e monitoração da infraestrutura. Definem, por exemplo, o tipo de disco que será usado, como será a replicação e se ela existirá, como será o backup, quantidade de memória… Entre outras configurações.
- DBA de Monitoração
- Monitoram o uso do banco de dados quando ele está em produção. Esta função é importante para garantir que os dados estejam sempre disponíveis para as aplicações, e se alguma coisa errada acontecer este DBA que atua de forma emergencial.
- DBA de Projeto
- Atua junto com os arquitetos de dados para criar os modelos dos dados que serão usados por uma aplicação.
- DBA de desenvolvimento
- DBA responsável por escrever ou validar as consultas que são executadas no banco de dados. Também analisa as consultas e faz as alterações para que elas tenham o melhor desempenho. Ele é o responsável pelo que chamamos de tunning (melhoria das queries para que sejam executadas mais rapidamente e consumam a quantidade de recursos adequada.)
Pergunta 2 – Quem é o DBA dentro do projeto? O que é preciso saber para ser DBA?
O DBA é um papel onipresente nos projetos, e participa de todas as etapas, uma vez que 99% das aplicações manipulam dados.
A primeira dica que eu dou para os DBAs é conheça o projeto em que você vai atuar… Isso te ajuda a tomar as melhores decisões e faz de você um profissional diferenciado. E se você é um DBA de infraestrutura conheça o negócio da empresa. Isso é importante até para que saibamos a importância da nossa atuação.
Como DBA não se acomode! É preciso ser curioso, conhecer várias tecnologias e (como eu já disse) dominar o SGBD com o qual você vai trabalhar.
Eu acho importante ter conhecimento nos seguintes (itens técnicos):
- Um outro SGBD além do que você trabalha.
- Não seja “prisioneiro” de um SGBD. Diversifique seus conhecimentos.
- Um banco de dados NoSQL
- Eu costumo dividir o mundo de banco de dados em 2 partes:
- Relacionais
- Os bancos de dados relacionais são os mais usados atualmente, armazenam os dados em formato de tabelas, suportam uma quantidade moderada de dados, obrigatoriamente tem suporte às propriedades ACID (veja os posts sobre as transações no termos importantes), e utilizam o padrão SQL para consulta dos dados.
- NoSQL
- Os bancos de dados NoSQL, em sua maioria, não utilizam o padrão SQL para consulta dos dados, armazenam dados em diversos formatos (documento JSON, imagens, arquivos…), podem ter suporte às propriedades ACID (mas em 90% dos casos não tem), suportam volumes de dados imensos, são executados em hardware mais barato.
- Relacionais
- Eu costumo dividir o mundo de banco de dados em 2 partes:
- Teoria de banco de dados (ajuda sim!)
- Meus caros, não adianta conhecer o SGBD mais moderno e não entender nada dos conceitos envolvidos! Por que se você fizer isso será escravo de uma ou outra tecnologia. Tudo o que você aprendeu sobre banco de dados na faculdade é importante, e vai te ajudar a entender melhor o seu trabalho.
- Modelagem de Dados
- É importante entender a estrutura da informação. Então saiba modelar e ler um modelo de dados.
- Linguagem SQL
- É indispensável conhecer bem a linguagem SQL, porque em 90% do tempo será com ela que você irá interagir com os dados.
- Fundamentos de Infraestrutura
- Se você optar por ser um DBA de infraestrutura, vai precisar ir além dos fundamentos, mas para os outros papéis os fundamentos já ajudarão muito.
- Uma linguagem de programação
- Saber programar ajuda muito na criação de rotinas que simplificam o seu trabalho e/ou manipulam dados. É uma carta na manga! Se você está na dúvida sobre qual vai estudar, aconselho linguagens como Python e Java Script. São fáceis e ajudam bastante.
Mas e os skills não técnicos? Vou dar a minha opinião… Lembrando que não sou de RH e nem psicóloga, tudo que eu estou escrevendo faz parte das minhas observações.
- Paciência!
- Você será culpado pelas lentidões na aplicação… O problema pode ser na rede, mas o primeiro culpado sempre é o banco de dados. Não se irrite com isso (na verdade você vai se acostumar), mas tenha sempre em mãos algumas queries que mostrem que o desempenho está conforme o planejado.
- Espírito de equipe
- Você fará parte de um grupo, onde todos tem como objetivo trazer lucro para a empresa. Não seja o chato que não participa, não ajuda e ainda “dá patada” no restante dos membros da equipe! Trabalhe para o bem de todos. Ser DBA é uma grande responsabilidade, requer discernimento e a capacidade de ouvir.
- Paciência para lidar com tecnologias antigas
- A tecnologia muda… Mas para o DBA muda de forma mais lenta! Estamos em 2018 e sei de empresas que ainda utilizam o SQL Server 2005!!! É preciso ter paciência porque as empresas não mudam de SGBD sempre que uma nova versão é lançada.
- Vontade de conhecer novas tecnologias
- Parece contraditório… Mas juro que não é! Se por um lado você precisará cuidar de bancos de dados criados em SGBDs antigos, por outro você precisa conhecer novas tecnologias para poder opinar sobre elas (vai que a empresa decida migrar os bancos antigos para uma versão nova?), para mudar de emprego, para atuar em novos projetos.
Pergunta 3 – O que eu preciso estudar para chegar lá?
Espero que você goste muito de estudar! Porque é necessário, e na minha opinião, é divertido!
Já dei algumas dicas no decorrer desde post… Mas vamos estruturar os passos…
- Acompanhe o blog! Juro que não é só propaganda! Mas meu foco é ajudar desenvolvedores iniciantes, e sendo assim os posts vão te ajudar.
- Teoria vai ser útil! Então leia os dois livros do C.J. Date
- Introdução a Sistemas de Bancos de Dados
- Projeto de Banco de Dados e Teoria Relacional
- Leia sobre modelagem de dados e neste caso aconselho muito os livros do meu querido professor Carlos Barbieri:
- Modelagem de Dados (este livro é mais antigo, por isso deixei o link para o estante virtual)
- BI2 Business Intelligence. Modelagem e Qualidade
- Acompanhe os posts do blog sobre SQL Server, baixe a máquina virtual e treine! Este é o ambiente ideal para testar, quebrar, recriar…
- Aprenda a linguagem SQL – estou tentando achar um curso bacana, mas ainda não achei. Por isso segue a dica de alguns livros bacanas:
- Introdução à Linguagem SQL (Thomas Nield)
- SQL e Teoria Relacional (C.j. Date)
- Aprenda uma linguagem de programação
- Lógica de Programação e Algoritmos com JavaScript (Edécio Fernando Iepsen)
- Estruturas de dados e algoritmos em JavaScript (Loiane Groner )
- Curso Gratuito de Python ministrado por professores da USP
- Pense em Python (Allen B. Downey)
- Busque cursos e livros de infraestrutura (infelizmente não lembro de nenhum, mas se eu lembrar atualizo o post)
Conclusão
O caminho não é fácil… Mas é bem divertido!
Se você escolher esta direção para a sua carreira, eu só posso te dizer uma coisa… Parabéns! Você escolheu uma carreira muito legal!
E se precisar de ajuda, conte comigo!
* Observação importante!!! Semana que vem voltamos com os posts sobre SQL Server 2017 🙂