DEV Community

Cover image for Primeiras Impressões: Python
Alberto Silva
Alberto Silva

Posted on

Primeiras Impressões: Python

Introdução
Todo desenvolvedor começa em algum lugar. Antes de conhecer frameworks, bancos de dados, APIs ou arquiteturas de software, existe aquele primeiro contato com uma linguagem que transforma conceitos abstratos em algo que pode realmente ser executado por um computador. No meu caso, essa linguagem foi o Python.

Minha jornada com programação começou durante o primeiro período da graduação em Ciência da Computação. Como primeira linguagem de programação, Python acabou tendo um papel muito importante na construção da minha base lógica e na forma como passei a enxergar problemas que antes pareciam completamente distantes da tecnologia.

O primeiro ambiente que utilizei foi o Programiz, uma plataforma simples que permite escrever e executar códigos diretamente no navegador. Para quem está começando, esse tipo de ferramenta é muito útil porque reduz a quantidade de obstáculos técnicos entre a ideia e o resultado. Eu podia escrever uma instrução, executar e observar imediatamente o que acontecia.

Foi assim que comecei com conceitos fundamentais: declaração e atribuição de variáveis, entrada e saída de dados, operações matemáticas, estruturas condicionais, funções e, posteriormente, estruturas de repetição. Cada novo conteúdo representava uma pequena peça de um quebra-cabeça que, aos poucos, começou a formar uma visão mais ampla sobre programação.

Depois dessa fase inicial, comecei a utilizar o Visual Studio Code, que trouxe uma experiência mais próxima daquela encontrada no desenvolvimento de projetos reais. A mudança parecia simples, mas representou um avanço importante: deixei de apenas experimentar pequenos trechos de código e comecei a pensar na organização de programas completos.

Mais do que aprender a sintaxe do Python, essa jornada começou a me ensinar algo ainda mais importante: programar não significa apenas escrever código. Significa entender um problema, dividi-lo em partes menores, criar uma lógica para resolvê-lo e transformar essa lógica em instruções que uma máquina consiga executar.

Desafio
Um dos principais desafios durante esse primeiro contato foi justamente aprender a pensar de uma maneira diferente.

No início, muitos conceitos pareciam isolados. Uma variável armazenava um valor. Um if tomava uma decisão. Um while repetia alguma instrução. Uma função agrupava determinado comportamento. Porém, compreender cada conceito individualmente era muito diferente de saber combiná-los para construir uma aplicação funcional.

Esse foi um dos pontos em que percebi que programação exige prática. Decorar comandos não era suficiente. Eu precisava entender por que determinada estrutura deveria ser utilizada e como ela se conectava às outras partes do programa.

Outro desafio foi lidar com erros. No começo, um erro no código poderia facilmente gerar frustração. Uma condição escrita de forma incorreta ou uma variável utilizada no lugar errado podia fazer um programa inteiro parar de funcionar. Com o tempo, comecei a compreender que esses erros não eram apenas obstáculos, mas também uma das principais ferramentas de aprendizado.

Foi nesse contexto que desenvolvi um dos meus primeiros projetos mais completos em Python: uma aplicação de terminal chamada Calculadora+.

A proposta era simples. O usuário poderia escolher entre algumas operações matemáticas, como soma, cálculo do dobro e média. A aplicação apresentava um menu, recebia dados, processava as informações, retornava um resultado e perguntava se o usuário desejava continuar utilizando o programa.

Pode parecer um projeto pequeno, especialmente quando comparado a sistemas desenvolvidos profissionalmente, mas, para mim, ele representou um ponto importante da aprendizagem. Pela primeira vez, vários conceitos aprendidos separadamente estavam funcionando juntos dentro de um único programa.

O projeto utilizava funções para separar responsabilidades, estruturas condicionais para determinar qual operação deveria ser executada, entradas do usuário para receber os dados e laços de repetição para validar determinadas escolhas.

