Programar: um caso de amor e ódio

Tudo começou como muitas histórias que conhecemos. Um Action Script sem pretensão, só para fazer funcionar meu primeiro site em Flash. Depois um pouquinho de HTML* e CSS, para fazer o trabalho de conclusão de curso. Quando dei por mim, com frequência estava criando fórmulas no Excel. Não conseguia mais largar. Tudo virava planilha e […]

Tudo começou como muitas histórias que conhecemos. Um Action Script sem pretensão, só para fazer funcionar meu primeiro site em Flash. Depois um pouquinho de HTML* e CSS, para fazer o trabalho de conclusão de curso. Quando dei por mim, com frequência estava criando fórmulas no Excel. Não conseguia mais largar. Tudo virava planilha e teste automatizado. Depois vieram coisas mais pesadas: PHP, banco de dados, o início de uma segunda graduação (na área de TI) e até criar um site sozinho (este que você acessa).

Quando entrava nas minhas fases de programar, virava uma obsessão. Qualquer hora livre, nem que fossem 20 minutos, era hora para escrever algumas linhas de código a mais, testar uma ideia ou pensar numa solução para algo que identifiquei. Tinha que me policiar até para dar atenção às minhas filhas! Se não ficava lá, “em Nárnia”, concentrado na lógica de programação. E, para falar a verdade, é assim até hoje.

Esse relato — um tanto dramático, mas com muita realidade — é um retrato do caso de amor e ódio que é programar. Principalmente quando se programa como eu: como hobby ou com finalidade específica e sem prazo definido. 

Sim, amor “E” ódio. 

Amor porque você fica pensando por dias. Faz um esforço mental gigante para achar soluções simples só com o conhecimento que você tem. Ou então passa horas lendo documentações, tutoriais e vídeos tentando achar um norte para o problema que você enfrenta. Tudo com alto nível de empolgação. 

Ódio porque, como deve imaginar, muitas vezes a solução não vem fácil — principalmente quando você tem pouca experiência  em programação, como eu. Aí você se irrita, não quer mais saber daquele projeto, desiste por uns dias. Afinal, é um projeto pessoal mesmo, sem prazo. Mas a vontade de vencer o desafio é maior. Aí você acaba testando uma outra ideia que teve (ou que pesquisou), uma outra abordagem, e… eureka! Não é que deu certo?!

O exemplo mais recente desse amor e ódio foi o mini-sistema que criei em Excel e VBA (linguagem de programação do Excel), com cadastro e dashboard. Depois de aprender muita coisa do Excel como autodidata, resolvi fazer um curso que dizia ter um módulo avançado. Esse curso tinha um trabalho de conclusão de curso que poderia ser feito sem grandes dificuldade, só com o conhecimento adquirido. 

Mas não! “Tem que ser no nível Hard”, disse minha consciência. E lá fomos nós desbravar novos horizontes, quebrar a cabeça até praguejar Bill Gates para só então achar uma solução. Confira no vídeo abaixo:

 

 

Alguns outros exemplos de coisas que me deram trabalho, mas que hoje me orgulho:

  • Sistema Online de Cálculo de IMC:  desenvolvido a pedido da minha esposa, que usa diariamente. Indica não só o IMC, mas também o peso ideal e quando deve-se perder/ganhar. Front-end desenvolvido usando Bootstrap e back-end em php.  
  • Formulário de contato dentro das melhores práticas de segurança: mesmo tendo feito um site em WordPress, eu pensei “para que usar um formulário pronto, se posso tentar programar um?”. O desafio foi adaptá-lo a boas práticas de programação para que ele não virasse uma porta de entrada para um hacker.
  • Simulador de cenários de mercado: uma grande e complexa planilha que criei, durante minha pós e Administração da FGV, usada na disciplina de “Jogos de Negócio”. Analisava os padrões de sazonalidade e crescimento do mercado, permitindo simular quais os possíveis resultados seriam obtidos de acordo com as decisões sobre quantidade de produção, preço de venda, tamanho da folha de pagamento, estoques etc. Ajudou nossa equipe a vencer a disputa interna com grupos de outras cidades e a ficarmos no top 15 nacional. 

 

Os benefícios de aprender a programar

Alguns projetos educacionais, como o scratch.org (MIT, Estados Unidos), apontam que aprender a programar ajuda a pensar de forma mais criativa e desenvolve o raciocínio lógico. E, com isso, permite produzir protótipos de produtos que depois podem crescer e atender as necessidades de muita gente.

Uma das grandes vantagens que vi em aprender a programar é que uma coisa ajuda em outra. Por exemplo: muita gente não sabe, mas as fórmulas de Excel (sim, aquelas que vão nas células) seguem os princípios do que chamamos de “Lógica de Programação”: uso de funções, passagem de parâmetros, condicionais, índices…  Com isso, quando aprendi a programar, melhorei inclusive minha compreensão sobre como funcionam as coisas no Excel. Fora a já comentada linguagem de programação usada no software, o VBA, que permite fazer coisas incríveis. O mesmo vale para as diversas linguagens de programação e marcação: quando se aprendem algumas, outras ficam mais fáceis, pois possuem diversos pontos em comum. 

