Setor: Desenvolvimento de software

Produtos da JetBrains usados: PyCharm

Tamanho da organização: 30+

País: Alemanha

Scieneers

A Scieneers é uma empresa de TI composta de 35 especialistas em TI, dados e ciência de dados, todos apaixonados por dados e por extrair valor deles. A empresa oferece serviços de engenharia e ciência de dados, focados em extrair insights valiosos e maximizar o potencial dos dados.

“Em comparação com outros IDEs, o PyCharm tem um conjunto exclusivo de recursos. O mais importante deles é sua capacidade de refatoração confiável e abrangente. Outro recurso exclusivo do PyCharm é seu suporte a configurações avançadas de execução. Além disso, gosto da "sensação de cockpit" do PyCharm: é um espaço centralizado que me dá acesso rápido a todas as ferramentas necessárias para o meu trabalho.”

— Moritz Renftle, Cientista de dados, Scieneers GmbH

Poderia, por favor, apresentar-se e dizer o que faz a sua empresa?

Estudei Ciência da Computação na Universidade de Constança e no Instituto de Tecnologia de Karlsruhe (KIT), com foco em bancos de dados e ciência de dados. Entrei para a Scieneers em 2022 e desde então, venho desenvolvendo e implantando soluções de dados para empresas de diversos setores. Meu trabalho requer um conjunto amplo de habilidades, que incluem análise de dados, desenvolvimento de modelos personalizados, manter-me atualizado sobre técnicas recentes de aprendizado de máquina e a implantação de pipelines de dados na nuvem.

A Scieneers reforça as equipes de seus clientes ou oferece a eles suas próprias equipes para projetar e desenvolver produtos completos de dados e levá-los até a produção. Além de nossos clientes empresariais e de pesquisa, também apoiamos inúmeros projetos no setor sem fins lucrativos. Vários exemplos do nosso trabalho podem ser encontrados no nosso Web site: https://www.scieneers.de.

O que definiu a escolha do PyCharm como seu IDE primário?

Em primeiro lugar, eu gosto da "sensação de cabine de pilotagem" do PyCharm: é um espaço centralizado que me dá acesso rápido a todas as ferramentas necessárias para o meu trabalho, incluindo um editor de código, um sistema de controle de versões, um terminal e um navegador de bancos de dados. Comparado a usar essas ferramentas em aplicativos separados, o PyCharm funciona com menos atrito e usa menos "energia cerebral" nas mudanças de contexto.

Além disso, em comparação com outros IDEs, o PyCharm tem um conjunto exclusivo de recursos. O mais importante deles é sua capacidade de refatoração, confiável e abrangente. Em comparação com outras ferramentas, o PyCharm executa essas refatorações de forma muito confiável e garante que o meu código já existente continue funcionando.

Outro recurso exclusivo do PyCharm é seu suporte a configurações avançadas de execução. Por exemplo, posso facilmente criar uma configuração de execução que executa localmente um script em Python como uma tarefa "Before launch", antes de executar o aplicativo principal em uma máquina remota.

Também gosto da integração do interpretador remoto de SSH no PyCharm. Pode ser um pouco difícil configurar o interpretador de SSH, dependendo das configurações da rede e de outros fatores. Mas uma vez que ele esteja em execução, ele funciona de forma muito confiável. Além disso, adoro a capacidade de depurar código em uma máquina remota. Por exemplo, isso é especialmente útil ao treinar um modelo de aprendizado de máquina em uma máquina remota que tenha uma certa GPU que não posso testar localmente. Também adoro o quanto é fácil executar notebooks Jupyter remotos no PyCharm, via SSH. Por fim, mas não menos importante, o PyCharm me ajuda a evitar uploads acidentais de código entre clientes diferentes ao especificar exatamente quais diretórios serão transferidos a qual máquina remota.

Quais desafios o PyCharm ajudou você a superar no seu desenvolvimento?

O PyCharm me ajudou a:

  • Reduzir as mudanças de contexto entre diversos aplicativos e ferramentas.
  • Executar refatorações de forma rápida e confiável.
  • Encapsular facilmente diversas etapas de execução local ou remota em uma única configuração de execução.
  • Executar e depurar código em máquinas remotas preservando a privacidade dos dados.
  • Fazer experiências e prototipagem com notebooks Jupyter remotos.

Quais são alguns benefícios associados especificamente ao uso de notebooks Jupyter no PyCharm?

Estes são alguns dos recursos que se destacaram para mim ao usar notebooks Jupyter no PyCharm:

  • Acesso às refatorações do PyCharm.
  • Extrair código de um notebook para um pacote separado, sem atrito.
  • Acesso ao depurador do PyCharm dentro das células de um notebook.
  • A capacidade de executar o Jupyter em uma máquina remota, através de um interpretador de SSH.

Poderia dar um exemplo no qual as ferramentas de depuração do PyCharm foram essenciais para identificar e resolver problemas em um projeto de aprendizado de máquina?

Tivemos um bug em uma etapa de pré-processamento do nosso pipeline de aprendizado de máquina, resultando em valores implausíveis conforme nossos modelos. Para depurar esse problema, usei o depurador do PyCharm em uma máquina com GPU remota que executou o pipeline de aprendizado de máquina. Tínhamos razoável certeza de que o bug estava no nosso próprio código e não em uma biblioteca externa. Assim, durante a depuração, usei o recurso "step into my code" do PyCharm e pulei todas as chamadas intermediárias de código de biblioteca. Conseguimos localizar e corrigir o problema de forma eficaz, criando pontos de interrupção e traçando frames intermediárias de dados.

Poderia discutir o papel do PyCharm ao escalonar modelos de aprendizado de máquina?

O PyCharm permite o escalonamento e a testagem realista de modelos de aprendizado de máquina, executando-os remotamente em uma máquina com o mesmo hardware do ambiente de implantação.

Você já usou ou está planejando usar algum dos recursos do AI Assistant do PyCharm?

Estou planejando experimentar esses recursos na primeira oportunidade que eu tiver. Seria ótimo se pudéssemos usar um modelo local ou auto-hospedado de aprendizado de máquina para complementação de código por IA.

Contatos