A experiência também revelou que escrever um código que funciona e escrever um código bem estruturado são coisas diferentes.

Ao revisar esse projeto atualmente, consigo identificar alguns pontos que poderiam ser melhorados. Por exemplo, algumas validações foram escritas de maneira incorreta devido ao meu entendimento inicial da lógica booleana em Python. A expressão utilizada para verificar se uma opção era válida não produzia exatamente o comportamento esperado. Também utilizei chamadas recursivas para retornar ao menu, quando uma estrutura de repetição seria mais adequada para esse tipo de fluxo.

Esses problemas não diminuem a importância do projeto. Pelo contrário. Eles mostram exatamente o estágio em que eu estava naquele momento e, principalmente, permitem visualizar minha evolução.

Um código antigo pode revelar muito sobre o processo de aprendizagem de um desenvolvedor. Ele mostra não somente aquilo que já sabemos, mas também os conceitos que ainda estavam sendo construídos.

Aprendizado
A principal lição que Python me proporcionou foi entender que programação é uma combinação entre lógica, organização e prática.

Antes de começar a estudar programação, eu imaginava que aprender uma linguagem significava memorizar comandos e regras. Na prática, percebi que a linguagem é apenas uma ferramenta. O verdadeiro desafio está em saber utilizá-la para resolver problemas.

Aprendi, inicialmente, conceitos básicos que formaram minha base: variáveis, tipos de dados, operadores, entrada e saída de informações e estruturas condicionais.

Em seguida, as funções começaram a mudar minha forma de organizar os programas. Percebi que não era necessário concentrar toda a lógica em um único bloco de código. Era possível dividir responsabilidades e criar partes independentes para determinadas tarefas.

No meu projeto Calculadora+, por exemplo, criei funções específicas para as operações matemáticas. A função somar() era responsável pela soma, dobro() pelo cálculo do dobro e media() pela média.

Essa separação parece simples hoje, mas representou uma mudança importante na minha maneira de programar. Comecei a compreender o conceito de organização e reutilização de código.

Também aprendi sobre estruturas de repetição e validação de entrada. Esses conceitos foram fundamentais para perceber que um programa precisa considerar não apenas o caminho ideal, mas também situações em que o usuário fornece informações inesperadas ou inválidas.

Além da parte técnica, outro aprendizado importante foi a importância de testar.

Quando estamos começando, é comum escrever algumas linhas de código, executar uma vez e assumir que tudo está funcionando. Com a prática, percebi que testar significa tentar quebrar o próprio programa. O que acontece quando o usuário escolhe uma opção inválida? E quando insere um número decimal? E quando tenta sair? E quando fornece um valor inesperado?

Essas perguntas ajudam a revelar problemas que não aparecem durante a execução do cenário considerado inicialmente.

A transição do Programiz para o Visual Studio Code também foi importante nesse processo. O ambiente passou a oferecer uma experiência mais próxima de projetos reais e me incentivou a pensar mais sobre arquivos, organização e manutenção do código.

Outro ponto que considero importante foi perceber que aprender programação é um processo contínuo. Mesmo depois de aprender os fundamentos, sempre aparecem novos conceitos, bibliotecas, ferramentas e formas diferentes de resolver um mesmo problema.

Isso mudou minha perspectiva sobre aprendizado. Em vez de esperar saber tudo para começar a desenvolver, passei a entender que desenvolver também é uma maneira de aprender.

Aplicação
Os conhecimentos adquiridos com Python não ficaram restritos às atividades da faculdade.

A lógica de programação construída nesse primeiro contato pode ser aplicada em praticamente qualquer área do desenvolvimento de software. Conceitos como variáveis, condicionais, funções, estruturas de repetição e decomposição de problemas são fundamentos que continuam relevantes independentemente da linguagem utilizada.

Mesmo que, no futuro, eu trabalhe com JavaScript, TypeScript, C#, Java ou outra tecnologia, a capacidade de analisar um problema e transformá-lo em uma sequência lógica de instruções continuará sendo essencial.

