O que exatamente você pode fazer com Python? Aqui estão os três principais aplicativos do Python.

Se você está pensando em aprender Python - ou se começou a aprendê-lo recentemente - você pode estar se perguntando:

“Para que exatamente posso usar Python?”

Bem, essa é uma pergunta difícil de responder, porque existem tantos aplicativos para Python.

Mas, com o tempo, observei que existem três aplicativos populares principais para Python:

  • Desenvolvimento web
  • Ciência de dados - incluindo aprendizado de máquina, análise de dados e visualização de dados
  • Scripting

Vamos falar sobre cada um deles.

Desenvolvimento web

Estruturas da Web baseadas em Python, como Django e Flask , recentemente se tornaram muito populares para o desenvolvimento da web.

Essas estruturas da web ajudam a criar código do lado do servidor (código de back-end) em Python. Esse é o código executado no seu servidor, ao contrário dos dispositivos e navegadores dos usuários (código de front-end). Se você não está familiarizado com a diferença entre o código de back-end e o código de front-end, consulte minha nota de rodapé abaixo.

Mas espere, por que preciso de um framework web?

Isso porque uma estrutura da web torna mais fácil construir uma lógica de back-end comum. Isso inclui mapear URLs diferentes para partes do código Python, lidar com bancos de dados e gerar arquivos HTML que os usuários veem em seus navegadores.

Qual estrutura da web Python devo usar?

Django e Flask são dois dos frameworks da web Python mais populares. Eu recomendo usar um deles se você estiver apenas começando.

Qual é a diferença entre Django e Flask?

Há um excelente artigo sobre este tópico escrito por Gareth Dwyer, então deixe-me citá-lo aqui:

te>

Principais contrastes:

  • O frasco oferece simplicidade, flexibilidade e controle refinado. Não tem opinião (permite que você decida como deseja implementar as coisas).
  • Django oferece uma experiência completa: você obtém um painel de administração, interfaces de banco de dados, um ORM [mapeamento objeto-relacional] e estrutura de diretório para seus aplicativos e projetos prontos para uso.

Você provavelmente deve escolher:

  • Flask, se você estiver focado na experiência e nas oportunidades de aprendizado, ou se quiser ter mais controle sobre quais componentes usar (como quais bancos de dados deseja usar e como deseja interagir com eles).
  • Django, se você está focado no produto final. Especialmente se você estiver trabalhando em um aplicativo simples, como um site de notícias, uma loja virtual ou um blog, e quiser que sempre haja uma maneira única e óbvia de fazer as coisas.

te>

Em outras palavras, se você é um iniciante, o Flask é provavelmente uma escolha melhor porque tem menos componentes para lidar. Além disso, o Flask é uma escolha melhor se você quiser mais personalização.

Por outro lado, se você está procurando construir algo direto, o Django provavelmente permitirá que você chegue lá mais rápido.

Agora, se você está procurando aprender Django, eu recomendo o livro chamado Django para Iniciantes. Você pode encontrá-lo aqui.

Você também pode encontrar os capítulos de amostra grátis desse livro aqui.

Ok, vamos para o próximo tópico!

Ciência de dados - incluindo aprendizado de máquina, análise de dados e visualização de dados

Em primeiro lugar, vamos revisar o que é aprendizado de máquina .

Acho que a melhor maneira de explicar o que é o aprendizado de máquina seria dando a você um exemplo simples.

Digamos que você queira desenvolver um programa que detecte automaticamente o que está em uma imagem.

Então, dada a figura abaixo (Figura 1), você quer que seu programa reconheça que é um cachorro.

Dado este outro abaixo (Figura 2), você quer que seu programa reconheça que é uma mesa.

Você pode dizer, bem, posso apenas escrever um código para fazer isso. Por exemplo, talvez se houver muitos pixels castanhos claros na imagem, então podemos dizer que é um cachorro.

Ou talvez você possa descobrir como detectar bordas em uma imagem. Então, você pode dizer, se houver muitas bordas retas, então é uma mesa.

No entanto, esse tipo de abordagem fica complicado rapidamente. E se houver um cachorro branco na foto sem cabelo castanho? E se a imagem mostrar apenas as partes redondas da mesa?

É aqui que entra o aprendizado de máquina.

O aprendizado de máquina geralmente implementa um algoritmo que detecta automaticamente um padrão na entrada fornecida.

Você pode fornecer, digamos, 1.000 fotos de um cachorro e 1.000 fotos de uma mesa para um algoritmo de aprendizado de máquina. Então, ele aprenderá a diferença entre um cachorro e uma mesa. Quando você dá a ele uma nova imagem de um cachorro ou de uma mesa, ele será capaz de reconhecer qual é.

Acho que é um pouco semelhante a como um bebê aprende coisas novas. Como um bebê aprende que uma coisa parece um cachorro e outra uma mesa? Provavelmente por um monte de exemplos.

