#9 – Programe-se: the Zen of Life

Do porque você deveria aprender a programar (ou, se você já sabe, colocar em prática)

De outros posts deste blog (como este e este), é possível perceber que eu, apesar de ser uma pessoa emotiva, acredito na razão para tomada de decisões. Apesar disso, são bem conhecidos na ciência os momentos em que temos o conhecido sequestro da amígdala: nestes instantes, nenhuma razão é utilizada para a tomada de importantes decisões. Em virtude destes fatos, optei por escrever sobre algo que muito me motiva e torna a vida mais leve (e racional): programação de computadores. 

O tema pode parecer espinhoso em um primeiro relance e afastar o leitor que desconhece o assunto. De fato, houve uma época em que programar computadores era tarefa para poucos (a época dos cartões perfurados….), mas esta data se encontra cada vez mais longínqua, fazendo com que a atividade citada se torne algo cada vez mais simples, funcional, útil e prazerosa.

Eu obtive o livre acesso aos computadores aos 18 anos, no outuno de 2006, quando iniciei minha graduação – eu não tinha um pc até então. Meu primeiro contato com programação se deu nesta mesma data, utilizando o já obsoleto Pascal (PascalZim), no laboratório de computadores da UFSJ. Esta experiência, apesar de simplificada, foi transformadora, pois ali eu começava a entender como computadores “conversavam” e, o mais importante, que qualquer pessoa minimamente dedicada poderia aprender a falar uma nova língua. Ao longo de minha formação tive experiências (umas curtas, outras, bem mais aprofundadas) com outras linguagens como Matlab/Scilab/Octave, C/C++/C#, Fortran, um pouco de HTML, CSS e, mais recentemente, Python. À par de minha questão pessoal com computadores, vamos ao que realmente importa: a tomada de decisões utilizando a parte lógica do cérebro humano, e como programação de computadores se encaixa neste contexto.

Em termos menos rígidos, os computadores conversam entre si utilizando comandos lógicos e seguindo ordens previamente estabelecidas por alguém (usuário), tomando decisões de forma completamente racional, sem nenhuma influência emocional. Em termos simplistas, seguem ordens dadas pelos programadores do tipo “SE a vida lhe apresentar limões, FAÇA uma limonada”, ou ainda “ENQUANTO você não alcançar seu objetivo, TRABALHE duro”. No final de contas, é executado precisamente o que se foi planejado, independente de emoções ao longo do processo. Emoções estas, portanto, não têm lugar na execução das instruções previamente apresentadas ao computador (quem nunca conheceu um colega que ia mal nas avaliações por ter ficado nervoso durante a mesma?).

Para detalhar um pouco mais todo este tema, vou dividir o assunto em três partes: i) do mito “programar é coisa de NERD”, ou “isto não é para mim; ii) das aplicações práticas e cotidianas envolvendo programação de computadores e por fim; iii) porque você deveria considerar Python como seu primeiro (ou próximo) ambiente de programação (pelo menos até a data de escrita deste artigo).

1- DO MITO: “PROGRAMAR É COISA DE NERD”, OU “ISTO NÃO É PARA MIM”

 Começo esta seção com uma notícia do garoto que aprendeu a programar utilizando celulares quebrados (ele não tinha um pc). É óbvio que não se espera este tipo de heroísmo de toda a população, mas esta chocante reportagem nos mostra que sim: WHERE THERE IS A WILL, THERE IS A WAY (onde há uma vontade, há um caminho).  Ou encontramos um caminho para atingir o objetivo, ou uma desculpa para não perseguí-lo. A escolha é de cada um.

Na prática, o que acontece é que a nossa mente, na tentativa (as vezes bem sucedida) de poupar energia para momentos mais críticos, cria argumentos auto-sabotantes como “é coisa de nerd”, “isto não é para mim”, “precisaria ter mais tempo” ou ainda “precisaria de um computador excelente”. Saiba, portanto, que estas e outras desculpas podem estar tentando te desviando de sua rota de desejo (caminho mais duro, é verdade), e encaminhando-o ao caminho de menor resistência, o qual gera pouco ou nenhum fruto.

Outra falácia que comumente encontramos é que é necessário comprar cursos caros para aprender a programar. Isto não é verdade. Há, no youtube, longos cursos gratuitos (e de muita qualidade) sobre diferentes linguagens de programação, que não possuem nenhum pré-requisito para início. Portanto, sim, isto é para você: basta você desejar! Como exemplos, veja este link onde você encontra cursos gratuitos com aulas entre 10 minutos e 12 horas (ou mais), ensinando o primeiro passo da linguagem Python.

 

2- DAS APLICAÇÕES PRÁTICAS E COTIDIANAS ENVOLVENDO PROGRAMAÇÃO DE COMPUTADORES