Python também possui aplicações extremamente amplas no mercado de tecnologia. A linguagem é utilizada em desenvolvimento de software, automação, análise de dados, inteligência artificial, ciência de dados, testes e diversas outras áreas.

Isso torna o conhecimento adquirido ainda mais interessante para minha formação. O aprendizado não representa apenas uma disciplina concluída no primeiro período, mas a construção de uma base que pode acompanhar diferentes etapas da carreira.

O próprio projeto Calculadora+ poderia ser expandido de diversas maneiras. Seria possível melhorar a validação das entradas, adicionar novas operações, criar um histórico de cálculos, reorganizar o fluxo do menu e até transformar a aplicação em uma interface gráfica ou em uma aplicação web.

Esse tipo de possibilidade mostra algo que considero importante na programação: quase todo projeto simples pode se transformar em uma oportunidade de aprendizado.

Um programa de calculadora não precisa ser comercialmente relevante para ter valor educacional. Seu valor está nos problemas que ele permite explorar.

Ao implementar uma funcionalidade simples, podemos estudar estruturas de dados. Ao precisar validar uma entrada, podemos estudar tratamento de exceções. Ao querer armazenar resultados, podemos aprender sobre arquivos ou bancos de dados. Ao transformar o programa em uma aplicação web, podemos entrar em contato com outras tecnologias.

Dessa forma, um pequeno projeto pode funcionar como ponto de partida para projetos cada vez mais complexos.

Reflexão
Quando olho para minha jornada inicial com Python, percebo que o maior resultado não foi simplesmente aprender uma linguagem de programação.

Python foi a primeira ferramenta que me permitiu enxergar programação de forma prática. Foi através dela que conceitos inicialmente teóricos passaram a fazer sentido quando colocados em execução.

O primeiro código funcionando, o primeiro erro, a primeira função criada e o primeiro programa mais estruturado fizeram parte de um processo que continua acontecendo.

Também aprendi que evolução na programação não significa escrever códigos perfeitos desde o início. Significa conseguir olhar para um código antigo, identificar problemas, entender por que eles aconteceram e saber como faria diferente hoje.

O projeto Calculadora+ representa exatamente isso para mim.

Ele não é o projeto mais complexo que já desenvolvi e certamente possui pontos que hoje eu faria de outra maneira. Porém, ele representa um momento importante da minha formação: o momento em que deixei de apenas aprender comandos e comecei a construir algo utilizando aquilo que havia aprendido.

A partir dessa experiência, passei a enxergar o desenvolvimento como um processo de construção contínua. Cada projeto apresenta novos problemas. Cada problema exige uma nova pesquisa. Cada erro pode revelar uma lacuna de conhecimento. E cada solução encontrada contribui para formar uma base mais sólida.

Como estudante de Ciência da Computação e alguém que pretende seguir carreira como desenvolvedor, considero essa primeira experiência especialmente importante. Ela mostrou que ainda existe muito para aprender, mas também mostrou que é possível começar com problemas simples e evoluir gradualmente para desafios maiores.

Minha jornada com Python está apenas começando. Ainda existem muitos recursos da linguagem que não conheço, novas tecnologias para estudar e diferentes áreas da programação que quero explorar. Porém, a base construída nesse primeiro período já representa um ponto de partida importante para os próximos passos da minha formação.

No fim, aprender Python não foi apenas aprender print, if, while ou criar funções.

Foi aprender a transformar uma ideia em lógica, transformar lógica em código e transformar código em uma solução.

E talvez essa seja uma das maiores mudanças que acontecem quando começamos a programar: passamos a olhar para problemas não apenas perguntando “como resolver?”, mas também “como posso transformar essa solução em um sistema que outra pessoa possa utilizar?”

Esse é o tipo de pensamento que pretendo levar para os próximos projetos, para minha formação acadêmica e, principalmente, para minha carreira como desenvolvedor.

Top comments (0)