{"id":850,"date":"2018-09-12T16:00:03","date_gmt":"2018-09-12T19:00:03","guid":{"rendered":"https:\/\/programathor.com.br\/blog\/?p=850"},"modified":"2021-07-08T15:55:38","modified_gmt":"2021-07-08T18:55:38","slug":"como-pensar-igual-um-programador-dicas-para-solucionar-problemas","status":"publish","type":"post","link":"https:\/\/programathor.com.br\/blog\/como-pensar-igual-um-programador-dicas-para-solucionar-problemas\/","title":{"rendered":"Como pensar igual um programador: dicas para solucionar problemas"},"content":{"rendered":"<p>Voc\u00ea provavelmente j\u00e1 se perguntou o que significa &#8220;pensar igual um programador&#8221; e como voc\u00ea faz isso. Essencialmente, trata-se de um meio mais eficaz de resolver problemas. Todos n\u00f3s temos problemas grandes e pequenos. A forma como lidamos com eles \u00e9, \u00e0s vezes, bastante aleat\u00f3ria. A menos que voc\u00ea tenha um sistema, provavelmente \u00e9 assim que voc\u00ea &#8220;resolve&#8221; problemas (foi o que fiz quando comecei a codificar):<\/p>\n<ol>\n<li>Tente uma solu\u00e7\u00e3o.<\/li>\n<li>Se isso n\u00e3o funcionar, tente outro.<\/li>\n<li>Se isso n\u00e3o funcionar, repita o passo 2 at\u00e9 ter sorte.<\/li>\n<\/ol>\n<p>\u00c0s vezes voc\u00ea tem sorte. Mas essa \u00e9 a pior maneira de resolver problemas, al\u00e9m de ser uma enorme perda de tempo.&nbsp;A melhor maneira envolve a) ter uma estrutura e b) pratic\u00e1-la.<br \/>\n<!--more--><\/p>\n<p><img decoding=\"async\" class=\"aligncenter size-medium_large wp-image-856\" src=\"https:\/\/programathor.com.br\/blog\/wp-content\/uploads\/2018\/08\/pensar-com-um-programador-768x197.jpg\" alt=\"pensar com um programador\" width=\"676\" height=\"173\" srcset=\"https:\/\/programathor.com.br\/blog\/wp-content\/uploads\/2018\/08\/pensar-com-um-programador-768x197.jpg 768w, https:\/\/programathor.com.br\/blog\/wp-content\/uploads\/2018\/08\/pensar-com-um-programador-300x77.jpg 300w, https:\/\/programathor.com.br\/blog\/wp-content\/uploads\/2018\/08\/pensar-com-um-programador-676x173.jpg 676w, https:\/\/programathor.com.br\/blog\/wp-content\/uploads\/2018\/08\/pensar-com-um-programador.jpg 1016w\" sizes=\"(max-width: 676px) 100vw, 676px\" \/><\/p>\n<h2>1. Entender<\/h2>\n<p>Saiba exatamente o que est\u00e1 sendo perguntado. A maioria dos problemas&nbsp;dif\u00edceis s\u00f3 s\u00e3o dif\u00edceis porque voc\u00ea n\u00e3o os entende (ta a\u00ed porque este \u00e9 o primeiro passo).<\/p>\n<p>Como saber quando voc\u00ea entende um problema? Quando voc\u00ea pode explicar isso em um simples portugu\u00eas.<\/p>\n<p>Voc\u00ea se lembra de estar preso a um problema, come\u00e7a a explic\u00e1-lo e v\u00ea instantaneamente buracos na l\u00f3gica que voc\u00ea n\u00e3o viu antes?<\/p>\n<p>\u00c9 por isso que voc\u00ea deve anotar seu problema, rabiscar um diagrama ou contar a algu\u00e9m sobre isso (ou coisa&#8230; algumas pessoas usam um pato de borracha).<\/p>\n<h2>2. Planejar<\/h2>\n<p>N\u00e3o mergulhe direto na solu\u00e7\u00e3o sem um plano (e, de alguma forma, espere que voc\u00ea possa atrapalhar seu caminho). Planeje sua solu\u00e7\u00e3o! Nada pode ajud\u00e1-lo se voc\u00ea n\u00e3o conseguir anotar as etapas exatas.<\/p>\n<p>Na programa\u00e7\u00e3o, isso significa n\u00e3o come\u00e7ar a invadir imediatamente. D\u00ea tempo ao seu c\u00e9rebro para analisar o problema e processar as informa\u00e7\u00f5es.<\/p>\n<p>Para obter um bom plano, responda a esta pergunta:<\/p>\n<p>Dada a entrada X, quais s\u00e3o as etapas necess\u00e1rias para retornar a sa\u00edda Y?&#8221;<\/p>\n<p><strong>Nota:<\/strong> Os programadores t\u00eam uma \u00f3tima ferramenta para ajud\u00e1-los com isso\u2026 Coment\u00e1rios!<\/p>\n<h2>3. Dividir<\/h2>\n<p>Preste aten\u00e7\u00e3o. Este \u00e9 o passo mais importante de todos.&nbsp;N\u00e3o tente resolver um grande problema. Em vez disso, divida-o em sub-problemas. Estes sub-problemas s\u00e3o muito mais f\u00e1ceis de resolver.<\/p>\n<p>Em seguida, resolva cada sub-problema um por um. Comece com o mais simples (simples significa que voc\u00ea sabe a resposta ou est\u00e1 mais perto dessa resposta).<\/p>\n<p>Depois disso, o mais simples \u00e9 que esse sub-problema que est\u00e1 sendo resolvido n\u00e3o depende da resolu\u00e7\u00e3o de outros.<\/p>\n<p>Depois de resolver todos os sub-problemas, conecte os pontos.<\/p>\n<p>Conectar todas as suas \u201csub-solu\u00e7\u00f5es\u201d lhe dar\u00e1 a solu\u00e7\u00e3o para o problema original. Parab\u00e9ns!<\/p>\n<p>Esta t\u00e9cnica \u00e9 uma conex\u00e3o de solu\u00e7\u00f5es para resolver o problema maior. Lembre-se (leia este passo novamente, se for necess\u00e1rio).<\/p>\n<h2><a href=\"https:\/\/programathor.com.br\/jobs?utm_source=blog&amp;utm_medium=post&amp;utm_campaign=como-pensar-igual-um-programador-dicas-para-solucionar-problemas\"><img decoding=\"async\" class=\"aligncenter wp-image-901 size-post-image\" src=\"https:\/\/programathor.com.br\/blog\/wp-content\/uploads\/2018\/09\/vaga-desenvolvedor-1-676x367.jpg\" alt=\"\" width=\"676\" height=\"367\" srcset=\"https:\/\/programathor.com.br\/blog\/wp-content\/uploads\/2018\/09\/vaga-desenvolvedor-1-676x367.jpg 676w, https:\/\/programathor.com.br\/blog\/wp-content\/uploads\/2018\/09\/vaga-desenvolvedor-1-300x163.jpg 300w, https:\/\/programathor.com.br\/blog\/wp-content\/uploads\/2018\/09\/vaga-desenvolvedor-1.jpg 700w\" sizes=\"(max-width: 676px) 100vw, 676px\" \/><\/a><br \/>\n4. Preso?<\/h2>\n<p>A essa altura, provavelmente voc\u00ea est\u00e1 sentado pensando &#8220;Isso \u00e9 legal e tudo mais, mas e se eu estiver preso e n\u00e3o conseguir resolver um sub-problema?&#8221;<\/p>\n<p>Primeiro, respire fundo. Em segundo lugar, isso \u00e9 justo.&nbsp;N\u00e3o se preocupe, amigo. Isso acontece com todos!<\/p>\n<p>A diferen\u00e7a \u00e9 que os melhores programadores \/ solucionadores de problemas s\u00e3o mais curiosos sobre erros do que irritados.<\/p>\n<p>Aqui est\u00e3o tr\u00eas coisas para tentar enfrentar um golpe:<\/p>\n<p><strong>&nbsp;&#8211; Debug:<\/strong> percorra passo a passo sua solu\u00e7\u00e3o tentando descobrir onde voc\u00ea errou. Os programadores chamam isso de debuggin.<\/p>\n<p><strong>&nbsp;&#8211; Reavaliar:<\/strong> D\u00ea um passo atr\u00e1s. Olhe para o problema de outra perspectiva. Existe algo que possa ser abstra\u00eddo para uma abordagem mais geral?<\/p>\n<p>Outra maneira de reavaliar \u00e9 come\u00e7ar de novo. Apague tudo e comece novamente com novos olhos. Estou falando s\u00e9rio. Voc\u00ea ficar\u00e1 perplexo com a efic\u00e1cia disso.<\/p>\n<p><strong>&nbsp;&#8211; Pesquisa:<\/strong> Ah, bom e velho Google. Voc\u00ea leu certo. N\u00e3o importa qual problema voc\u00ea tenha, algu\u00e9m provavelmente resolveu. Encontre essa pessoa \/ solu\u00e7\u00e3o. Na verdade, fa\u00e7a isso mesmo se voc\u00ea resolveu o problema! (Voc\u00ea pode aprender muito com as solu\u00e7\u00f5es de outras pessoas).<\/p>\n<p>Advert\u00eancia: n\u00e3o procure uma solu\u00e7\u00e3o para o grande problema. Apenas procure solu\u00e7\u00f5es para sub-problemas. Por qu\u00ea? Porque a menos que voc\u00ea tenha dificuldades (mesmo um pouco), voc\u00ea n\u00e3o aprender\u00e1 nada. Se voc\u00ea n\u00e3o aprender nada, desperdi\u00e7ou seu tempo.<\/p>\n<h2>Na pr\u00e1tica<\/h2>\n<p>N\u00e3o espere ser \u00f3timo depois de apenas uma semana. Se voc\u00ea quer ser um bom solucionador de problemas, resolva muitos problemas!<\/p>\n<p>Pr\u00e1tica. Pr\u00e1tica. Pr\u00e1tica. Ser\u00e1 apenas uma quest\u00e3o de tempo at\u00e9 voc\u00ea reconhecer que &#8220;esse problema pode ser facilmente resolvido com &lt;inserir conceito aqui&gt;&#8221;.<\/p>\n<p>Puzzles de xadrez, problemas de matem\u00e1tica, Sudoku, Go, monop\u00f3lio, video-games, cryptokitties, bla\u2026 bla\u2026 bla\u2026<\/p>\n<p>Na verdade, um padr\u00e3o comum entre as pessoas bem-sucedidas \u00e9 o h\u00e1bito de praticar &#8220;microssolu\u00e7\u00e3o de problemas&#8221;. Por exemplo, Peter Thiel faz xadrez e Elon Musk joga videogames.<\/p>\n<p>Isso significa que voc\u00ea deve apenas jogar videogames? De modo nenhum.&nbsp;Mas o que s\u00e3o video-games? Isso mesmo, resolu\u00e7\u00e3o de problemas!<\/p>\n<p>Ent\u00e3o, o que voc\u00ea deve fazer \u00e9 encontrar uma sa\u00edda para praticar. Algo que permite resolver muitos micro-problemas (idealmente, algo que voc\u00ea goste).<\/p>\n<hr>\n<h3><strong>Consiga um emprego!<\/strong><\/h3>\n<p>Est\u00e1 buscando novas oportunidades com desenvolvedor?&nbsp; Acesse a&nbsp;<a href=\"https:\/\/programathor.com.br\/\">ProgramaThor<\/a>, uma startup focada no recrutamento de desenvolvedores. Para se candidatar \u00e0s vagas para programador e receber notifica\u00e7\u00f5es em casos de matching, basta de cadastrar e completar seu perfil corretamente.<\/p>\n<p style=\"text-align: center;\"><a href=\"https:\/\/programathor.com.br\/jobs?utm_source=blog&amp;utm_medium=post&amp;utm_campaign=como-pensar-igual-um-programador-dicas-para-solucionar-problemas\" class=\"large otw-greenish radius otw-button\" target=\"_blank\">VAGAS PARA PROGRAMADORES<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Voc\u00ea provavelmente j\u00e1 se perguntou o que significa &#8220;pensar igual um programador&#8221; e como voc\u00ea faz isso. Essencialmente, trata-se de um meio mais eficaz de resolver problemas. Todos n\u00f3s temos problemas grandes e pequenos. A forma como lidamos com eles \u00e9, \u00e0s vezes, bastante aleat\u00f3ria. A menos que voc\u00ea tenha um sistema, provavelmente \u00e9 assim [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":900,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[41],"tags":[45,13,44,38,48],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v22.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Como pensar igual um programador - Blog ProgramaThor<\/title>\n<meta name=\"description\" content=\"Neste artigo, a ProgramaThor trouxe dicas sobre como solucionar problemas e pensar igual um programador. Vem conferir e tirar suas d\u00favidas!\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/programathor.com.br\/blog\/como-pensar-igual-um-programador-dicas-para-solucionar-problemas\/\" \/>\n<meta property=\"og:locale\" content=\"pt_PT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Como pensar igual um programador - Blog ProgramaThor\" \/>\n<meta property=\"og:description\" content=\"Neste artigo, a ProgramaThor trouxe dicas sobre como solucionar problemas e pensar igual um programador. Vem conferir e tirar suas d\u00favidas!\" \/>\n<meta property=\"og:url\" content=\"https:\/\/programathor.com.br\/blog\/como-pensar-igual-um-programador-dicas-para-solucionar-problemas\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog ProgramaThor\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/ProgramaThorBr\/\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/pedro.lucinio.94\" \/>\n<meta property=\"article:published_time\" content=\"2018-09-12T19:00:03+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-07-08T18:55:38+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/programathor.com.br\/blog\/wp-content\/uploads\/2018\/09\/pensar-como-um-programador-676x366.png\" \/>\n\t<meta property=\"og:image:width\" content=\"676\" \/>\n\t<meta property=\"og:image:height\" content=\"366\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Pedro Lucinio\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@pedrolucinio27\" \/>\n<meta name=\"twitter:site\" content=\"@ProgramaThor\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Pedro Lucinio\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo estimado de leitura\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minutos\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Como pensar igual um programador - Blog ProgramaThor","description":"Neste artigo, a ProgramaThor trouxe dicas sobre como solucionar problemas e pensar igual um programador. Vem conferir e tirar suas d\u00favidas!","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:\/\/programathor.com.br\/blog\/como-pensar-igual-um-programador-dicas-para-solucionar-problemas\/","og_locale":"pt_PT","og_type":"article","og_title":"Como pensar igual um programador - Blog ProgramaThor","og_description":"Neste artigo, a ProgramaThor trouxe dicas sobre como solucionar problemas e pensar igual um programador. Vem conferir e tirar suas d\u00favidas!","og_url":"https:\/\/programathor.com.br\/blog\/como-pensar-igual-um-programador-dicas-para-solucionar-problemas\/","og_site_name":"Blog ProgramaThor","article_publisher":"https:\/\/www.facebook.com\/ProgramaThorBr\/","article_author":"https:\/\/www.facebook.com\/pedro.lucinio.94","article_published_time":"2018-09-12T19:00:03+00:00","article_modified_time":"2021-07-08T18:55:38+00:00","og_image":[{"width":676,"height":366,"url":"https:\/\/programathor.com.br\/blog\/wp-content\/uploads\/2018\/09\/pensar-como-um-programador-676x366.png","type":"image\/png"}],"author":"Pedro Lucinio","twitter_card":"summary_large_image","twitter_creator":"@pedrolucinio27","twitter_site":"@ProgramaThor","twitter_misc":{"Escrito por":"Pedro Lucinio","Tempo estimado de leitura":"5 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/programathor.com.br\/blog\/como-pensar-igual-um-programador-dicas-para-solucionar-problemas\/","url":"https:\/\/programathor.com.br\/blog\/como-pensar-igual-um-programador-dicas-para-solucionar-problemas\/","name":"Como pensar igual um programador - Blog ProgramaThor","isPartOf":{"@id":"https:\/\/programathor.com.br\/blog\/#website"},"datePublished":"2018-09-12T19:00:03+00:00","dateModified":"2021-07-08T18:55:38+00:00","author":{"@id":"https:\/\/programathor.com.br\/blog\/#\/schema\/person\/0d0da03131226876dd51a85cdbe26458"},"description":"Neste artigo, a ProgramaThor trouxe dicas sobre como solucionar problemas e pensar igual um programador. Vem conferir e tirar suas d\u00favidas!","breadcrumb":{"@id":"https:\/\/programathor.com.br\/blog\/como-pensar-igual-um-programador-dicas-para-solucionar-problemas\/#breadcrumb"},"inLanguage":"pt-PT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/programathor.com.br\/blog\/como-pensar-igual-um-programador-dicas-para-solucionar-problemas\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/programathor.com.br\/blog\/como-pensar-igual-um-programador-dicas-para-solucionar-problemas\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog","item":"https:\/\/programathor.com.br\/blog\/"},{"@type":"ListItem","position":2,"name":"Dicas","item":"https:\/\/programathor.com.br\/blog\/category\/dicas\/"},{"@type":"ListItem","position":3,"name":"Como pensar igual um programador: dicas para solucionar problemas"}]},{"@type":"WebSite","@id":"https:\/\/programathor.com.br\/blog\/#website","url":"https:\/\/programathor.com.br\/blog\/","name":"Blog ProgramaThor","description":"A plataforma de recrutamento  para programadores pensada por programadores. Entenda melhor o mundo da programa\u00e7\u00e3o, a cria\u00e7\u00e3o de uma vaga eficiente, dicas de entrevista, as linguagens do momento, o mercado de desenvolvimento e muito mais!","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/programathor.com.br\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"pt-PT"},{"@type":"Person","@id":"https:\/\/programathor.com.br\/blog\/#\/schema\/person\/0d0da03131226876dd51a85cdbe26458","name":"Pedro Lucinio","image":{"@type":"ImageObject","inLanguage":"pt-PT","@id":"https:\/\/programathor.com.br\/blog\/#\/schema\/person\/image\/","url":"https:\/\/programathor.com.br\/blog\/wp-content\/litespeed\/avatar\/c57a1d2b28234277049c88e675e47e45.jpg?ver=1780843675","contentUrl":"https:\/\/programathor.com.br\/blog\/wp-content\/litespeed\/avatar\/c57a1d2b28234277049c88e675e47e45.jpg?ver=1780843675","caption":"Pedro Lucinio"},"description":"Apaixonado por tecnologia e entusiasta da literatura !","sameAs":["http:\/\/www.programathor.com.br","https:\/\/www.facebook.com\/pedro.lucinio.94","https:\/\/twitter.com\/pedrolucinio27"],"url":"https:\/\/programathor.com.br\/blog\/author\/pedro\/"}]}},"_links":{"self":[{"href":"https:\/\/programathor.com.br\/blog\/wp-json\/wp\/v2\/posts\/850"}],"collection":[{"href":"https:\/\/programathor.com.br\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/programathor.com.br\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/programathor.com.br\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/programathor.com.br\/blog\/wp-json\/wp\/v2\/comments?post=850"}],"version-history":[{"count":12,"href":"https:\/\/programathor.com.br\/blog\/wp-json\/wp\/v2\/posts\/850\/revisions"}],"predecessor-version":[{"id":3198,"href":"https:\/\/programathor.com.br\/blog\/wp-json\/wp\/v2\/posts\/850\/revisions\/3198"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/programathor.com.br\/blog\/wp-json\/wp\/v2\/media\/900"}],"wp:attachment":[{"href":"https:\/\/programathor.com.br\/blog\/wp-json\/wp\/v2\/media?parent=850"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/programathor.com.br\/blog\/wp-json\/wp\/v2\/categories?post=850"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/programathor.com.br\/blog\/wp-json\/wp\/v2\/tags?post=850"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}