Vejo ainda outras vantagens de não-programadores aprenderem a programar:

– Saber tirar o máximo dos softwares e suas potencialidades: como extração de dados, integração de sistemas etc. Um exemplo já citado é o próprio Excel que, para as funções avançadas,  exige uso de fórmulas mais complexas ou mesmo utilizar programação VBA. Isso sem falar no quanto fica mais fácil entender o funcionamento de sistemas de gestão de leads, do disparo de e-mails automatizados, entre outros

– Conseguir dialogar melhor com profissionais de TI: você pode até não conseguir fazer tudo sozinho. Mas tendo uma noção do que a programação e suas linguagens podem fazer, conseguirá explicar melhor o que precisa e até propor soluções.

 Lembro uma vez que um programador estava integrando um sistema de Inbound Marketing com nosso CRM ( por meio de uma API). Os dados estavam vindo de forma totalmente incompreensível, utilizando o que chamamos de “IDs” ( identificadores), no formato de números. Não no formato texto, legível. 

E ele disse que não era possível mudar isso, pois era uma limitação da plataforma. Foi quando eu propus:  “Por que você não faz um “JOIN” no banco de dados antes de exibir as informações, para que o nome apareça e não apenas o número?”.  O programador concordou, foi lá tentar e pronto! Horas depois o problema estava resolvido

Em outro caso, identifiquei pelo código-fonte das páginas de um blog que ele estava com problemas em relação a otimização para SEO. Só de pedir para os desenvolvedores fazerem cinco modificações estruturais no sistema que número de acessos no meio do Google aumentou em 7 vezes.

– Criar suas próprias aplicações: você não conseguirá criar logo de cara um software muito complexo. Mas verá que algumas coisas estão, sim, ao seu alcance. Certa vez conheci um advogado que estudou um pouco de programação quando adolescente. Só com esse conhecimento ele havia criado um pequeno sistema que hoje o ajudava a ter mais produtividade em sua rotina no direito.

Na área de marketing digital, saber programar um pouco já me ajudou resolver diversas questões sozinho, como mudanças no layout , redirecionamento de páginas, HTML para e-mails,  rastreamento de leads, criação de formulário de contatos, entre outros. 

– Produtividade: não é segredo nenhum que a tecnologia ajuda a fazer tarefas que são repetitivas. Mas, para que isso aconteça, é preciso saber instruir a máquina sobre o que se deve fazer. E essas instruções muitas vezes são na forma de códigos.

Extração e análise de dados: não entra na minha cabeça que estejamos quase em 2020 e ainda há sistemas que não possuem informações de relatório, apenas processos de rotina. E muitos gestores ainda não se deram conta do valor que os dados de seu sistema podem ter quando reunidos e analisados, e por isso não cobram melhorias das empresas de desenvolvimento. Reunir e gerar visualizações de dados de forma estratégia é o foco da área que chamamos de Business Intelligence (BI). Algumas empresas ou softwares até estão desenvolvendo funcionalidades mais analíticas. Mas, ainda assim, os usuários ficam limitados aos tipos de gráfico e informações pré-definidas pelo sistema.

Seguindo outra linha, já pensou conseguir tirar seus próprios relatórios a partir de qualquer dado do sistema? Ou fazer diferentes cruzamentos de dados e descobrir coisas que podem mudar profundamente sua empresa? Parece irreal, mas para quem tem uma noção de programação e banco de dados sabe que não é impossível.

Tanto que foi isso que a Olist – a maior empresa de integração com marketplaces do Brasil – fez com seus colaboradores há cerca de dois anos. Para empoderar sua equipe de produtos, ensinou-os SQL (a linguagem de programação usada para fazer consultas nos bancos de dados). Com isso – e com as devidas permissões – eles puderam analisar milhões de informações com autonomia, sem depender da intervenção ou do desenvolvimento do pessoal de TI. E, como consequência, as equipes conseguiram  tirar mais insights originais e importantes, que ajudaram a empresa a crescer. 

 

Não é por acaso inclusive que algumas escolas (como o CEBRAC) já se atentaram a isso e estão oferecendo cursos de programação para crianças e adolescentes.  Então, se você não quer em breve ficar para trás dessa molecada, é melhor já começar a se preparar. Afinal, vai que em breve programação vira o novo inglês…

 

* Programadores: sei que HTML não é linguagem de programação, mas sim de marcação. Mas coloquei no texto como a mesma coisa, pra simplificar 😉  #paz

 

Vamos tomar um café?

Será uma satisfação trocar ideias, experiências e conhecer seus projetos