Você provavelmente não diz explicitamente a um bebê: “Se algo é peludo e tem cabelo castanho claro, provavelmente é um cachorro”.

Você provavelmente diria: “Isso é um cachorro. Este também é um cachorro. E esta é uma mesa. Essa também é uma mesa. ”

Os algoritmos de aprendizado de máquina funcionam da mesma maneira.

Você pode aplicar a mesma ideia a:

  • sistemas de recomendação (pense no YouTube, Amazon e Netflix)
  • reconhecimento de rosto
  • reconhecimento de voz

entre outras aplicações.

Os algoritmos de aprendizado de máquina populares sobre os quais você deve ter ouvido falar incluem:

  • Redes neurais
  • Aprendizagem profunda
  • Máquinas de vetor de suporte
  • Floresta aleatória

Você pode usar qualquer um dos algoritmos acima para resolver o problema de rotulagem de imagens que expliquei anteriormente.

Python para aprendizado de máquina

Existem bibliotecas e estruturas de aprendizado de máquina populares para Python.

Dois dos mais populares são scikit-learn e TensorFlow .

  • O scikit-learn vem com alguns dos algoritmos de aprendizado de máquina mais populares integrados. Mencionei alguns deles acima.
  • O TensorFlow é mais uma biblioteca de baixo nível que permite criar algoritmos de aprendizado de máquina personalizados.

Se você está apenas começando com um projeto de aprendizado de máquina, recomendo que comece com o scikit-learn. Se você começar a ter problemas de eficiência, eu começaria a pesquisar o TensorFlow.

Como devo aprender o aprendizado de máquina?

Para aprender os fundamentos do aprendizado de máquina, eu recomendaria o curso de aprendizado de máquina de Stanford ou Caltech.

Observe que você precisa de conhecimentos básicos de cálculo e álgebra linear para compreender alguns dos materiais desses cursos.

Então, eu praticaria o que você aprendeu em um desses cursos com Kaggle. É um site onde as pessoas competem para criar o melhor algoritmo de aprendizado de máquina para um determinado problema. Eles também têm bons tutoriais para iniciantes.

E quanto à análise e visualização de dados?

Para ajudá-lo a entender como eles podem ser, deixe-me dar um exemplo simples aqui.

Digamos que você trabalhe para uma empresa que vende alguns produtos online.

Então, como analista de dados, você pode desenhar um gráfico de barras como este.

A partir deste gráfico, podemos dizer que os homens compraram mais de 400 unidades deste produto e as mulheres compraram cerca de 350 unidades deste produto neste domingo.

Como analista de dados, você pode apresentar algumas explicações possíveis para essa diferença.

Uma possível explicação óbvia é que este produto é mais popular entre os homens do que entre as mulheres. Outra possível explicação pode ser que o tamanho da amostra é muito pequeno e essa diferença foi causada apenas pelo acaso. E ainda outra possível explicação pode ser que os homens tendem a comprar este produto mais apenas no domingo por algum motivo.

Para entender qual dessas explicações é a correta, você pode desenhar outro gráfico como este.

Em vez de mostrar os dados apenas para o domingo, estamos olhando para os dados de uma semana inteira. Como você pode ver, neste gráfico, podemos ver que essa diferença é bastante consistente em dias diferentes.

A partir dessa pequena análise, você pode concluir que a explicação mais convincente para essa diferença é que esse produto é simplesmente mais popular entre os homens do que entre as mulheres.

Por outro lado, e se você vir um gráfico como este?

Então, o que explica a diferença no domingo?

Você pode dizer que, por algum motivo, talvez os homens tendam a comprar mais deste produto apenas no domingo. Ou talvez tenha sido apenas uma coincidência que os homens compraram mais no domingo.

Portanto, este é um exemplo simplificado de como a análise de dados pode ser no mundo real.

O trabalho de análise de dados que fiz quando estava trabalhando no Google e na Microsoft era muito semelhante a este exemplo - apenas mais complexo. Na verdade, usei Python no Google para esse tipo de análise, enquanto usei JavaScript na Microsoft.

Usei SQL em ambas as empresas para extrair dados de nossos bancos de dados. Então, eu usaria Python e Matplotlib (no Google) ou JavaScript e D3.js (na Microsoft) para visualizar e analisar esses dados.

Análise / visualização de dados com Python

Uma das bibliotecas mais populares para visualização de dados é Matplotlib.

É uma boa biblioteca para começar porque:

  • É fácil começar com
  • Algumas outras bibliotecas, como seaborn, são baseadas nele. Portanto, aprender Matplotlib o ajudará a aprender essas outras bibliotecas mais tarde.

Como devo aprender a análise / visualização de dados com Python?

