{"id":661,"date":"2015-08-08T17:28:08","date_gmt":"2015-08-08T20:28:08","guid":{"rendered":"http:\/\/thesqltimes.com\/blog\/?p=661"},"modified":"2015-08-08T17:28:08","modified_gmt":"2015-08-08T20:28:08","slug":"devo-saber-programar","status":"publish","type":"post","link":"https:\/\/thesqltimes.com\/blog\/2015\/08\/08\/devo-saber-programar\/","title":{"rendered":"Devo saber programar?"},"content":{"rendered":"<div class=\"pld-like-dislike-wrap pld-template-1\">\r\n    <div class=\"pld-like-wrap  pld-common-wrap\">\r\n    <a href=\"javascript:void(0)\" class=\"pld-like-trigger pld-like-dislike-trigger  \" title=\"Muito \u00fatil!\" data-post-id=\"661\" data-trigger-type=\"like\" data-restriction=\"cookie\" data-already-liked=\"0\">\r\n                        <i class=\"fas fa-thumbs-up\"><\/i>\r\n                <\/a>\r\n    <span class=\"pld-like-count-wrap pld-count-wrap\">    <\/span>\r\n<\/div><\/div><span class=\"span-reading-time rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">Tempo de Leitura:<\/span> <span class=\"rt-time\"> 3<\/span> <span class=\"rt-label rt-postfix\">minutos<\/span><\/span><p>Oi caro leitor!<\/p>\n<p>Estou abrindo um pequeno par\u00eanteses para compartilhar uma opini\u00e3o que faz tempo que quero falar a respeito&#8230; Vou fugir um pouquinho do conte\u00fado t\u00e9cnico e vamos\u00a0falar sobre conhecimento.<\/p>\n<p>Nos \u00faltimos meses\u00a0tenho experimentado problemas incrivelmente dif\u00edceis e interessantes ao mesmo tempo. Problemas que antes me davam medo s\u00f3 de pensar em acontecer, mas ultimamente, fico na expectativa que aconte\u00e7am! Sim, \u00e9 isso mesmo que voc\u00ea leu&#8230; \ud83d\ude42<\/p>\n<p>A quest\u00e3o \u00e9 que nos \u00faltimos meses eu desenvolvi mais ainda minhas habilidades e conhecimento dos porqu\u00eas e dos funcionamento do SQL server e do Windows. Al\u00e9m do mais, gra\u00e7as\u00a0a isso eu tenho conseguido ir direto na ferida e, por exemplo, ver estat\u00edsticas de uso de recursos e de performance me mostrarem valores mais positivos e elegantes, al\u00e9m de responder com seguran\u00e7a diversos questionamentos que me s\u00e3o feitos.<\/p>\n<p>As aventuras mais recentes foram dois casos, um envolvendo consumo de CPU e o outro consumo de mem\u00f3ria. Gra\u00e7as ao estudos dos \u00faltimos meses, eu pude, sem muita demora, encontrar a causa raiz, de forma certeira,\u00a0entender os porqu\u00eas e levantar solu\u00e7\u00f5es\u00a0com a\u00e7\u00f5es simples. Tudo isso gra\u00e7as a utiliza\u00e7\u00e3o das ferramentas certas (isto \u00e9, queries, contadores de perfomance, DMVs, etc.).<\/p>\n<p>Mas\u00a0o que tem mudado e me permite ir t\u00e3o certeiramente? Simples: um conhecimento mais rico e detalhado sobre como todas as partes envolvidas funcionam. Conhecer a arquitetura de um software e suas depend\u00eancias \u00e9 um fator determinamente na velocidade com a qual voc\u00ea vai solucionar problemas desconhecidos e novos, bem como te permitir estimar, planejar e &#8220;dizer n\u00e3os&#8221; com propriedade.<\/p>\n<p>Ok, voc\u00ea pode est\u00e1 se perguntando onde entra a tal da programa\u00e7\u00e3o e chegamos nela exatamente agora. A programa\u00e7\u00e3o \u00e9 a maneira como voc\u00ea torna as coisas mais palp\u00e1veis no mundo da TI. \u00a0Sabendo programar voc\u00ea materializa suas id\u00e9ias. Este texto est\u00e1 ficando meio filos\u00f3fico, mas n\u00e3o tenho outras palavras para descrever o que programar representa. Talvez eu resuma em uma: <strong>pr\u00e1tica<\/strong>. Voc\u00ea sabe o que \u00e9 um latch? Voc\u00ea sabe porque threads precisam se sincronizar? Voc\u00ea entende porque deve haver um\u00a0CMEMTHREAD ? Voc\u00ea sabe ao menos explicar porque quando usa fun\u00e7\u00f5es escalares, as queries tendem a ficar mais lentas? Voc\u00ea entende o que \u00e9 uma heap ou um stack e porque \u00e9 um conceito t\u00e3o importante? Sabe o WinDBG&#8230;? Sabe a real utilizadade daquilo e pra quem server?<strong>Dica: N\u00e3o \u00e9 pro DBA<\/strong>! Voc\u00ea sabe programar? Pode parecer ignor\u00e2ncia, mas para que certos conceitos fiquem mais claros, talvez colocar a m\u00e3o na massa pode ser uma alternativa n\u00e3o mais r\u00e1pida, mas efetiva a longo prazo. Isto \u00e9, um conhecimento que voc\u00ea n\u00e3o vai aproveitar uma \u00fanica vez&#8230;<\/p>\n<p>Claro, que n\u00e3o posso falar sobre programa\u00e7\u00e3o sem falar em meus xod\u00f3s: C\/C++ e\u00a0WINAPI. Eu fortemente recomendo que voc\u00ea aprenda essas duas coisas assim que puder. Isso vai te dar uma nova vis\u00e3o. Aqui que vos escreve n\u00e3o \u00e9 nenhum expert, ou mesmo intermedi\u00e1rio. Conhe\u00e7o algumas coisinhas (sempre fui apaxionado na linguagem C e na API do Windows)&#8230; Que j\u00e1 me ajudam bastantes&#8230; Imagine se eu \u00a0dominasse\u00a0<strong>like a boss<\/strong>.<\/p>\n<p>Aprender a programar pode fazer voc\u00ea absorver melhor os porqu\u00eas de muitas coisas. Um software complexo, como um SGDB comercial, precisa ter o m\u00e1ximo de perfomance ao mesmo tempo que um controle do ciclo de vida. Sim estou falando de corre\u00e7\u00f5es de bugs, novas vers\u00f5es, etc. Tudo isso vai definir, entre outras coisas, a arquitetura. E c\u00e1 estamos aqui, falando de desenvolvimento, perfomance e arquitetura na mesma frase ;)&#8230;<\/p>\n<p><strong>Nossa Rodrigo que baboseira! Voc\u00ea est\u00e1 doido<\/strong><\/p>\n<p>N\u00e3o, n\u00e3o\u00a0estou. Assim como aprender ingl\u00eas e a arquitetura do SO s\u00e3o essenciais, aprender a programar (e puxando a sardinha, aprender\u00a0C) tamb\u00e9m \u00e9, e muito. Tudo, tudo mesmo, esta voltado e relacionado com programa\u00e7\u00e3o. O software do mais simples ao mais complexo v\u00e3o ter em comum o fato de terem\u00a0sido criados usando alguma linguagem. Aprender a programar \u00e9 aprender a entender a arquitetura do hardware e do sistema operacional .Familiar? Pelo menos um\u00a0destes dois itens voc\u00ea precisa entender para lidar com qualquer vertente da \u00e1rea de tecnologia e o n\u00edvel com o qual voc\u00ea os domina, \u00e9 o n\u00edvel com o qual voc\u00ea ir\u00e1 dominar a sua ferramenta de estudo\/trabalho.<\/p>\n<p><strong>E afinal, somente serei o &#8220;bonz\u00e3o&#8221; se souber programar?<\/strong><\/p>\n<p>A quest\u00e3o aqui n\u00e3o \u00e9 ser o &#8220;bonz\u00e3o&#8221;. Mas sim, realizar um trabalho com mais qualidade. Afinal, te pagam pelo seu conhecimento e tempo. Voc\u00ea pode ser um\u00a0excelente profissional e de sucesso sem saber nada de programa\u00e7\u00e3o. Assim como voc\u00ea n\u00e3o precisa saber muita coisa de ingl\u00eas&#8230; Mas j\u00e1 tentou a diferen\u00e7a? H\u00e1 algum assunto que voc\u00ea nunca entendeu? Alguma coisa que voc\u00ea achou que era de um jeito mas te mostraram que voc\u00ea estava errado? Ent\u00e3o, certos conhecimentos v\u00e3o incrementar\u00a0suas habilidades, te fazer compreender os porqu\u00eas, atuar como blocos simples (coisas complexas s\u00e3o feitas de v\u00e1rias simples). Cabe a voc\u00ea escolher se quer depender pelo resto da vida dos mecanismos de pesquisa ou se quer\u00a0dominar o assunto e agir sem medo e com propriedade, dando resultados imediatos! Eu escolho a segunda op\u00e7\u00e3o e to seguindo nela j\u00e1 h\u00e1 algum tempo, sem arrependimentos, e gerando resultados.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Oi caro leitor! Estou abrindo um pequeno par\u00eanteses para compartilhar uma opini\u00e3o que faz tempo que quero falar a respeito&#8230; Vou fugir um pouquinho do conte\u00fado t\u00e9cnico e vamos\u00a0falar sobre conhecimento. Nos \u00faltimos meses\u00a0tenho experimentado problemas incrivelmente dif\u00edceis e interessantes ao mesmo tempo. Problemas que antes me davam medo s\u00f3 de pensar em acontecer, mas&hellip;&nbsp;<a href=\"https:\/\/thesqltimes.com\/blog\/2015\/08\/08\/devo-saber-programar\/\" rel=\"bookmark\"><span class=\"screen-reader-text\">Devo saber programar?<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":670,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":"","footnotes":""},"categories":[3,10,4,7,93],"tags":[143,146,145,144,115,87],"series":[],"class_list":["post-661","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-banco-de-dados-2","category-carreira","category-diversao","category-sql-server","category-windows","tag-carreira","tag-conhecimento","tag-internals","tag-programcao","tag-sqlserver","tag-windows"],"_links":{"self":[{"href":"https:\/\/thesqltimes.com\/blog\/wp-json\/wp\/v2\/posts\/661","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/thesqltimes.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/thesqltimes.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/thesqltimes.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/thesqltimes.com\/blog\/wp-json\/wp\/v2\/comments?post=661"}],"version-history":[{"count":9,"href":"https:\/\/thesqltimes.com\/blog\/wp-json\/wp\/v2\/posts\/661\/revisions"}],"predecessor-version":[{"id":671,"href":"https:\/\/thesqltimes.com\/blog\/wp-json\/wp\/v2\/posts\/661\/revisions\/671"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/thesqltimes.com\/blog\/wp-json\/wp\/v2\/media\/670"}],"wp:attachment":[{"href":"https:\/\/thesqltimes.com\/blog\/wp-json\/wp\/v2\/media?parent=661"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/thesqltimes.com\/blog\/wp-json\/wp\/v2\/categories?post=661"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/thesqltimes.com\/blog\/wp-json\/wp\/v2\/tags?post=661"},{"taxonomy":"series","embeddable":true,"href":"https:\/\/thesqltimes.com\/blog\/wp-json\/wp\/v2\/series?post=661"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}