{"id":10171,"date":"2023-12-19T12:09:29","date_gmt":"2023-12-19T15:09:29","guid":{"rendered":"https:\/\/elemarjr.com\/clube-de-estudos\/?post_type=artigos&#038;p=10171"},"modified":"2023-12-24T11:42:32","modified_gmt":"2023-12-24T14:42:32","slug":"nomes-assustadores-para-conceitos-simples","status":"publish","type":"artigos","link":"https:\/\/elemarjr.com\/clube-de-estudos\/artigos\/nomes-assustadores-para-conceitos-simples\/","title":{"rendered":"Nomes Assustadores para Conceitos Simples"},"content":{"rendered":"\n<p>No mundo da tecnologia e da computa\u00e7\u00e3o, frequentemente nos deparamos com termos que parecem complexos e intimidantes. Vou compartilhar uma hist\u00f3ria pessoal que ilustra como um simples nome pode causar uma impress\u00e3o errada sobre a complexidade de um conceito. J\u00e1 se sentiu apreensivo ao ouvir um termo t\u00e9cnico pela primeira vez?<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Desmistificando o Array Associativo<\/h2>\n\n\n\n<p>Lembro-me claramente do dia em que me deparei com o termo &#8220;array associativo&#8221;. O nome soava t\u00e3o t\u00e9cnico, quase esot\u00e9rico. Mas, voc\u00ea j\u00e1 prestou aten\u00e7\u00e3o em como, \u00e0s vezes, uma terminologia pode parecer mais amea\u00e7adora do que o conceito por tr\u00e1s dela?<\/p>\n\n\n\n<p>Na verdade, o &#8220;array associativo&#8221; \u00e9 apenas uma nomenclatura mais rebuscada para &#8220;dicion\u00e1rio&#8221; em programa\u00e7\u00e3o. Um dicion\u00e1rio, ou <em>dictionary<\/em>, \u00e9 uma estrutura de dados fundamental e amplamente utilizada.<\/p>\n\n\n\n<p>Voc\u00ea sabia que o <em>dictionary<\/em> \u00e9 um exemplo de um tipo de dados abstrato, tamb\u00e9m conhecido como <em>abstract data type<\/em>? Essa \u00e9 uma estrutura que define uma interface para opera\u00e7\u00f5es, mas n\u00e3o especifica detalhes de implementa\u00e7\u00e3o. Por exemplo, o dicion\u00e1rio abstrai o conceito de mapear chaves a valores sem definir como isso \u00e9 feito internamente.<\/p>\n\n\n\n<p>Agora, pense sobre quantas vezes encontrou termos t\u00e9cnicos e sentiu uma onda de p\u00e2nico antes mesmo de compreender o que realmente significavam. Ser\u00e1 que n\u00e3o estamos frequentemente enfrentando gigantes que s\u00e3o, de fato, moinhos de vento?<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Implementa\u00e7\u00e3o de um Dicion\u00e1rio: Hash Tables<\/h2>\n\n\n\n<p>Curiosamente, um tipo comum de implementa\u00e7\u00e3o para um dicion\u00e1rio \u00e9 a <em>hash table<\/em>, uma estrutura de dados eficiente para certas opera\u00e7\u00f5es. Por exemplo, quando queremos associar pares chave-valor, as <em>hash tables<\/em> s\u00e3o excelentes, pois permitem inser\u00e7\u00f5es, dele\u00e7\u00f5es e buscas r\u00e1pidas.<\/p>\n\n\n\n<p>Vamos dar uma r\u00e1pida olhada em como uma simples <em>hash table<\/em> pode ser implementada em C#:<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" style=\"font-size:.875rem;line-height:1.25rem\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#2e3440ff\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"public class SimpleHashTable<TKey, TValue&gt;\n{\n    private List<KeyValuePair<TKey, TValue&gt;&gt;[] buckets;\n\n    public SimpleHashTable(int size)\n    {\n        buckets = new List<KeyValuePair<TKey, TValue&gt;&gt;[size];\n        \/\/ Inicializa as listas para evitar a verifica\u00e7\u00e3o de null.\n        for (int i = 0; i < size; i++)\n        {\n            buckets[i] = new List<KeyValuePair<TKey, TValue&gt;&gt;();\n        }\n    }\n\n    public void Add(TKey key, TValue value)\n    {\n        int bucketIndex = GetBucketIndex(key);\n        var bucketList = buckets[bucketIndex];\n\n        \/\/ Verificar se a chave j\u00e1 existe e atualizar o valor.\n        foreach (var pair in bucketList)\n        {\n            if (pair.Key.Equals(key))\n            {\n                bucketList.Remove(pair);\n                break;\n            }\n        }\n\n        \/\/ Adiciona o novo par chave-valor ao bucket.\n        bucketList.Add(new KeyValuePair<TKey, TValue&gt;(key, value));\n    }\n\n    \/\/ Outros m\u00e9todos como Remove, Find, etc., seriam adicionados aqui.\n\n    private int GetBucketIndex(TKey key)\n    {\n        \/\/ A fun\u00e7\u00e3o de hash pode ser t\u00e3o simples quanto uma opera\u00e7\u00e3o m\u00f3dulo.\n        return Math.Abs(key.GetHashCode()) % buckets.Length;\n    }\n}\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\"><code><span class=\"line\"><span style=\"color: #81A1C1\">public<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">class<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">SimpleHashTable<\/span><span style=\"color: #ECEFF4\">&lt;<\/span><span style=\"color: #D8DEE9FF\">TKey<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> TValue<\/span><span style=\"color: #ECEFF4\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">private<\/span><span style=\"color: #D8DEE9FF\"> List<\/span><span style=\"color: #ECEFF4\">&lt;<\/span><span style=\"color: #D8DEE9FF\">KeyValuePair<\/span><span style=\"color: #ECEFF4\">&lt;<\/span><span style=\"color: #D8DEE9FF\">TKey<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> TValue<\/span><span style=\"color: #ECEFF4\">&gt;&gt;[]<\/span><span style=\"color: #D8DEE9FF\"> buckets<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">public<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">SimpleHashTable<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">int<\/span><span style=\"color: #D8DEE9FF\"> size<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">buckets<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">new<\/span><span style=\"color: #D8DEE9FF\"> List<\/span><span style=\"color: #ECEFF4\">&lt;<\/span><span style=\"color: #D8DEE9FF\">KeyValuePair<\/span><span style=\"color: #ECEFF4\">&lt;<\/span><span style=\"color: #D8DEE9FF\">TKey<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> TValue<\/span><span style=\"color: #ECEFF4\">&gt;&gt;[<\/span><span style=\"color: #D8DEE9\">size<\/span><span style=\"color: #ECEFF4\">]<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">        <\/span><span style=\"color: #616E88\">\/\/ Inicializa as listas para evitar a verifica\u00e7\u00e3o de null.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #81A1C1\">for<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">int<\/span><span style=\"color: #D8DEE9FF\"> i <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">0<\/span><span style=\"color: #81A1C1\">;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">i<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">&lt;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">size<\/span><span style=\"color: #81A1C1\">;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">i<\/span><span style=\"color: #81A1C1\">++<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #D8DEE9\">buckets<\/span><span style=\"color: #ECEFF4\">[<\/span><span style=\"color: #D8DEE9\">i<\/span><span style=\"color: #ECEFF4\">]<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">new<\/span><span style=\"color: #D8DEE9FF\"> List<\/span><span style=\"color: #ECEFF4\">&lt;<\/span><span style=\"color: #D8DEE9FF\">KeyValuePair<\/span><span style=\"color: #ECEFF4\">&lt;<\/span><span style=\"color: #D8DEE9FF\">TKey<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> TValue<\/span><span style=\"color: #ECEFF4\">&gt;&gt;()<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">public<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">void<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">Add<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">TKey key<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> TValue value<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #81A1C1\">int<\/span><span style=\"color: #D8DEE9FF\"> bucketIndex <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">GetBucketIndex<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9\">key<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #81A1C1\">var<\/span><span style=\"color: #D8DEE9FF\"> bucketList <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">buckets<\/span><span style=\"color: #ECEFF4\">[<\/span><span style=\"color: #D8DEE9\">bucketIndex<\/span><span style=\"color: #ECEFF4\">]<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">        <\/span><span style=\"color: #616E88\">\/\/ Verificar se a chave j\u00e1 existe e atualizar o valor.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #81A1C1\">foreach<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">var<\/span><span style=\"color: #D8DEE9FF\"> pair <\/span><span style=\"color: #81A1C1\">in<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">bucketList<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9\">pair<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">Key<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">Equals<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9\">key<\/span><span style=\"color: #ECEFF4\">))<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                <\/span><span style=\"color: #D8DEE9\">bucketList<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">Remove<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9\">pair<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                <\/span><span style=\"color: #81A1C1\">break;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">        <\/span><span style=\"color: #616E88\">\/\/ Adiciona o novo par chave-valor ao bucket.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #D8DEE9\">bucketList<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">Add<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">new<\/span><span style=\"color: #D8DEE9FF\"> KeyValuePair<\/span><span style=\"color: #ECEFF4\">&lt;<\/span><span style=\"color: #D8DEE9FF\">TKey<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> TValue<\/span><span style=\"color: #ECEFF4\">&gt;(<\/span><span style=\"color: #D8DEE9\">key<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">value<\/span><span style=\"color: #ECEFF4\">))<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">    <\/span><span style=\"color: #616E88\">\/\/ Outros m\u00e9todos como Remove, Find, etc., seriam adicionados aqui.<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">private<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">int<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">GetBucketIndex<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9FF\">TKey key<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">        <\/span><span style=\"color: #616E88\">\/\/ A fun\u00e7\u00e3o de hash pode ser t\u00e3o simples quanto uma opera\u00e7\u00e3o m\u00f3dulo.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #81A1C1\">return<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">Math<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">Abs<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #D8DEE9\">key<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #88C0D0\">GetHashCode<\/span><span style=\"color: #ECEFF4\">())<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">%<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #D8DEE9\">buckets<\/span><span style=\"color: #ECEFF4\">.<\/span><span style=\"color: #D8DEE9\">Length<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>\u00c9 importante notar que esse c\u00f3digo lida de forma b\u00e1sica com colis\u00f5es de chaves, substituindo o valor existente pela nova chave com o mesmo identificador. Na pr\u00e1tica, estrat\u00e9gias mais robustas para tratamento de colis\u00f5es incluem encadeamento e sondagem linear ou quadr\u00e1tica.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Conclus\u00e3o<\/h2>\n\n\n\n<p>N\u00e3o deixe que a nomenclatura de um conceito o assuste. Na maioria dos casos, esses &#8220;nomes assustadores&#8221; s\u00e3o simplesmente maneiras de descrever ideias que s\u00e3o elegantes em sua ess\u00eancia. Ao confrontar um termo novo e assustador, pergunte-se: o que ele realmente significa? Ser\u00e1 que j\u00e1 conhe\u00e7o o conceito por tr\u00e1s desse nome complicado?<\/p>\n\n\n\n<p>Ao desvendar o mist\u00e9rio dos termos t\u00e9cnicos, expandimos nosso entendimento e ganhamos confian\u00e7a em nossas habilidades. Meu convite \u00e9 para que voc\u00ea mantenha a curiosidade e a mente aberta. Vamos juntos traduzir os termos intimidadores em conhecimento aplic\u00e1vel.<\/p>\n\n\n\n<p>Se voc\u00ea estiver interessado em explorar mais esses conceitos ou outros assuntos relacionados a algoritmos, estruturas de dados, padr\u00f5es de projeto, arquitetura de software ou domain-driven design, saiba que discutimos esses t\u00f3picos regularmente em meus grupos de estudos e mentorias.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">TL;DR<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Termos t\u00e9cnicos como &#8220;array associativo&#8221; podem parecer intimidadores, mas frequentemente representam conceitos simples.<\/li>\n\n\n\n<li>&#8220;Array associativo&#8221; \u00e9 apenas uma terminologia complexa para o tipo de dados &#8220;dicion\u00e1rio&#8221; ou <em>dictionary<\/em>.<\/li>\n\n\n\n<li>Conhecer a implementa\u00e7\u00e3o real por tr\u00e1s desses conceitos, como as <em>hash tables<\/em>, pode ajudar a desmistificar o medo inicial e aprofunda o entendimento t\u00e9cnico.<\/li>\n<\/ol>\n","protected":false},"featured_media":10106,"parent":0,"template":"","cursos":[5],"class_list":["post-10171","artigos","type-artigos","status-publish","has-post-thumbnail","hentry","cursos-algortimos"],"acf":[],"_links":{"self":[{"href":"https:\/\/elemarjr.com\/clube-de-estudos\/wp-json\/wp\/v2\/artigos\/10171","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/elemarjr.com\/clube-de-estudos\/wp-json\/wp\/v2\/artigos"}],"about":[{"href":"https:\/\/elemarjr.com\/clube-de-estudos\/wp-json\/wp\/v2\/types\/artigos"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/elemarjr.com\/clube-de-estudos\/wp-json\/wp\/v2\/media\/10106"}],"wp:attachment":[{"href":"https:\/\/elemarjr.com\/clube-de-estudos\/wp-json\/wp\/v2\/media?parent=10171"}],"wp:term":[{"taxonomy":"cursos","embeddable":true,"href":"https:\/\/elemarjr.com\/clube-de-estudos\/wp-json\/wp\/v2\/cursos?post=10171"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}