image

Accede a bootcamps ilimitados y a más de 650 cursos para siempre

60
%OFF
Article image
Fernanda Araujo
Fernanda Araujo18/06/2025 05:44
Compartir
WEX - End to End EngineeringRecomendado para tiWEX - End to End Engineering

Paradigmas de Linguagens de Programação em Python: Dominando programação (Part. 04)

  • #Python

Antes de escrever código, aprenda como os dados, os sinais e o processamento trabalham dentro da máquina.

Você já parou pra pensar o que acontece por trás do print("Hello, world!")?

Não só no sentido de o que aparece na tela, mas como os dados são armazenados, como as instruções são executadas, como a informação sai do seu teclado e chega até a memória do processador?

Neste artigo, vamos explorar algo como uma "alfabetização computacional". Isso significa entender como a linguagem Python interage com os fundamentos da computação — bits, bytes, lógica, memória, redes e arquitetura. É o tipo de conhecimento que transforma um programador iniciante em um pensador computacional.

🌐 Redes de Computadores: Como tudo está conectado

Imagine o seguinte: você está estudando Python e, de repente, quer instalar uma biblioteca com pip. Isso parece banal, mas por trás existe um mundo de comunicação entre computadores.

  • A Internet é uma rede de redes. Ela conecta milhões de dispositivos no planeta.
  • Cada dispositivo na rede tem um endereço IP que funciona como seu “endereço residencial digital”.
  • Quando você acessa pypi.org, o seu computador envia uma requisição via protocolo HTTP para o servidor remoto.
  • Roteadores e switches cuidam de transmitir esses dados de forma rápida, fragmentada e eficiente.

💡 Python na prática:

Você pode usar bibliotecas como requests para simular esse tipo de requisição:

python

import requests
response = requests.get("https://api.github.com")
print(response.status_code)

🔢 Bits, Bytes e Bases Numéricas: A linguagem do computador

Tudo no computador — textos, músicas, imagens — é convertido para sequências de bits (0s e 1s). Um bit representa uma decisão: ligado (1) ou desligado (0). Oito bits formam um byte, que já pode representar caracteres ou pequenos números.

Múltiplos de byte:

  • 1 KB = 1024 bytes
  • 1 MB = 1024 KB
  • 1 GB = 1024 MB

🔣 Sistemas de numeração

O ser humano usa base 10 (decimal), mas o computador usa base 2 (binária). Python lida com todas essas bases:

python

print(bin(10))   # 0b1010 (binário)
print(oct(10))   # 0o12 (octal)
print(hex(10))   # 0xa (hexadecimal)

E com booleanos?

Python trata True como 1 e False como 0. Isso tem implicações lógicas e aritméticas:

python

print(True + True + False)  # 2

🔤 Representação de Dados: Muito além dos números

Você sabia que até emojis são números para o computador?

Tudo é representação binária. Um caractere como A é representado por 65 na tabela ASCII. Já a letra Ç não existe no ASCII, mas sim no UNICODE, que é uma tabela muito mais ampla.

image

Esse entendimento é essencial para quando você precisar trabalhar com arquivos binários, manipular imagens com pixels ou criar estruturas otimizadas.

⚙️ Lógica Digital e Álgebra Booleana

Antes de existir o Python, existia a lógica booleana, a base de todos os circuitos digitais. Conhecer isso ajuda você a criar expressões lógicas eficientes e tomar melhores decisões no seu código.

Portas e operadores lógicos:

  • ANDand
  • ORor
  • NOTnot
python

a = True
b = False
print(a and b)  # False
print(a or b)   # True
print(not b)    # True

Tabela-verdade simples:

image

🚀 Com o crescimento da demanda por desempenho, os computadores evoluíram para arquiteturas com múltiplos núcleos e processadores. Isso significa que hoje conseguimos executar várias tarefas ao mesmo tempo — o que chamamos de processamento paralelo.

Vamos por partes:

  • Pipeline
  • Imagine uma fábrica em que cada estação faz uma parte do trabalho. Enquanto uma estação monta uma peça, a próxima já prepara a seguinte. O pipeline é isso aplicado ao processador: uma instrução entra, e cada etapa do hardware faz um pedaço dela. Isso aumenta a eficiência, mesmo com uma única tarefa.
  • Superpipeline
  • É como ter ainda mais estações nesse processo, com estágios menores e mais rápidos, otimizando o tempo de execução geral. Funciona como uma linha de produção altamente segmentada.
  • Superescalar
  • Agora imagine várias linhas de produção rodando em paralelo. Essa é a ideia do superescalar: o processador busca e executa múltiplas instruções de uma só vez, em diferentes unidades.
  • Hyper-threading
  • Uma tecnologia que permite simular múltiplos "fios de execução" (threads) dentro de um único núcleo físico. Isso melhora o aproveitamento dos recursos da CPU, como se ela estivesse “ocupada o tempo todo”.
  • Multithreading vs. Multiprocessing
  • Multithreading: várias threads (tarefas leves) compartilham o mesmo processo. Em Python, o GIL pode limitar o uso real de múltiplas threads em CPUs.
  • Multiprocessing: cria processos independentes que realmente rodam em paralelo. É ideal para cargas pesadas.
  • Memória compartilhada vs. distribuída
  • A forma como os núcleos acessam a memória influencia o desempenho. Se todos acessam a mesma (memória compartilhada), a comunicação é rápida, mas pode gerar conflito. Já na distribuída, cada núcleo tem sua própria memória, o que reduz conflitos, mas exige mecanismos de sincronização.
python

from multiprocessing import Process

def tarefa():
  print("Executando em paralelo")

p = Process(target=tarefa)
p.start()
p.join()

Saber disso te ajuda a escolher o algoritmo certo e o estilo de programação adequado, especialmente em apps com muitos dados.

🏗️ Arquitetura CISC x RISC

A arquitetura do processador define como as instruções são executadas.

CISC (Complex Instruction Set Computer)

  • Instruções complexas, poucas linhas de código
  • Ex: Intel x86

RISC (Reduced Instruction Set Computer)

  • Instruções simples, muito mais rápidas
  • Ex: ARM (usado em celulares)

Python, por ser interpretado, é menos sensível a essas diferenças. Mas conhecer isso ajuda a escrever código mais leve e adaptado ao ambiente em que será executado.

🔚 Conclusão

Programar é conversar com a máquina. Mas essa conversa só flui quando você entende a linguagem dela: bits, lógica, rede, instrução.

Ao dominar esses conceitos, você não apenas escreve código — você pensa como um computador. Isso te prepara para criar funções melhores, entender bugs mais rápido, otimizar seu código e crescer como desenvolvedor Python.

Vamos pro próximo artigo sobre Paradigmas de Linguagens de Programação em Python...

👉 No próximo artigo, vamos explorar Python Estruturado.

image

Compartir
Recomendado para ti
Suzano - Python Developer
BairesDev - Machine Learning Practitioner
Santander - Cibersegurança #2
Comentarios (0)
Recomendado para tiWEX - End to End Engineering