22nd Jan 2025 8 minutos de leitura Por que aprender SQL como um desenvolvedor de software? Alexandre Bruffa aprender sql Índice A importância do SQL nas funções de desenvolvimento de software Vale a pena aprender SQL como desenvolvedor! O SQL está em toda parte! Aprenda SQL para entender os ORMs O SQL é essencial para a análise de dados Solução eficiente de problemas Tomada de decisões técnicas Depuração e automação Oportunidades de carreira Aprenda SQL hoje mesmo! Como desenvolvedor de software, você pode ter passado por situações em que teve de trabalhar com SQL. Talvez você se pergunte se ter um conhecimento superficial de SQL é suficiente para a função ou se deve realmente se aprofundar no assunto. Resposta curta: você deve! Neste artigo, explicarei por que os desenvolvedores de software devem aprender SQL. Sou desenvolvedor de software há 15 anos e notei uma mudança progressiva na função. Anos atrás, um desenvolvedor de software precisava conhecer a linguagem de programação com a qual estava trabalhando e algumas bibliotecas ou estruturas. Hoje em dia, a realidade é mais complexa e muitos desenvolvedores de software estão aprendendo SQL em profundidade. Vamos ver por quê. A importância do SQL nas funções de desenvolvimento de software Os desenvolvedores de software geralmente acham que não precisam investir tempo no aprendizado de SQL e que apenas saber o básico é suficiente. Mas, na minha opinião, essa é uma ideia ultrapassada. O escopo do desenvolvimento de software mudou. Digamos que você seja oficialmente um desenvolvedor Python. É claro que você precisa conhecer a linguagem Python e as bibliotecas e estruturas relacionadas à sua área específica de desenvolvimento. Você também precisa entender vários campos relacionados que orbitam em torno do desenvolvimento de software: IoT, nuvem, DevOps e dados/bancos de dados (entre outros). Dessa lista, não subestime a importância dos dados e dos bancos de dados. Todas as entrevistas de desenvolvedores de software que fiz nos últimos dez anos SEMPRE fizeram perguntas sobre SQL. Nos últimos anos, também conduzi muitas entrevistas técnicas sobre Python - e devo confessar que tenho um espaço dedicado para perguntas sobre bancos de dados e, mais especialmente, sobre SQL. Você se sente preparado para sua próxima entrevista técnica? Se não, Marek Pankowski vai ajudar você! Dê uma olhada em seu artigo Common SQL Job Interview Questions (Perguntas comuns sobre SQL para entrevistas de emprego). Se você precisa aprender SQL primeiro, recomendo nossa SQL de A a Z trilha. Seus sete cursos e centenas de desafios de codificação o colocarão no caminho certo em sua jornada SQL! Vale a pena aprender SQL como desenvolvedor! Nesta seção, explicarei por que, na minha opinião, vale a pena aprender SQL como desenvolvedor. O SQL está em toda parte! Em primeiro lugar, o SQL está por trás da maioria das tecnologias de dados. Independentemente do domínio com o qual você trabalha, provavelmente usará pelo menos uma tecnologia SQL. Os bancos de dados relacionais são uma tecnologia antiga, mas estão mais relevantes do que nunca! Sites de comércio eletrônico, redes sociais, sites de notícias e até mesmo seu aplicativo bancário usam SQL. Embora novas tecnologias de banco de dados tenham surgido nos últimos anos, os bancos de dados relacionais e o SQL continuam sendo a principal tecnologia para bancos de dados. De acordo com a Pesquisa de desenvolvedores do Stack Overflow de 2024, os desenvolvedores profissionais estão usando maciçamente os bancos de dados relacionais: de fato, os quatro bancos de dados mais usados são bancos de dados relacionais (PostgreSQL, MySQL, SQLite e MS Server). Pesquisa Stack Overflow 2024 Se você está se perguntando onde o SQL está sendo usado atualmente, recomendo que dê uma olhada no excelente artigo de Agnieszka Kozubek-Krycuń As tecnologias SQL são mais comuns do que você pensa. (Spoiler: elas estão em toda parte!) Aprenda SQL para entender os ORMs A seguir, vamos falar sobre mapeadores objeto-relacionais (ORMs). Como desenvolvedor, você pode se perguntar: "Por que eu deveria saber SQL? Os ORMs podem fazer o trabalho!" Isso é um grande erro! Usar um ORM geralmente é uma boa prática: ele ajuda a interagir com os bancos de dados relacionais e fornece uma camada de abstração que gera a consulta SQL para você. Os ORMs também são grandes aliados da segurança: eles podem protegê-lo contra um ataque direto de injeção de SQL ou outras vulnerabilidades de SQL. Entretanto, os ORMs, como todos os sistemas, têm limitações. A mais famosa delas é um problema de desempenho. Um ORM representa uma camada adicional entre o banco de dados e o backend e tem sua própria latência. A latência pode ser irrelevante para consultas pequenas, mas pode se tornar um grande problema para consultas grandes. Nesse caso, você tem duas alternativas: reestruturar a consulta para ser mais eficiente ou escrever a consulta SQL manualmente. Em ambos os casos, você precisa ter um conhecimento profundo de SQL. O SQL é essencial para a análise de dados O SQL é a linguagem da análise de dados. Os gerentes de produto me pediram muitas vezes (um desenvolvedor, não um analista de dados) para preparar relatórios, inclusive gráficos e painéis de análise de dados. Como desenvolvedor, você pode pensar "Ei, esse não é o meu trabalho!", mas na verdade é! Todas as ferramentas de BI (por exemplo, Metabase, Looker) se conectam a bancos de dados relacionais e usam SQL. Embora a interface visual dessas ferramentas permita que você extraia dados facilmente do banco de dados, os gerentes de produto, os profissionais de marketing ou quem quer que precise dos dados são, em sua maioria, pessoas que não são da área de tecnologia; eles não têm a menor ideia de como um banco de dados é estruturado. Além disso, a interface visual das ferramentas de BI tem limitações; você provavelmente terá de elaborar consultas brutas usando SQL. Afinal de contas, SQL é uma linguagem de programação e você é um desenvolvedor! Pronto para mergulhar no SQL? Se estiver, dê uma olhada em nossa incrível (e gratuita) SQL para Iniciantes Cheat Sheet, que é um guia prático dos comandos mais usados da linguagem. É uma ótima maneira de começar a aprender SQL ou de refrescar sua memória! Solução eficiente de problemas A solução de problemas de desempenho de aplicativos é mais comum do que você imagina; é até mesmo uma pergunta típica em entrevistas técnicas. Suponha que o tempo de resposta para uma determinada ação dentro do seu aplicativo seja anormalmente alto (ou até mesmo não atinja o tempo limite). Como você poderia resolver isso? Muitos atores podem estar envolvidos nesse problema: domínio cruzado, cache, limitação de ponto final, capacidade do servidor, inicialização a frio e... banco de dados. Se o problema vier do banco de dados, você poderá ser solicitado a otimizar algumas consultas, independentemente de o aplicativo estar usando um ORM ou não. Nesse caso, é essencial ter um conhecimento profundo de SQL. Seu banco de dados está sem índices? Você poderia criar uma visualização para consultas frequentes? As consultas poderiam ser paginadas? Você precisará de SQL para tudo isso. Tomada de decisões técnicas Aprender SQL e bancos de dados relacionais em geral também é muito útil na hora de tomar decisões técnicas. Como desenvolvedor de software e, eventualmente, líder técnico, você pode ser solicitado a escolher entre diferentes tecnologias antes de iniciar um novo projeto. Quando se trata de bancos de dados, você precisa conhecer os diferentes tipos de bancos de dados e a maneira como eles são dimensionados (e, portanto, os custos). A natureza do setor em que você está trabalhando também é importante. Tradicionalmente, os bancos de dados relacionais são usados quando as transações (sequências de várias operações em um banco de dados) são necessárias para a conformidade com a ACID. Portanto, se você estiver criando um aplicativo de comércio eletrônico ou bancário, um banco de dados SQL provavelmente será a melhor opção. Dito isso, aprender SQL também lhe dá uma ideia do que pode ser feito facilmente. Anos atrás, minha equipe e eu optamos por usar um banco de dados NoSQL para armazenar as informações da sessão do usuário do nosso aplicativo. Esse banco de dados oferecia dados não estruturados, nenhuma transação necessária e escalonamento vertical. A escolha parecia boa até que nos pediram para criar um painel de análise de dados para os dados da sessão do usuário. O que poderíamos ter feito facilmente com um banco de dados SQL e comandos simples nos tomou um tempo considerável. Essencialmente, acabamos reinventando a roda. Depuração e automação Conhecer o SQL como desenvolvedor também é muito útil para depurar ou criar dados de teste. Em alguns casos, você terá que depurar seu aplicativo e trabalhar diretamente com o banco de dados. Muitas vezes, tive de consultar o banco de dados de produção da empresa para encontrar um caso extremo e criar um script SQL para corrigi-lo. É essencial conhecer comandos como SELECT, JOIN e WHERE (para recuperar os dados) e INSERT, UPDATE e DELETE (para modificá-los). Os scripts SQL também o ajudam a automatizar tarefas comuns do banco de dados. Você pode, por exemplo, executar um script todos os dias para localizar e desativar todos os usuários do seu banco de dados que não renovaram a associação após várias notificações. Oportunidades de carreira O último motivo pelo qual você deve aprender SQL como desenvolvedor é porque isso o ajuda a progredir na carreira e a ter oportunidades. Ao aprender SQL, você pode colaborar melhor com as equipes de dados (analistas de dados, cientistas e engenheiros). Kateryna Koidan resumiu isso perfeitamente em seu excelente artigo How Developers Can Build SQL Skills (Como os desenvolvedores podem desenvolver habilidades em SQL). E, depois de algum tempo, você pode até mudar de carreira para trabalhar com dados, se achar que gosta disso. Aprenda SQL hoje mesmo! Neste artigo, vimos por que vale a pena aprender SQL como desenvolvedor de software. Você provavelmente precisará dele em seu trabalho diário, e ele pode ajudá-lo a progredir na carreira e a ter novas oportunidades. Espero tê-lo convencido a iniciar sua jornada SQL! Se sim, recomendo fortemente que dê uma olhada em nossa trilha SQL de A a Z. Ele abrange tudo o que você precisará em SQL como desenvolvedor. Obrigado por ler este artigo; espero realmente que você tenha gostado! Vejo você no próximo! Tags: aprender sql