Você deve primeiro aprender os fundamentos da análise e visualização de dados. Quando procurei bons recursos para isso online, não consegui encontrar nenhum. Então, acabei fazendo um vídeo no YouTube sobre este assunto:

Também acabei fazendo um curso completo sobre esse tópico no Pluralsight, que você pode fazer gratuitamente inscrevendo-se no teste gratuito de 10 dias.

Eu recomendaria os dois.

Depois de aprender os fundamentos da análise e visualização de dados, aprender os fundamentos das estatísticas de sites como Coursera e Khan Academy também será útil.

Scripting

O que é script?

Scripting geralmente se refere a escrever pequenos programas projetados para automatizar tarefas simples.

Então, deixe-me dar um exemplo de minha experiência pessoal aqui.

Eu trabalhava em uma pequena startup no Japão, onde tínhamos um sistema de suporte por e-mail. Era um sistema para respondermos às perguntas que os clientes nos enviavam por e-mail.

Quando eu estava trabalhando lá, tinha a tarefa de contar a quantidade de e-mails contendo determinadas palavras-chave para que pudéssemos analisar os e-mails que recebíamos.

Poderíamos ter feito isso manualmente, mas em vez disso, escrevi um programa / script simples para automatizar essa tarefa.

Na verdade, usamos Ruby para isso naquela época, mas Python também é uma boa linguagem para esse tipo de tarefa. Python é adequado para esse tipo de tarefa principalmente porque tem sintaxe relativamente simples e é fácil de escrever. Também é rápido escrever algo pequeno com ele e testá-lo.

E quanto aos aplicativos incorporados?

Não sou um especialista em aplicativos embarcados, mas sei que Python funciona com Rasberry Pi. Parece um aplicativo popular entre os entusiastas de hardware.

Que tal jogar?

Você poderia usar a biblioteca chamada PyGame para desenvolver jogos, mas não é o mecanismo de jogos mais popular que existe. Você poderia usá-lo para construir um projeto de hobby, mas eu pessoalmente não o escolheria se você leva a sério o desenvolvimento de jogos.

Em vez disso, eu recomendaria começar a usar o Unity com C #, que é um dos motores de jogos mais populares. Ele permite que você crie um jogo para várias plataformas, incluindo Mac, Windows, iOS e Android.

E quanto aos aplicativos de desktop?

Você poderia fazer um com Python usando Tkinter, mas também não parece ser a escolha mais popular.

Em vez disso, parece que linguagens como Java, C # e C ++ são mais populares para isso.

Recentemente, algumas empresas começaram a usar JavaScript para criar aplicativos de desktop também.

Por exemplo, o aplicativo de desktop do Slack foi desenvolvido com algo chamado Electron. Ele permite que você crie aplicativos de desktop com JavaScript.

Pessoalmente, se eu estivesse criando um aplicativo de desktop, escolheria uma opção de JavaScript. Ele permite que você reutilize parte do código de uma versão da web, se tiver.

No entanto, também não sou um especialista em aplicativos de desktop, então, por favor, deixe-me saber em um comentário se você discordar ou concordar comigo sobre isso.

Python 3 ou Python 2?

Eu recomendaria o Python 3, pois é mais moderno e é uma opção mais popular neste momento.

Nota de rodapé: uma observação sobre código de back-end versus código de front-end (apenas no caso de você não estar familiarizado com os termos):

Digamos que você queira fazer algo como o Instagram.

Em seguida, você precisa criar um código de front-end para cada tipo de dispositivo que deseja oferecer suporte.

Você pode usar, por exemplo:

  • Swift para iOS
  • Java para Android
  • JavaScript para navegadores da web

Cada conjunto de código será executado em cada tipo de dispositivo / navegador. Este será o conjunto de código que determina como será o layout do aplicativo, como os botões devem ficar quando você clica neles, etc.

No entanto, você ainda precisará armazenar informações e fotos dos usuários. Você vai querer armazená-los em seu servidor e não apenas nos dispositivos de seus usuários, para que os seguidores de cada um possam ver suas fotos.

É aqui que entra o código de back-end / código do lado do servidor. Você precisará escrever algum código de back-end para fazer coisas como:

  • Acompanhe quem está seguindo quem
  • Comprima as fotos para que não ocupem muito espaço de armazenamento
  • Recomende fotos e novas contas para cada usuário no recurso de descoberta

Portanto, essa é a diferença entre o código de back-end e o código de front-end.

A propósito, Python não é a única boa escolha para escrever código de backend / servidor. Existem muitas outras opções populares, incluindo Node.js, que é baseado em JavaScript.

Gostou deste artigo? Então, você também pode gostar do meu canal no YouTube.

Tenho um canal educacional de programação no YouTube chamado CS Dojo com mais de 440.000 assinantes, onde produzo mais conteúdo como este artigo.

Por exemplo, você pode gostar destes vídeos:

De qualquer forma, muito obrigado por ler meu artigo!