{"id":3101,"date":"2020-10-12T13:22:44","date_gmt":"2020-10-12T16:22:44","guid":{"rendered":"https:\/\/www.itexto.com.br\/devkico\/?p=3101"},"modified":"2020-10-12T13:23:49","modified_gmt":"2020-10-12T16:23:49","slug":"python-meu-plano-de-estudos-para-imersao","status":"publish","type":"post","link":"https:\/\/devkico.itexto.com.br\/?p=3101","title":{"rendered":"Python &#8211; meu plano de estudos para imers\u00e3o"},"content":{"rendered":"\n<p>Meu <a href=\"https:\/\/www.itexto.com.br\/devkico\/?p=3093\" class=\"rank-math-link\">\u00faltimo post<\/a> aqui foi sobre como planejo meus estudos. Este aqui j\u00e1 \u00e9 mostrando a aplica\u00e7\u00e3o de todos aqueles conceitos na pr\u00e1tica. E como brega tamb\u00e9m exponho aqui as fontes e ferramentas que tenho usado, os resultados obtidos e minhas maiores dificuldades.<\/p>\n\n\n\n<p>Este post ainda n\u00e3o \u00e9 um review sobre a linguagem, mas sim meu plano de estudos que, acredito, pode ser \u00fatil a outras pessoas que estejam em situa\u00e7\u00e3o similar.<\/p>\n\n\n\n<p>(mas j\u00e1 tenho um review engatilhado, aguardem)<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Motiva\u00e7\u00e3o e projeto pr\u00e1tico<\/h2>\n\n\n\n<p>Meu objetivo final desta imers\u00e3o em Python \u00e9 aprender <a href=\"https:\/\/tensorflow.org\" class=\"rank-math-link\">TensorFlow<\/a>. J\u00e1 tive algumas experi\u00eancias bem tangenciais com a tecnologia (como gestor, n\u00e3o como programador) e gostei muito do que vi, mas \u00e9 necess\u00e1rio que eu ponha mais a m\u00e3o na massa e tenha um conhecimento <strong>profundo<\/strong> da ferramenta. Do conceitual j\u00e1 conhe\u00e7o alguma coisa, mas n\u00e3o h\u00e1 como fugir do Python que \u00e9 a linguagem <em>de facto<\/em> aqui.<\/p>\n\n\n\n<p>Sendo assim Python \u00e9 <strong>um meio para chegar ao TensorFlow<\/strong>, e n\u00e3o um fim em si. Isto tr\u00e1s uma s\u00e9rie de consequ\u00eancias para este plano de estudo:<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"576\" height=\"232\" src=\"https:\/\/www.itexto.com.br\/devkico\/wp-content\/uploads\/2020\/10\/ponte_tensorflow.png\" alt=\"\" class=\"wp-image-3104\" srcset=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2020\/10\/ponte_tensorflow.png 576w, https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2020\/10\/ponte_tensorflow-300x121.png 300w\" sizes=\"(max-width: 576px) 100vw, 576px\" \/><\/figure><\/div>\n\n\n\n<p>Isto quer dizer que sei o meu <strong>ponto de parada<\/strong> e o que devo aprender:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><strong>A cultura do Python<\/strong> &#8211; minha grande dificuldade, dado que Java\/Groovy ainda respondem a 80% do que fa\u00e7o no dia a dia me deixam com uma vis\u00e3o <strong>bastante enviesada<\/strong>. Entram aqui quest\u00f5es importantes: quais padr\u00f5es de codifica\u00e7\u00e3o devo seguir? O que resolve esta linguagem? O que ganho com ela? Qual o <strong>idioma<\/strong> falado por quem programa em Python?<\/li><li><strong>O essencial da linguagem<\/strong> &#8211; como \u00e9 a sua sintaxe (aquele lance estranho pra mim da indenta\u00e7\u00e3o do c\u00f3digo), como o c\u00f3digo \u00e9 organizado, quais as estruturas de controle e de dados? Como testo meu c\u00f3digo?<\/li><li><strong>O ferramental b\u00e1sico<\/strong> e sua rela\u00e7\u00e3o com o que j\u00e1 conhe\u00e7o. Exemplos: como gerencio depend\u00eancias? Existe alguma IDE melhor que as outras? Onde encontro documenta\u00e7\u00e3o de qualidade? Como implanto meu c\u00f3digo? Como escrevo meus testes?<\/li><li><strong>Bibliotecas e frameworks essenciais<\/strong> &#8211; como me conecto a um banco de dados relacional? Como interajo com APIs REST\/SOAP, etc? Como lido com o sistema de arquivos? Como interajo com outros servi\u00e7os usando outros protocolos de rede?<\/li><li>Dado que Python 2 \u00e9 hist\u00f3ria, o foco ser\u00e1 <strong>Python 3<\/strong>.<\/li><\/ul>\n\n\n\n<p>Resumindo: meu objetivo n\u00e3o \u00e9 me tornar um expert em Python: \u00e9 saber o b\u00e1sico para que possa caminhar bem no meu aprendizado de Tensorflow. Precisava ent\u00e3o de um projeto pr\u00e1tico pra isto, que foi o&#8230;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Projeto pr\u00e1tico &#8211; o Feed Hunter do \/dev\/All<\/h3>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"225\" height=\"82\" src=\"https:\/\/www.itexto.com.br\/devkico\/wp-content\/uploads\/2020\/10\/image.png\" alt=\"\" class=\"wp-image-3105\"\/><\/figure><\/div>\n\n\n\n<p>Para quem n\u00e3o conhece, o <a href=\"https:\/\/devall.com.br\" class=\"rank-math-link\">\/dev\/All<\/a> \u00e9 um projeto mantido pela <a href=\"https:\/\/itexto.com.br\" class=\"rank-math-link\">itexto<\/a> composto por tr\u00eas componentes:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Um <a href=\"https:\/\/devall.com.br\" class=\"rank-math-link\">agregador de blogs<\/a> relacionados a desenvolvimento de software e tecnologia.<\/li><li>Comunidades de discuss\u00e3o sob a forma da <a href=\"https:\/\/taverna.devall.com.br\" class=\"rank-math-link\">Taverna<\/a> e tamb\u00e9m nosso <a href=\"https:\/\/discord.gg\/JyXzTcP\" class=\"rank-math-link\">Discord<\/a>.<\/li><li>A <a href=\"https:\/\/revista.devall.com.br\" class=\"rank-math-link\">Revista<\/a> na qual publicamos artigos t\u00e9cnicos mais aprofundados.<\/li><\/ul>\n\n\n\n<p>O agregador do \/dev\/All tem tr\u00eas componentes:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Sua <strong>API<\/strong> (que iremos abrir em breve)<\/li><li>Seu <strong>front-end<\/strong> (que estamos (eu) reescrevendo do zero)<\/li><li>O <strong>Feed Hunter<\/strong>, que \u00e9 o respons\u00e1vel por ler os feeds dos sites cadastrados e disponibiliz\u00e1-los aos visitantes do site.<\/li><\/ul>\n\n\n\n<p>Meu alvo \u00e9 a reescrita do <strong>Feed Hunter<\/strong>. \u00c9 um c\u00f3digo de excelente qualidade, sua \u00faltima manuten\u00e7\u00e3o foi tr\u00eas anos atr\u00e1s e desde ent\u00e3o est\u00e1 em execu\u00e7\u00e3o sem interrup\u00e7\u00f5es (sim, voc\u00ea leu certo: ele n\u00e3o parou nestes \u00faltimos anos). \u00c9 implementado em <a href=\"https:\/\/spring.io\" class=\"rank-math-link\">Spring Boot<\/a> usando <a href=\"https:\/\/camel.apache.org\" class=\"rank-math-link\">Apache Camel<\/a> como base para as suas integra\u00e7\u00f5es.<\/p>\n\n\n\n<p>Se o c\u00f3digo \u00e9 t\u00e3o bom, por que substituir este componente? H\u00e1 algumas raz\u00f5es pra isto. Bom: ap\u00f3s todos estes anos percebo que o Feed Hunter \u00e9 na realidade um canh\u00e3o pra matar formiga.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Mencionei que \u00e9 baseado em Camel, n\u00e9? <strong>H\u00e1 uma \u00fanica rota nele composta por apenas tr\u00eas processadores<\/strong> (obter o RSS do site, parsear este conte\u00fado, persistir e validar no banco de dados).<br>(se o Feed Hunter tiver umas 1000 linhas de c\u00f3digo \u00e9 muito)<\/li><li>H\u00e1 recursos que precisamos incluir neste componente faz tempo: categoriza\u00e7\u00e3o de posts, extra\u00e7\u00e3o de imagens, melhorias na indexa\u00e7\u00e3o de conte\u00fado, remo\u00e7\u00e3o de posts que n\u00e3o est\u00e3o mais dispon\u00edveis e, futuramente, detec\u00e7\u00e3o de alguns padr\u00f5es que dar\u00e3o \u00e0 toda a comunidade brasileira de software um insight muito interessante sobre o que \u00e9 ou n\u00e3o hype (a\u00ed entra o TensorFlow ;) ).<\/li><li>O projeto \u00e9 simples o suficiente para que eu possa atender todos os objetivos que coloquei a mim no in\u00edcio deste post.<\/li><\/ul>\n\n\n\n<p>Resumindo: eu percebi que um <strong>script simples<\/strong> poderia substituir nossa aplica\u00e7\u00e3o Spring Boot \/ Camel com tranquilidade neste momento. Dado que o feriado do dia 12 de outubro estava pensando, por que n\u00e3o uma imers\u00e3o neste projeto?<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Spoiler: deu certo?<\/h3>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/upload.wikimedia.org\/wikipedia\/commons\/3\/35\/%D8%AE%D8%B7%D8%B1_%D8%A7%D8%B3%D9%BE%D9%88%DB%8C%D9%84.png\" alt=\"File:\u062e\u0637\u0631 \u0627\u0633\u067e\u0648\u06cc\u0644.png - Wikimedia Commons\" width=\"347\" height=\"130\"\/><\/figure><\/div>\n\n\n\n<p>Como <strong>resultado final<\/strong> temos todas estas implementa\u00e7\u00f5es (com exce\u00e7\u00e3o da detec\u00e7\u00e3o de padr\u00f5es) implementadas em um <strong>script Python que tem 250 linhas<\/strong> e \u00e9 acionado pelo CRON de hora em hora no servidor. Isto mostra que sim, o plano de estudos funcionou BEM e j\u00e1 posso come\u00e7ar a jornada ao TensorFlow.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Minhas fontes<\/h2>\n\n\n\n<p>Com meu objetivo bem definido parti para a busca das fontes que iria usar. Segue ent\u00e3o aqui um coment\u00e1rio sobre estas.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Fontes prim\u00e1rias<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\">Site oficial &#8211; <a href=\"https:\/\/python.org\" class=\"rank-math-link\">https:\/\/python.org<\/a><\/h4>\n\n\n\n<p>Na se\u00e7\u00e3o de documenta\u00e7\u00e3o do site h\u00e1 um link chamado &#8220;<a href=\"https:\/\/wiki.python.org\/moin\/BeginnersGuide\" class=\"rank-math-link\">Beginners Guide<\/a>&#8220;. Dado que minha <strong>vis\u00e3o enviesada<\/strong> \u00e9 um desafio, parti deste ponto. <strong>N\u00e3o foi uma boa escolha<\/strong>. Isto por que no conte\u00fado deste link voc\u00ea encontrar\u00e1 duas op\u00e7\u00f5es:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Para n\u00e3o programadores &#8211; <a href=\"https:\/\/wiki.python.org\/moin\/BeginnersGuide\/NonProgrammers\" class=\"rank-math-link\">https:\/\/wiki.python.org\/moin\/BeginnersGuide\/NonProgrammers<\/a><\/li><li>Para programadores &#8211; <a href=\"https:\/\/wiki.python.org\/moin\/BeginnersGuide\/Programmers\" class=\"rank-math-link\">https:\/\/wiki.python.org\/moin\/BeginnersGuide\/Programmers<\/a><\/li><\/ul>\n\n\n\n<p>O problema \u00e9 que nas duas fontes voc\u00ea enfrentar\u00e1 o seguinte problema: elas te levam para listas de recursos: outros sites contendo tutoriais que voc\u00ea pode usar para se dar os primeiros passos na linguagem. Qual o problema de uma escolha te dar escolhas? Voc\u00ea precisa avaliar as escolhas, e isto requer tempo e, n\u00e3o raro, sorte tamb\u00e9m.<\/p>\n\n\n\n<p>Mas isto n\u00e3o \u00e9 t\u00e3o ruim assim: pois pelo menos estas listas v\u00e3o te dar uma base m\u00ednima para que voc\u00ea possa minerar uma bibliografia interessante. A quest\u00e3o \u00e9: <strong>voc\u00ea, como eu, teve a sorte de ter sido treinado para realizar levantamentos bibliogr\u00e1ficos?<\/strong> <\/p>\n\n\n\n<p><strong>Nota sobre tutoriais interativos &#8211; EVITE<\/strong><\/p>\n\n\n\n<p>\u00c9 interessante observar que h\u00e1 diversos links que te levar\u00e3o a tutoriais interativos na Internet, tal como <a href=\"https:\/\/codetheblocks.com\/\" class=\"rank-math-link\">este<\/a>,  e <a href=\"https:\/\/cscircles.cemc.uwaterloo.ca\/\" class=\"rank-math-link\">este<\/a>. A vantagem destes tutoriais \u00e9 que voc\u00ea n\u00e3o precisa ter nada instalado no seu computador. A desvantagem \u00e9 que voc\u00ea n\u00e3o precisa ter nada instalado no seu computador.<\/p>\n\n\n\n<p>O problema \u00e9 que nestes tutoriais voc\u00ea n\u00e3o tem uma vis\u00e3o REAL da coisa. \u00c9 importante voc\u00ea sofrer um pouco pra entender como funciona parte do ferramental que ir\u00e1 usar. Estes tutoriais te mostram um mundo em condi\u00e7\u00f5es ideais de temperatura e press\u00e3o <strong>que n\u00e3o ser\u00e1 a sua realidade<\/strong>. <\/p>\n\n\n\n<p><strong>Site oficial como refer\u00eancia<\/strong> (n\u00e3o como guia)<\/p>\n\n\n\n<p><strong>\u00c9 excelente<\/strong>. Voc\u00ea encontra descri\u00e7\u00f5es completas sobre todos os m\u00f3dulos da linguagem. Ent\u00e3o fiquei um bom tempo escaneando os principais m\u00f3dulos que precisava (os, sys, json, elementtree, etc).<\/p>\n\n\n\n<p>Por\u00e9m, como um guia para o iniciante, pelas raz\u00f5es que dei acima, n\u00e3o \u00e9 t\u00e3o legal.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">PEPs &#8211; Python Enhancement Proposals &#8211; <a href=\"https:\/\/www.python.org\/dev\/peps\/\" class=\"rank-math-link\">https:\/\/www.python.org\/dev\/peps\/<\/a><\/h4>\n\n\n\n<p>Se voc\u00ea tiver muita paci\u00eancia, as PEPs (que equivalem \u00e0s JSRs do Java) podem ser uma fonte valiosa tamb\u00e9m. Trata-se de propostas de melhoria para a linguagem (seu alvo principal s\u00e3o as pessoas que ir\u00e3o evoluir o Python). Para lidar com meu enviesamento sem sombra de d\u00favidas a mais importante foi a 8, que trata de padr\u00f5es de codifica\u00e7\u00e3o que voc\u00ea deve adotar.<\/p>\n\n\n\n<p>\u00c9 l\u00e1 que voc\u00ea entende que n\u00e3o deve usar tabs, nome de vari\u00e1veis, etc. No caso de outras linguagens, devo confessar, acho purismo. J\u00e1 quando o assunto \u00e9 Python, no qual a formata\u00e7\u00e3o do c\u00f3digo faz parte da sua sintaxe, \u00e9 leitura importante. Leia a <a href=\"https:\/\/www.python.org\/dev\/peps\/pep-0008\/\" class=\"rank-math-link\">PEP 8<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Livros<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Use a Cabe\u00e7a! Python &#8211; Paul Barry<\/h3>\n\n\n\n<p>Dado que a fonte prim\u00e1ria n\u00e3o me atendeu como esperava, parti pra livros. E dois me ajudaram bastante. Se voc\u00ea est\u00e1 come\u00e7ando, como eu, o melhor que encontrei foi o &#8220;Use a Cabe\u00e7a! Python&#8221;, de Paul Barry.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/images-na.ssl-images-amazon.com\/images\/I\/514MgcH17tL._SX352_BO1,204,203,200_.jpg\" alt=\"\" width=\"189\" height=\"267\"\/><figcaption><br><\/figcaption><\/figure><\/div>\n\n\n\n<p>J\u00e1 temos alguns livros da s\u00e9rie e acompanho faz anos. \u00c9 um <strong>excelente<\/strong> tutorial. Atende quase todos os objetivos iniciais que me propus. E mais: ainda apresenta algumas ferramentas importantes, como o venv, por exemplo.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Fluent Python &#8211; Luciano Ramalho<\/h3>\n\n\n\n<p>E como complemento, o livro que <strong>voc\u00ea n\u00e3o deve ter como \u00fanica fonte se estiver iniciando<\/strong>, mas me oferece uma vis\u00e3o bem mais aprofundada da linguagem (e cultura) foi o &#8220;Fluent Python&#8221;, do Luciano Ramalho.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/assets.kogan.com\/images\/shoptheglobe\/STG-61-54642209-AU\/1-b22c9be715-7.jpeg?auto=webp&amp;canvas=753%2C502&amp;fit=bounds&amp;height=502&amp;quality=75&amp;width=753\" alt=\"Fluent Python: Clear, Concise, and Effective Programming - Matt Blatt\" width=\"358\" height=\"238\"\/><\/figure><\/div>\n\n\n\n<p>O Fluent Python j\u00e1 possui tradu\u00e7\u00e3o para o portugu\u00eas, mas minha edi\u00e7\u00e3o \u00e9 a em l\u00edngua inglesa (dado que o autor \u00e9 brasileiro apesar da primeira edi\u00e7\u00e3o ter sido em ingl\u00eas n\u00e3o acredito que haja problemas com a tradu\u00e7\u00e3o). Mas o bacana deste livro \u00e9 que ele vai bem al\u00e9m do tutorial b\u00e1sico (ele N\u00c3O \u00c9 UM TUTORIAL). S\u00e3o expostos diversos aspectos da linguagem que te d\u00e3o uma compreens\u00e3o muito mais profunda a seu respeito e que muitas vezes n\u00e3o s\u00e3o mencionados.<\/p>\n\n\n\n<p>(o primeiro cap\u00edtulo &#8211; The Python Data Model &#8211; sozinho j\u00e1 valeria \u00e0 pena a compra)<\/p>\n\n\n\n<p>Mas como disse, n\u00e3o \u00e9 um livro para principiantes. Ele n\u00e3o vai te mostrar como dar os primeiros passos na linguagem pois seu objetivo n\u00e3o \u00e9 este (o pr\u00f3prio autor n\u00e3o recomenda). Mas como leitura&#8230; que livro!<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">The Hitchhiker&#8217;s Guide to Python &#8211; Kenneth Reitz e Tanya Schlusser<\/h3>\n\n\n\n<p>Este me ajudou horrores, \u00e9 gratuito e possui uma tradu\u00e7\u00e3o para o portugu\u00eas (que tem alguns erros at\u00e9 onde pude ler, mas j\u00e1 \u00e9 alguma coisa). Voc\u00ea pode acess\u00e1-lo neste <a href=\"https:\/\/docs.python-guide.org\/\" class=\"rank-math-link\">link<\/a>.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/d33wubrfki0l68.cloudfront.net\/7b1098a979f88fe7168ab273be04a96c85dd7702\/2c5e5\/_static\/guide-book-cover.jpg\" alt=\"Python Guide Book Cover\" width=\"204\" height=\"268\"\/><\/figure><\/div>\n\n\n\n<p>\u00c9 maravilhoso e me foi uma m\u00e3o na roda. Isto por que ele tamb\u00e9m n\u00e3o \u00e9 um tutorial, mas sim um livro de ambienta\u00e7\u00e3o. Nele voc\u00ea ler\u00e1 bastante coisa sobre como \u00e9 a cultura Python e, ainda mais interessante, ele te oferece uma s\u00e9rie de refer\u00eancias para tipos de aplica\u00e7\u00e3o que voc\u00ea ir\u00e1 construir, tal como pode ser visto na se\u00e7\u00e3o &#8220;Scenario Guide for Python Applications&#8221;. L\u00e1 voc\u00ea encontra refer\u00eancias para bibliotecas que voc\u00ea pode aproveitar em seus projetos, tais como HTML scrapping (meu caso), acessar banco de dados, parsear XML, JSON e muito mais.<\/p>\n\n\n\n<p>H\u00e1 tamb\u00e9m um cap\u00edtulo neste livro chamado <a href=\"https:\/\/docs.python-guide.org\/writing\/structure\/\" class=\"rank-math-link\">Structuring your Project<\/a> que me foi muito \u00fatil. Basicamente te mostra como organizar os arquivos que comp\u00f5em o seu projeto. <\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Sites<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Real Python &#8211; <a href=\"https:\/\/realpython.com\/\" class=\"rank-math-link\">https:\/\/realpython.com\/<\/a><\/h3>\n\n\n\n<p>H\u00e1 uma boa quantidade de tutoriais gratuitos e pagos neste site. Me ajudou bastante com alguns dos tutoriais que aqui li, dentre eles, destaco:<\/p>\n\n\n\n<p><strong>Python Virtual Environments &#8211; A primer<\/strong> &#8211; <a href=\"https:\/\/realpython.com\/python-virtual-environments-a-primer\/\" class=\"rank-math-link\">https:\/\/realpython.com\/python-virtual-environments-a-primer\/<\/a><\/p>\n\n\n\n<p>Ap\u00f3s ter lido a respeito no Use a Cabe\u00e7a, este texto me ajudou bastante a entender como funciona o conceito de &#8220;Virtual Environment&#8221; no Python.<\/p>\n\n\n\n<p>(pessoalmente achei uma gambiarra muito interessante o virtual environment)<\/p>\n\n\n\n<p><strong>Common Python Data Structures<\/strong> &#8211; <a href=\"https:\/\/realpython.com\/python-data-structures\/\" class=\"rank-math-link\">https:\/\/realpython.com\/python-data-structures\/<\/a><\/p>\n\n\n\n<p>\u00c9 um resum\u00e3o das estruturas de dados que o Python oferece. Me foi \u00fatil tamb\u00e9m pra refor\u00e7ar o que li no Use a Cabe\u00e7a.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Read the Docs &#8211; <a href=\"https:\/\/readthedocs.org\/\" class=\"rank-math-link\">https:\/\/readthedocs.org\/<\/a><\/h3>\n\n\n\n<p>Como pude viver tanto tempo sem conhecer este site? Pense nele como uma esp\u00e9cie de &#8220;Google pra Documenta\u00e7\u00e3o&#8221;. Meu fluxo com este site era essencialmente este:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Eu lia sobre a ferramenta que precisava no <em>The Hitchhiker&#8217;s Guide to Python. <\/em>L\u00e1 h\u00e1 alguns links, mas eu s\u00f3 havia passado olho pelas op\u00e7\u00f5es.<\/li><li>A\u00ed me lembrava da lib e ia neste site pra buscar a documenta\u00e7\u00e3o daquela lib. Boom: encontrava.<\/li><\/ul>\n\n\n\n<p>\u00c9 uma m\u00e3o na roda sem sombra de d\u00favidas.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Tutorialspoint &#8211; Python &#8211; <a href=\"https:\/\/www.tutorialspoint.com\/python\/index.htm\" class=\"rank-math-link\">https:\/\/www.tutorialspoint.com\/python\/index.htm<\/a><\/h3>\n\n\n\n<p>O momento em que paguei l\u00edngua. Por muito tempo ca\u00eda neste site e n\u00e3o o levava muito a s\u00e9rio, at\u00e9 que precisei dele de verdade. Foi aqui que aprendi a como <a href=\"https:\/\/www.tutorialspoint.com\/python\/python_database_access.htm\" class=\"rank-math-link\">interagir com o MySQL,<\/a> por exemplo.<\/p>\n\n\n\n<p>Voc\u00ea n\u00e3o vai encontrar material profundo aqui nem muitas refer\u00eancias, mas pra resolver problemas pontuais: <em>como conecto no banco de dados? como mando um e-mail? como parseio um XML?<\/em> \u00e9 bem direto ao ponto.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Ferramentas<\/h2>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/p1.pxfuel.com\/preview\/69\/252\/4\/tools-logo-work-equipment-pictorial.jpg\" alt=\"assorted, hand tools, making, tools word, tools, logo, work equipment,  pictorial, letters, image letters | Pxfuel\" width=\"394\" height=\"220\"\/><\/figure><\/div>\n\n\n\n<p>Algumas ferramentas me ajudaram muito no processo. Segue ent\u00e3o uma r\u00e1pida descri\u00e7\u00e3o do que usei e que pode lhe ajudar bastante no aprendizado.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">O pr\u00f3prio Python<\/h3>\n\n\n\n<p>Eu experimento muito com o REPL do Python. \u00c9 l\u00e1 que escrevo meus c\u00f3digos r\u00e1pidos para ver se funciona mesmo aquilo que quero fazer. <\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"850\" height=\"133\" src=\"https:\/\/www.itexto.com.br\/devkico\/wp-content\/uploads\/2020\/10\/image-1.png\" alt=\"\" class=\"wp-image-3106\" srcset=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2020\/10\/image-1.png 850w, https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2020\/10\/image-1-300x47.png 300w, https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2020\/10\/image-1-768x120.png 768w\" sizes=\"(max-width: 850px) 100vw, 850px\" \/><\/figure>\n\n\n\n<p>Isto tira o tempo que seria gasto em poss\u00edveis especula\u00e7\u00f5es motivadas por pregui\u00e7a do fluxo escrever-compilar-executar. <\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Visual Studio Code<\/h3>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"151\" height=\"150\" src=\"https:\/\/www.itexto.com.br\/devkico\/wp-content\/uploads\/2020\/10\/image-2.png\" alt=\"\" class=\"wp-image-3107\"\/><\/figure><\/div>\n\n\n\n<p>De forma autom\u00e1tica minha primeira op\u00e7\u00e3o foi o <a href=\"https:\/\/code.visualstudio.com\/\" class=\"rank-math-link\">Visual Studio Code<\/a>. E me atendeu muito bem, por que tem suporte a depura\u00e7\u00e3o muito bom pro Python al\u00e9m do recurso de auto completar. Mas n\u00e3o foi minha IDE por muito tempo&#8230;<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">PyCharm<\/h3>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/www.itexto.com.br\/devkico\/wp-content\/uploads\/2020\/10\/image.jpeg\" alt=\"Baixar PyCharm: o IDE Python da JetBrains para desenvolvedores profissionais\" class=\"wp-image-3108\" width=\"135\" height=\"135\" srcset=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2020\/10\/image.jpeg 225w, https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2020\/10\/image-150x150.jpeg 150w\" sizes=\"(max-width: 135px) 100vw, 135px\" \/><\/figure><\/div>\n\n\n\n<p>Que coisa linda! <a href=\"https:\/\/www.jetbrains.com\/pt-br\/pycharm\/download\/\" class=\"rank-math-link\">PyCharm<\/a> (o IntelliJ da JetBrains pra Python) t\u00e1 me ajudando a aprender Python: especialmente no que diz respeito aos padr\u00f5es de codifica\u00e7\u00e3o, por que me exp\u00f5e alertas na hora em que estou fugindo deste (nomes de vari\u00e1veis, espa\u00e7amentos, etc).<\/p>\n\n\n\n<p>Eu sei que existem plug-ins para o VS Code que te d\u00e3o isto, mas o PyCharm j\u00e1 v\u00eam com todos os recursos do Python prontos pra usar, como o pr\u00f3prio suporte ao venv e pip.<\/p>\n\n\n\n<p>V\u00eam em duas vers\u00f5es: a gratuita (Community, a que estou usando) e a Professional (paga).<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Virtual Environment (venv) e PIP<\/h3>\n\n\n\n<p>Logo que comecei a ler sobre como funcionava o carregamento de bibliotecas do Python ficou n\u00edtido pra mim que meu PC iria se tornar um caos em breve. O venv \u00e9 a ferramenta que te permite isolar configura\u00e7\u00f5es de bibliotecas do Python, enquanto o pip \u00e9 o respons\u00e1vel por baixar estas depend\u00eancias.<\/p>\n\n\n\n<p>N\u00e3o s\u00e3o nem de longe solu\u00e7\u00f5es t\u00e3o sofisticadas quanto as que temos no Java. Bem longe disto inclusive, o que torna a implanta\u00e7\u00e3o de projetos (aviso: <strong>esta \u00e9 a vis\u00e3o de um iniciante<\/strong>) algo mais complexo e com maior risco do que o que estamos acostumados com Java. Mas \u00e9 o que tem pra hoje, e voc\u00ea precisa entender como eles operam pra n\u00e3o cair num inferno.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Resultados &#8220;finais&#8221;<\/h2>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/i.pinimg.com\/originals\/82\/b2\/3a\/82b23a37bc438fc8808e1f707e0a0bc5.png\" alt=\"python programming language | Learning logo, Python, Language logo\"\/><\/figure>\n\n\n\n<p>Este foi o planejamento desta minha imers\u00e3o em Python. Como resultado final estou <strong>muito bem impressionado<\/strong>. H\u00e1 bibliotecas pra <strong>tudo<\/strong> o que precisei, e muitas das coisas que escrevi na ra\u00e7a no projeto anterior do \/dev\/All encontrei pronto aqui, o que me fez entender (mais uma vez) por que tantas pessoas adoram a linguagem.<\/p>\n\n\n\n<p>Minha produtividade com Python foi imensa, por\u00e9m \u00e9 importante lembrar que produtividade e qualidade s\u00e3o coisas diferentes, especialmente levando em considera\u00e7\u00e3o o fato de que sou um iniciante aqui. Em um dia estava pronto o novo Feed Hunter do \/dev\/All com quase todos os recursos que quer\u00edamos e com desempenho muito similar ao da primeira vers\u00e3o (\u00e9 uma aplica\u00e7\u00e3o altamente concorrente, o que consegui fazer em Python sem problemas).<\/p>\n\n\n\n<p>\u00c9 importante um aviso sobre o tempo desta minha imers\u00e3o: foi de <strong>dois dias e meio<\/strong>. Este curto tempo pra se tornar produtivo em Python acredito que esteja diretamente relacionado ao fato de eu ser um desenvolvedor experiente (mais de 20 anos), mas pode ser que em uma semana algu\u00e9m com menos experi\u00eancia consiga se tornar produtivo tamb\u00e9m.<\/p>\n\n\n\n<p>Nem todos os livros foram lidos de cabo a rabo. N\u00e3o li o Fluent Python inteiro, apenas algumas partes, pois o objetivo do livro \u00e9 justamente te dar aprofundamento nos t\u00f3picos que apresenta.<\/p>\n\n\n\n<p>Sobre o c\u00f3digo que escrevi: me senti bastante aliviado por duas coisas:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>N\u00e3o estar escrevendo c\u00f3digo orientado a objetos, mas algo mais funcional, mais simples e menos burocr\u00e1tico.<\/li><li>Ter me afastado um pouco da JVM, com a qual convivo desde 1996 (Java 1.1) :)<\/li><\/ul>\n\n\n\n<p>Por enquanto tenho apenas uma vis\u00e3o inicial sobre o ambiente de desenvolvimento e a linguagem, ent\u00e3o diria que n\u00e3o passam de impress\u00f5es. Passado um m\u00eas com mais experi\u00eancia no meu caminho com Tensorflow e outros pequenos projetos que vou implementar conto a voc\u00eas o que achei. At\u00e9 l\u00e1!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Como foi meu planejamento para aprender Python em dois dias e meio, qual bibliografia e ferramentas usei.<\/p>\n","protected":false},"author":1,"featured_media":3102,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-gradient":""}},"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[34,105],"tags":[],"class_list":["post-3101","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-paideia","category-python"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Python - meu plano de estudos para imers\u00e3o - \/dev\/Kico<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/devkico.itexto.com.br\/?p=3101\" \/>\n<meta property=\"og:locale\" content=\"pt_BR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Python - meu plano de estudos para imers\u00e3o - \/dev\/Kico\" \/>\n<meta property=\"og:description\" content=\"Como foi meu planejamento para aprender Python em dois dias e meio, qual bibliografia e ferramentas usei.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/devkico.itexto.com.br\/?p=3101\" \/>\n<meta property=\"og:site_name\" content=\"\/dev\/Kico\" \/>\n<meta property=\"article:published_time\" content=\"2020-10-12T16:22:44+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-10-12T16:23:49+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2020\/10\/aprendendo_python.png\" \/>\n\t<meta property=\"og:image:width\" content=\"576\" \/>\n\t<meta property=\"og:image:height\" content=\"346\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Kico (Henrique Lobo Weissmann)\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@loboweissmann\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kico (Henrique Lobo Weissmann)\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. tempo de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"14 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=3101\",\"url\":\"https:\/\/devkico.itexto.com.br\/?p=3101\",\"name\":\"Python - meu plano de estudos para imers\u00e3o - \/dev\/Kico\",\"isPartOf\":{\"@id\":\"https:\/\/devkico.itexto.com.br\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=3101#primaryimage\"},\"image\":{\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=3101#primaryimage\"},\"thumbnailUrl\":\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2020\/10\/aprendendo_python.png\",\"datePublished\":\"2020-10-12T16:22:44+00:00\",\"dateModified\":\"2020-10-12T16:23:49+00:00\",\"author\":{\"@id\":\"https:\/\/devkico.itexto.com.br\/#\/schema\/person\/502ab8892631bb005d6da2269fe5a3a7\"},\"breadcrumb\":{\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=3101#breadcrumb\"},\"inLanguage\":\"pt-BR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/devkico.itexto.com.br\/?p=3101\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=3101#primaryimage\",\"url\":\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2020\/10\/aprendendo_python.png\",\"contentUrl\":\"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2020\/10\/aprendendo_python.png\",\"width\":576,\"height\":346},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/devkico.itexto.com.br\/?p=3101#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/devkico.itexto.com.br\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Python &#8211; meu plano de estudos para imers\u00e3o\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/devkico.itexto.com.br\/#website\",\"url\":\"https:\/\/devkico.itexto.com.br\/\",\"name\":\"\/dev\/Kico\",\"description\":\"Desenvolvendo software\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/devkico.itexto.com.br\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"pt-BR\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/devkico.itexto.com.br\/#\/schema\/person\/502ab8892631bb005d6da2269fe5a3a7\",\"name\":\"Kico (Henrique Lobo Weissmann)\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"pt-BR\",\"@id\":\"https:\/\/devkico.itexto.com.br\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/dd6973d86a689bc63122b2e603f25be3?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/dd6973d86a689bc63122b2e603f25be3?s=96&d=mm&r=g\",\"caption\":\"Kico (Henrique Lobo Weissmann)\"},\"sameAs\":[\"https:\/\/x.com\/loboweissmann\"],\"url\":\"https:\/\/devkico.itexto.com.br\/?author=1\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Python - meu plano de estudos para imers\u00e3o - \/dev\/Kico","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/devkico.itexto.com.br\/?p=3101","og_locale":"pt_BR","og_type":"article","og_title":"Python - meu plano de estudos para imers\u00e3o - \/dev\/Kico","og_description":"Como foi meu planejamento para aprender Python em dois dias e meio, qual bibliografia e ferramentas usei.","og_url":"https:\/\/devkico.itexto.com.br\/?p=3101","og_site_name":"\/dev\/Kico","article_published_time":"2020-10-12T16:22:44+00:00","article_modified_time":"2020-10-12T16:23:49+00:00","og_image":[{"width":576,"height":346,"url":"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2020\/10\/aprendendo_python.png","type":"image\/png"}],"author":"Kico (Henrique Lobo Weissmann)","twitter_card":"summary_large_image","twitter_creator":"@loboweissmann","twitter_misc":{"Escrito por":"Kico (Henrique Lobo Weissmann)","Est. tempo de leitura":"14 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/devkico.itexto.com.br\/?p=3101","url":"https:\/\/devkico.itexto.com.br\/?p=3101","name":"Python - meu plano de estudos para imers\u00e3o - \/dev\/Kico","isPartOf":{"@id":"https:\/\/devkico.itexto.com.br\/#website"},"primaryImageOfPage":{"@id":"https:\/\/devkico.itexto.com.br\/?p=3101#primaryimage"},"image":{"@id":"https:\/\/devkico.itexto.com.br\/?p=3101#primaryimage"},"thumbnailUrl":"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2020\/10\/aprendendo_python.png","datePublished":"2020-10-12T16:22:44+00:00","dateModified":"2020-10-12T16:23:49+00:00","author":{"@id":"https:\/\/devkico.itexto.com.br\/#\/schema\/person\/502ab8892631bb005d6da2269fe5a3a7"},"breadcrumb":{"@id":"https:\/\/devkico.itexto.com.br\/?p=3101#breadcrumb"},"inLanguage":"pt-BR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/devkico.itexto.com.br\/?p=3101"]}]},{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/devkico.itexto.com.br\/?p=3101#primaryimage","url":"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2020\/10\/aprendendo_python.png","contentUrl":"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2020\/10\/aprendendo_python.png","width":576,"height":346},{"@type":"BreadcrumbList","@id":"https:\/\/devkico.itexto.com.br\/?p=3101#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/devkico.itexto.com.br\/"},{"@type":"ListItem","position":2,"name":"Python &#8211; meu plano de estudos para imers\u00e3o"}]},{"@type":"WebSite","@id":"https:\/\/devkico.itexto.com.br\/#website","url":"https:\/\/devkico.itexto.com.br\/","name":"\/dev\/Kico","description":"Desenvolvendo software","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/devkico.itexto.com.br\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"pt-BR"},{"@type":"Person","@id":"https:\/\/devkico.itexto.com.br\/#\/schema\/person\/502ab8892631bb005d6da2269fe5a3a7","name":"Kico (Henrique Lobo Weissmann)","image":{"@type":"ImageObject","inLanguage":"pt-BR","@id":"https:\/\/devkico.itexto.com.br\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/dd6973d86a689bc63122b2e603f25be3?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/dd6973d86a689bc63122b2e603f25be3?s=96&d=mm&r=g","caption":"Kico (Henrique Lobo Weissmann)"},"sameAs":["https:\/\/x.com\/loboweissmann"],"url":"https:\/\/devkico.itexto.com.br\/?author=1"}]}},"jetpack_featured_media_url":"https:\/\/devkico.itexto.com.br\/wp-content\/uploads\/2020\/10\/aprendendo_python.png","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/posts\/3101"}],"collection":[{"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3101"}],"version-history":[{"count":3,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/posts\/3101\/revisions"}],"predecessor-version":[{"id":3110,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/posts\/3101\/revisions\/3110"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=\/wp\/v2\/media\/3102"}],"wp:attachment":[{"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3101"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3101"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devkico.itexto.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3101"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}