É possível encontrar aplicações em programação para diferentes contextos de nosso cotidiano. Quem não gostaria de poder analisar a tendência de preços do mercado imobiliário, antes de efetuar (ou não) a compra de uma casa? Ou, ainda, qual advogado não gostaria de tomar a decisão de assumir ou não um determinado caso judicial baseando-se na propobabilidade de vencer a causa e no respectivo retorno financeiro, computados a partir de um sistema especialista tipo Fuzzy? A boa notícia é que tudo isto é possível, e o custo envolvido para tal é o tempo necessário para que você desenvolva o que deseja utilizar.

Nesta parte do texto vou buscar ser mais direto, indicando aplicações práticas (em Python, pelas razões que apresento no item 3) que podem tornar tomadas de decisões racionais, bem como contribuir para a compreensão de diferentes processos, para profissionais de distintas áreas. Obviamente, o objetivo aqui não é, nem de longe, esgotar o assunto. Ressalto que se você se encontra perante um problema que envolva tomada de decisões, provavelmente encontrará uma forma de utilizar computadores para auxiliá-lo (basta ser criativo e…. usar o stackoverflow).

Exemplos de aplicações:

2.1 Tomadas de decisão baseada em sistemas especialistas (Fuzzy) – Scikit Fuzzy:

2.2 Aplicações em Engenharias – SciPy

2.3 Projeto e implementação de filtros digitais (inclusive com aplicações a sinais de áudio e processamento de sinais) – PyFDA

2.4 Aplicações do tipo “plug n play” para ciência de dados – SciKitLearn

2.5. Análise e visualização de dados – Pandas e Matplotlib

2.6 Deep Learning e Redes Neurais – PyTorch, Keras, TensorFlow

2.7 Análise e modelagem de séries temporais estilo “plug n play” – SysIdentPyRECOMENDADO (descubra o porque no site da biblioteca =])

2.8 Análises estatísticas de mercados financeiros nacionais e internacionais (ações, Forex, criptomoedas, índices/ETFs, …) – API Python MT5

2.9 Aplicações em biomedicina como classificação de estado dos olhos por meio de EEG – Link aqui

Bacana, não é mesmo? E não pára por aí… este universo te levará até onde for a sua criatividade, e como sabemos, não existe um limite bem definido para esta.

3- PORQUE VOCÊ DEVERIA CONSIDERAR PYTHON COMO SEU PRIMEIRO (OU PRÓXIMO) AMBIENTE DE PROGRAMAÇÃO

Python é uma linguagem de programação de alto nível, projetada com o propósito de priorizar a legibilidade do código e facilidade de uso. Portanto, pela concepção da mesma, é um bom ponto de partida para quem ainda não tem nenhum conhecimento na área (veja o “The Zen of Python” no CONTEÚDO ADICIONAL deste post).
 
Apesar de seu foco não ser em velocidade, o que ele oferece supre a grande maioria das aplicações para um usuário médio. Caso você precise de mais recursos em termos de velocidade, você pode verificar ferramentas como CuPy, Numba, Multithreading e Multiprocessing que permitem a execução de programas ali desenvolvidos com um desempenho considerável, seja por processamento paralelo ou utilizando o processamento via GPU.
 
Algumas vantagens que vejo nesta linguagem:
 
i) Desenvolvimento comunitário e aberto da linguagem – você não paga nada para usar, inclusive a nível comercial;
ii) Ampla gama de bibliotecas disponibilizadas gratuitamente;
iii) Facilidade de utilização da linguagem, inclusive para aplicações mais avançadas;
iv) Comunidade muito ativa, o que faz com que problemas cotidianos sejam resolvidos rapidamente;
v) Portabilidade e possibilidade de execução do código em diferentes sistemas.
 
Se você ainda não conhece, recomendo que dê uma olhada no Anaconda (e no editor Spyder – já integrado com este pacote). É um excelente ponto de partida para quem deseja programar em Python.
 
E, para finalizar, deixo uma imagem que ilustra o interesse da comunidade na linguagem, bem como seu crescimento de 400% em buscas ao longo de cerca de dez anos (fonte: https://stackoverflow.blog/2021/07/14/getting-started-with-python)
 
                      
 
 
É isto! Agradeço pelo tempo que dedicou à esta leitura, e espero que a mesma tenha lhe sido proveitosa!

Programe-se: tome decisões objetivas e racionais. E seja feliz!
 
Um abraço,
 
Samir.

CONTEÚDO ADICIONAL

Músicas para ouvir enquanto se lê o artigo:

 

  • Travelers of Time – Angra
  • Emerald Sword – Rhapsody of Fire
  • Mirror of Delusion e também Bonfire of Vanities – Edu Falaschi
  • Streets of Florence  – Edu Falaschi

Livros e textos que inspiraram o artigo:

  • The Zen of Python – Execute import this em qualquer compilador online (basta digitar e clicar em “Run”)
  • Data Science from Scratch: Joel Grus

Indicação de jogo relacionado ao tema

  • Final Fantasy X – Para quem não esquece a cidade que nunca dorme: Zanarkand!

Filmes relacionados ao artigo

  • O Jogo da imitação
  • O dilema das redes
  • Matrix (novamente aparecendo por aqui – todos eles!)

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *