Convite para evento online: Women Techmakers Montreal

Convite para evento online: Women Techmakers Montreal

Olá! O post de hoje é um convite ao evento: Women Techmakers Montreal.

Women Techmakers é um programa criado pelo Google, para celebrar o Dia Internacional da Mulher e para realçar o talento das mulheres em tecnologia. Este programa já passou por mais de 200 eventos globais e 52 países. O próximo evento será no sábado, dia 20 de Março, 2021.

Ano passado, eu me lembro de estar muito animada para participar do evento em Montreal. Por√©m… o COVID aconteceu e eventos foram cancelados. Felizmente, a organiza√ß√£o mudou para um evento online. Foi um dia maravilhoso! Cheio de mulheres super inspiradoras e uma comunidade linda.

Esse ano, eu quis: 1- fazer com que mais pessoas descubram o evento, e 2- fazer com que mais pessoas participem!

Quem pode participar?

Todos os gêneros são bem vindos! Se você gosta de tecnologia, eu tenho certeza que você encontrará um tópico que te interessa. Se inscreva e aproveite! (:

Importante: por ser realizado em Montreal, todo o conte√ļdo ser√° em ingl√™s ou franc√™s.

O evento é de graça e dura o dia todo (das 9AM às 6PM EST). Aqui você pode consultar a agenda do dia.

Caso voc√™ queira ver o que rolou no ano passado, aqui est√° uma playlist com as sess√Ķes.

Para mais informa√ß√Ķes, visite o site oficial.

Espero te ver por la!

Check out this post in English.

T-SQL Tuesday – Meu tipo de dado (menos) favorito em SQL: DATE

Ol√°! Este post √© uma contribui√ß√£o ao T-SQL Tuesday. T-SQL Tuesday √© um blogothon mensal, onde a comunidade se re√ļne para escrever sobre um t√≥pico diferente. O t√≥pico de mar√ßo  √© sobre seu tipo de dados favorito. Brent Ozar √© o host do m√™s.

Eu escrevi esse post em duas vers√Ķes. Esta que voc√™ est√° lendo em portugu√™s, e uma em ingl√™s.

Se voc√™ trabalha com dados, voc√™ provavelmente n√£o tem controle sobre todas suas fontes. Por exemplo, voc√™ pode coletar dados de lugares diferentes. Talvez seja o seu trabalho centralizar os dados, e criar padr√Ķes para que os dados fa√ßam sentido para o seu time. Uma vez que voc√™ entendeu seus dados, voc√™ pode extrair o real valor deles.

Quando seus dados existem em diferentes sistemas, talvez voc√™ n√£o tenha controle sobre a valida√ß√£o que acontece por tr√°s. 

Por exemplo, um dos seus fornecedores podem ser muito espec√≠ficos sobre os tipos de dados que eles permitem no sistema. Isso significa que quando os dados chegarem at√© voc√™, voc√™ ver√° algo (idealmente) mais estruturado. Contudo, seus dados podem tamb√©m prover de um sistema liderado por desenvolvedores que decidiram deixar o usu√°rio ‚Äúlivre‚ÄĚ para fazer o que quiser (aten√ß√£o ao verbo ‚Äúquerer‚ÄĚ e n√£o ‚Äúprecisar‚ÄĚ, existe uma grande diferen√ßa a√≠).

Dados dos tipos de datas são muito importantes em SQL. Mas para nós humanos, datas podem ser formatadas de diferentes maneiras… Por exemplo, no Brasil, escrevemos datas de um jeito diferente dos Estados Unidos.

  • Brasil: DD/MM/AAAA
  • EUA: MM/DD/AAAA

Em SQL, seu tipo de data é guardado no banco assim: AAAA-MM-DD. Não tem como errar, certo? Errado.

Lembra quando eu disse que voc√™ pode ter origens diferentes dos dados e que por isso n√£o tem controle sobre as valida√ß√Ķes? Vamos pensar no seguinte exemplo:

  • Seus clientes usam um sistema de outro fornecedor, passando os dados para eles
  • O fornecedor usa os dados para fazer o que quer que seja que o sistema fa√ßa
  • Eles te enviam os dados com o resultado do projeto
  • Voc√™, um profissional inteligente, tenta carregar os dados no seu sistema. E mais importante, seu sistema √© formatado com os tipos de dados que voc√™ espera receber. Ent√£o, digamos que voc√™ queira receber um campo com valores do tipo data, voc√™ vai formatar sua tabela para ter um tipo de data.
  • Vamos usar a tabela ‚ÄúThirdPartyInfo‚ÄĚ abaixo como exemplo.

Agora, como você já deve ter imaginado, seu fornecedor não aplicou nenhum tipo de validação para esses tipos de dados. Logo, você pode se deparar com alguns tipos de datas estranhos, como esses:

  • Jan/2021
  • 03-20-18
  • 01-02-03 (onde come√ßar com esse?!)
  • 2022/2
  • Entre outros…

Isso é o que acontece quando tentamos inserir algo que não é uma data, em qualquer uma das colunas do tipo data.

Não importa o método que você use para popularizar essa tabela, você vai receber um erro se você não está passando valores do tipo data para suas colunas do tipo data.

Como evitar problemas como esse

  • Seja honesto com o seu fornecedor sobre a raz√£o de ter os tipos de dados que voc√™ precisa, e explique quais s√£o eles. Como explicar? Fazendo aquilo que os profissionais de TI mais odeiam: documentando.
  • Se o fornecedor est√° relutante com a mudan√ßa, fale com seus superiores, mostre para eles cen√°rios onde voc√™ tem que gastar seu tempo precioso (e caro) s√≥ para arrumar esse erro. Reinforce que isso pode ser evitado se todo mundo estivesse na mesma p√°gina sobre os tipos dos dados que voc√™s compartilham.
  • Se nada acima funcionar, ou voc√™ precisar de uma solu√ß√£o tempor√°ria enquanto a situa√ß√£o se resolve, voc√™ poderia validar os dados do seu lado. Se voc√™ fizer um esfor√ßo agora, antes do problema, pode parecer mais trabalho, massss o voc√™ do futuro vai te agradecer por ter se esfor√ßado antes do problema chegar.

Aprendendo do pior jeito

  • Exemplo da vida real: eu recentemente tive um problema que me custou um certo tempo. Eu recebi um arquivo csv necess√°rio para um relat√≥rio, e o arquivo tinha alguns campos de datas. Minha tabela estava esperando receber os campos de datas com valores‚Ķde datas. Por√©m, meu job do carregamento dos dados estava com problemas.
    • Eu tive que dar um passo para tr√°s e tentar encontrar a raiz do problema. Eu pensei que fosse ser algo f√°cil de conseguir se eu olhasse as entradas mais recentes do arquivo (esse tipo de arquivo era mandado pra n√≥s todos os dias, com as coisas mais recentes atualizadas). Meu problema principal, foi que eu n√£o isolei a coluna de data que estava dando erro. Na verdade, no SQL Server, a mensagem de erro quase sempre √© muito gen√©rica, e n√£o me falava qual a coluna. Tudo que eu sabia era que uma string estava tentando ser convertida em data, mas sem sucesso.
    • Meu segundo maior problema foi arrumar tudo que eu encontrei no arquivo, que pudesse de alguma forma estar causando o problema. Alerta spoiler: isso n√£o resolveu meu problema.
    • Eu demorei um tempo para entender que usar a fun√ß√£o ‚ÄúISDATE‚ÄĚ, seria uma maneira f√°cil de procurar por uma coluna que esperava receber um tipo de data, mas que recebia outra coisa.

Em momentos de desespero, esquecemos solu√ß√Ķes simples, como esta. 

Observe que o resultado dessa consulta tem um valor do tipo texto. Agora, você pode aplicar essa validação ANTES de carregar os dados na sua tabela de produção, além de usar o mesmo comando para investigar problemas como esse.

Resumindo: eu na verdade gosto do tipo DATE no SQL. Funciona bem, mas o problema real foi que falhamos como humanidade pois nunca concordamos em um √ļnico formato para datas. Espero te ajudar de alguma forma!

Se quiser ler mais sobre tipos de dados de datas em SQL, leia aqui (em ingl√™s). 

Você resolveria meu problema de uma maneira diferente? Me conte abaixo nos comentários (:

Dicas de sites e podcast sobre dados e tecnologia

Este post ser√° feito apenas em portugues, j√° que nele eu indico conte√ļdo para brasileiros.

Photo by Avel Chuklanov on Unsplash

Eu adoro me manter informada através de blogs e podcasts. Sempre me inscrevo em diferentes sites, blogs e comunidades por aí. Quando não estou afim de ler e procuro uma coisa mais descontraída ou quero conhecer outros profissionais, eu escuto podcasts. Acredito que esses sejam jeitos fáceis e legais de me manter informada sobre novidades e o que está rolando na comunidade.

Além disso, os sites e podcasts me permitem aprender sobre coisas que talvez eu nunca procuraria. Pensando nisso, eu resolvi dar dicas de alguns sites e podcast que eu sigo e indico. Pequeno lembrete: eu trabalho na área de dados, então a maioria das minhas dicas serão relacionadas a área.

Sites

Podcasts

Inglês

Caso você saiba falar inglês e queira praticar, aqui estão meus blogs preferidos:

  • Brent Ozar, Microsoft Certified Masters, Brent trabalha como consultor e tem varios treinamentos de SQL Server, blog e canal no youtube (ps: os treinamentos dele s√£o fant√°sticos, indico muito!)
  • Haystacks, blog de data science por Caitlin Hudon
  • Little Miss Data, blog de data science por Laura Ellis
  • SQL Server Central, blog da comunidade de SQL Server
  • SQL Authority, blog sobre SQL Server por Pinal Dave
  • Towards Data Science, blog de data science no Medium

Conhece algum outro site ou podcast que n√£o est√° na lista? Comenta a√≠ embaixo! ūüėČ

Pr√°ticas para coment√°rios e nomes de arquivos SQL

Image: https://tinyurl.com/pt8ly0ix

Conhece o sentimento de abrir um novo arquivo, e pensar ‚Äúeu n√£o vou reutilizar esse c√≥digo‚Ķ s√≥ vou fazer isso uma vez‚Ķ‚ÄĚ. N√≥s dois sabemos que voc√™ est√° mentindo.

Eu estou falando isso pois, na maior parte do tempo:

  • seu c√≥digo √© reutiliz√°vel
  • voc√™ √© humano e esquece as coisas. Ent√£o, talvez amanh√£ voc√™ j√° tenha esquecido como resolver uma coisa que voc√™ fez hoje.
  • eu nunca vi onde voc√™ salva seus scripts mas eu aposto que voc√™ poderia fazer uma boa limpeza na sua pasta

Quando voc√™ est√° trabalhando em algo, tente se imaginar no futuro. O seu ‚Äúeu‚ÄĚ mais velho provavelmente n√£o tem ideia do que seja o *projeto_importante_2018_script*. O seu eu mais experiente est√° feliz lendo este arquivo? Eu acho que n√£o.

Se voc√™ fizer um esfor√ßo agora para ser mais ‚Äúarrumadinho‚ÄĚ com o seu c√≥digo, essas pessoas v√£o ficar muito felizes:

  • o seu eu futuro
  • seus colegas de trabalho que leem seus c√≥digos
  • pessoas que v√£o assumir seu lugar no futuro, e v√£o pensar ‚Äúolha s√≥! essa pessoa n√£o era t√£o p√©ssima, era apenas ruim mesmo!”

Como adicionar coment√°rios em SQL

Basicamente, existem duas maneiras de adicionar coment√°rios em SQL:

1- adicione ‚Äú–‚ÄĚ e comece a digitar!

2- adicione “/**/” e escreva entre os asteriscos.

Nenhum é melhor que o outro. A primeira opção é mais usada para comentários na mesma linha do código. A segunda, é mais comum para comentar blocos de código, ou escrever comentários maiores que não vão ficar em uma linha gigante.

Coment√°rios iniciais

Pessoalmente, eu acredito que comentários são algo bom. não é algo que eu faça em cada linha do código, porem, quando eu abro uma nova query, automaticamente eu adiciono um cabeçalho de comentários.

Eu começo meus scripts da seguinte forma:

Autor: quem est√° escrevendo o script.

Data: quando o script foi criado, para edi√ß√Ķes eu geralmente adiciono um edit na mesma linha.

Projeto: qual projeto o script faz parte. √Č legal descrever um pouco o projeto.

Descrição: descrever a razão do seu script, aqui é onde você explica onde está parte se encaixa no todo.

Requisitado por: nome de quem pediu que isso fosse desenvolvido. Além dos nomes, talvez seja interessante adicionar também os emails para contato.

Importante: se voc√™ est√° escrevendo uma stored procedure, lembre-se de adicionar o seu bloco de coment√°rios depois do comando ‚ÄúCREATE PROCEDURE‚ÄĚ. Fazendo isso, o seu coment√°rio vai estar integrado ao c√≥digo da proc, e vai aparecer inclusive quando voc√™ escolher a op√ß√£o de ‚Äúmodificar‚ÄĚ o arquivo. Se voc√™ n√£o fizer assim, o coment√°rio vai ficar salvo apenas no pr√≥prio arquivo principal do script.

Dando um nome ao arquivo

Tente ser descritivo e intuitivo quando for nomear seu arquivo, e não abrevie muito. O nome que você escolheu pode parecer relevante na hora, mas de novo, pergunte-se se o seu eu do futuro está te odiando agora.

Se o seu script fizer parte de um projeto maior, então tente começar o nome do arquivo como algo que remeta ao projeto.

Por exemplo: sp_RelatorioFinancasAutomatico_CalculoSalarioFuncionario

Com esse nome, sabemos:

  • sp: isso √© uma stored procedure
  • RelatorioFinancasAutomatico: nome descritivo do projeto
  • CalculoSalarioFuncionario: o que a sua parte especifica do script faz 

Evite usar termos como ‚Äúnovo‚ÄĚ, ‚Äúvelho‚ÄĚ, ‚Äúfinal‚ÄĚ, dentre outros. Isso n√£o √© √ļtil em longo prazo. Se voc√™ est√° criando v√°rios rascunhos, por exemplo, seria interessante versionar, usando ‚Äúv1‚ÄĚ, ‚Äúv2‚ÄĚ, ou at√© adicionar a data no nome do arquivo. Mas, lembre-se que esses nomes deveriam ser tempor√°rios, e assim que voc√™ descobrir qual finalmente √© sua vers√£o ‚Äúv23_final_novo‚ÄĚ, mude esse nome. Outra coisa que voc√™ pode fazer √© mover seus rascunhos para uma sub-pasta dentro do projeto, assim fica mais f√°cil de organizar os scripts ‚Äúfinais‚ÄĚ e importantes.

Essas s√£o coisas b√°sicas que eu fa√ßo todos os dias. Espero que voc√™ tenha achado √ļtil. Existe outra coisa que voc√™ adiciona que gostaria de compartilhar? Deixe seu coment√°rio (:

Quer ler este post em Inglês? Clique aqui.

Até mais!

Sobre mim

Como meu primeiro post oficial neste site, eu gostaria de fazer uma introdução minha, e compartilhar sobre o que eu gostaria de falar sobre, assim como meus objetivos escrevendo o blog.

Meu nome √© Camila Henrique. Eu sou de Indaiatuba, uma cidade pequena de S√£o Paulo, Brasil. Eu moro em Montreal, no Canad√°, enquanto escrevo este post em Janeiro de 2021. Eu trabalho com Microsoft SQL Server desde 2015. Hoje, atuo como DBA/SQL Developer em uma ag√™ncia. Por √ļltimo e n√£o menos importante, eu falo Portugues, Ingl√™s e Franc√™s, e adoro aprender l√≠nguas novas.

Sobre o que eu vou falar?

Eu sempre fui algu√©m que gosta muito de ter um mentor. Seja nos estudos ou no trabalho. Eu apenas acho que a vida fica mais f√°cil quando eu tenho algu√©m que pode me ajudar a tomar melhores decis√Ķes. Por√©m, eu tamb√©m entendo que seja dif√≠cil encontrar um bom “mentor” para quem est√° come√ßando. De jeito nenhum eu pretendo substituir esta pessoa na sua vida, mas eu gostaria de ajudar. Por isso, para voc√™, meus queridos iniciantes em TI – eu vou falar sobre os primeiros passos que voc√™ pode tomar na sua carreira.

Se você tem interesse em SQL, está se perguntando sobre passos iniciais, ou pesquisando sobre coisas específicas dessa área de dados, eu irei postar dicas práticas que vão te ajudar na vida real.

Eu acredito que nós, humanos da área de tecnologia, frequentemente negligenciamos o poder de saber se comunicar bem com outros humanos. Não importa o que você faça, tenho certeza que seu trabalho em algum momento envolve falar com outras pessoas. E todos sabemos que nós, de TI, não somos conhecidos por desempenhar um bom papel nesse ramo da comunicação. Então, eu quero compartilhar coisas que eu aprendi sobre comunicação.

Se voc√™, assim como eu, √© algu√©m que fala portugues como primeira l√≠ngua, eu gostaria de te ajudar nessa jornada bil√≠ngue. Vou fazer isso postando tanto em Ingl√™s quanto portugues, para que voc√™ possa escolher a l√≠ngua e praticar como quiser. Eu adoraria fazer parte da comunidade do nosso pa√≠s, assim como tamb√©m n√£o quero deixar de aproveitar a oportunidade de atingir mais pessoas com o conte√ļdo em ingl√™s.

Eu tamb√©m adoro falar de t√≥picos que envolvem diversidade no trabalho. Acredito que no nosso ramo n√£o temos muito conte√ļdo. Ent√£o, esse vai ser um t√≥pico que vai aparecer por aqui tamb√©m.

Por que eu sei que gostamos de descobrir algo mais “pessoal” sobre os outros: eu gosto de yoga, amo desenhar e definitivamente eu compro mais livros do que leio, mas n√£o recomendo que fa√ßam isso (tambem nao posso te julgar, se fizer, bem vindo ao clube!).

Eu espero passar um ótimo tempo juntos. Se você me seguir, me conta um pouco sobre você nos comentários, eu adoraria fazer mais amigos online.

Até mais!

Quer ler este post em inglês? Clique aqui.