
Python depois de anos em shell script e GPO: o que muda quando você aprende a programar de verdade
Passei anos automatizando coisas com bash e PowerShell. Quando encontrei Python na pesquisa, percebi que havia uma diferença entre escrever script e escrever código.
O script que processava logs de servidor tinha 200 linhas de bash.
Eu tinha escrito ao longo de meses na Oi, adicionando condição por condição. Funcionava. Mas se alguém me perguntasse o que fazia linha 87, eu precisava ler com cuidado. Não era código que se lia — era código que se decifrava.
Quando entrei no projeto de pesquisa e o professor disse "aqui a gente usa Python", reescrevi aquele script. Ficou 18 linhas.
Bash é ótimo para o que bash faz: colar comandos, manipular arquivos, automatizar sequência de operações. Quando você tenta fazer mais do que isso — parsing estruturado, lógica condicional complexa, manipulação de dados — começa a sentir o atrito.
Python removeu o atrito.
Não porque Python seja melhor em abstrato. Mas porque Python foi desenhado para ser lido, não só executado. Indentação como sintaxe força estrutura visual. Nomes de função descritivos são encorajados pela comunidade. A stdlib tem o que você precisa sem instalar nada.
O que mudou quando aprendi Python de verdade — não só "copiei de tutorial":
Funções como unidade de pensamento. Em bash, função existe mas não é natural. Em Python, você pensa em função primeiro. "O que essa coisa faz" vira nome de função. Isso forçou clareza que eu não tinha antes.
Estrutura de dados além de string. Em bash, tudo é string. Em Python, você tem lista, dicionário, set, tupla — cada um com semântica própria. A escolha da estrutura certa documenta a intenção.
Bibliotecas que resolvem problemas que você não sabia que tinha. csv para parsing de planilha. datetime para manipulação de datas. pathlib para caminhos. Não precisei implementar nada dessas coisas.
O que shell script me deu que Python não dá:
Velocidade de escrita para operações de arquivo e processo. ls | grep | awk | sort ainda é mais rápido de escrever quando você só quer filtrar e ordenar. Python tem subprocess e pathlib, mas o pipe do bash é mais expressivo para esse caso.
Integração com sistema operacional sem overhead. Script de deploy, rotação de log, cron job simples: bash ainda vence em clareza porque é o idioma nativo do sistema.
A transição não foi "bash ruim, Python bom." Foi entender qual ferramenta serve qual propósito.
Mas teve um aprendizado específico que ficou: quando você lê código escrito por você mesmo seis meses depois e não entende, o problema não é memória. É que o código não comunicava intenção — comunicava instrução.
Python me forçou a pensar em comunicação primeiro. Shell me ensinou que instrução precisa funcionar. Os dois juntos são o que uso até hoje.
Essa semana: pega um script que você escreveu há mais de três meses. Você consegue ler e entender sem ter que executar?