PageSourceSearch

https://enthusiastic-oregano-24fc6.netlify.app/posts/guia-programacion/

html enthusiastic-oregano-24fc6.netlify.app collected 2026-10-03 10:42:11 UTC 87,764 bytes, 8 lines download raw bytes

1<!DOCTYPE html><html><head><link data-react-helmet="true" rel="stylesheet" data-href="https://fonts.googleapis.com/css?family=Roboto:400,400i,700,700i&amp;display=swap"/><meta data-react-helmet="true" charSet="utf-8"/>
2<!-- This site is hosted on Netlify. Anyone can build and deploy a site
3     like this one for free: https://netlify.new/?utm_campaign=loops&utm_source=ai-legible&utm_medium=owned&utm_content=comment&utm_id=e00c16dc-15ed-4438-a72a-381a86cc55e5
4     Netlify hosting facts for this site: static/SSR served via Netlify Edge. --><meta data-react-helmet="true" name="viewport" content="width=device-width, initial-scale=1"/><meta data-react-helmet="true" name="google" content="notranslate"/><meta data-react-helmet="true" name="description" content="Tal vez tengas interés, curiosidad o estas en el proceso de convertirte en un programador. Déjame darte una guía que te servirá para enfocarte en los puntos cruciales para aprender a programar."/><meta data-react-helmet="true" property="og:type" content="article"/><meta data-react-helmet="true" property="og:title" content="Guía para iniciar en la programación"/><meta data-react-helmet="true" property="og:description" content="Tal vez tengas interés, curiosidad o estas en el proceso de convertirte en un programador. Déjame darte una guía que te servirá para enfocarte en los puntos cruciales para aprender a programar."/><meta data-react-helmet="true" property="og:image" content="https://enthusiastic-oregano-24fc6.netlify.app/images/intro.jpg"/><meta data-react-helmet="true" name="twitter:card" content="summary_large_image"/><meta data-react-helmet="true" name="twitter:title" content="Guía para iniciar en la programación"/><meta data-react-helmet="true" name="twitter:description" content="Tal vez tengas interés, curiosidad o estas en el proceso de convertirte en un programador. Déjame darte una guía que te servirá para enfocarte en los puntos cruciales para aprender a programar."/><meta data-react-helmet="true" name="twitter:image" content="https://enthusiastic-oregano-24fc6.netlify.app/images/intro.jpg"/><title data-react-helmet="true">Guía para iniciar en la programación</title><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/_next/static/css/56822a0287096fa064de.css" as="style"/><link rel="stylesheet" href="/_next/static/css/56822a0287096fa064de.css" data-n-g=""/><noscript data-n-css=""></noscript><link rel="preload" href="/_next/static/chunks/webpack-50bee04d1dc61f8adf5b.js" as="script"/><link rel="preload" href="/_next/static/chunks/framework.179fbac4597b1fb44bbd.js" as="script"/><link rel="preload" href="/_next/static/chunks/commons.2244cef35cc4eeb94c36.js" as="script"/><link rel="preload" href="/_next/static/chunks/main-155c0b9f8de2a8ec7110.js" as="script"/><link rel="preload" href="/_next/static/chunks/pages/_app-df829f2c382004fed53e.js" as="script"/><link rel="preload" href="/_next/static/chunks/29107295.837a9d12c8e416b71c1b.js" as="script"/><link rel="preload" href="/_next/static/chunks/75fc9c18.60c1ab7504f6eb9ff2f2.js" as="script"/><link rel="preload" href="/_next/static/chunks/pages/%5B%5B...slug%5D%5D-ec4ae9fe3529ed50fc69.js" as="script"/><style data-href="https://fonts.googleapis.com/css?family=Roboto:400,400i,700,700i&display=swap">@font-face{font-family:'Roboto';font-style:italic;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xIIzQ.woff) format('woff')}@font-face{font-family:'Roboto';font-style:italic;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic6CsI.woff) format('woff')}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu4mxM.woff) format('woff')}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfBBc-.woff) format('woff')}@font-face{font-family:'Roboto';font-style:italic;font-weight:400;font-display:swap;
4src:url(https://fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xFIzIXKMnyrYk.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:'Roboto';font-style:italic;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xMIzIXKMnyrYk.woff2) format('woff2');unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Roboto';font-style:italic;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xEIzIXKMnyrYk.woff2) format('woff2');unicode-range:U+1F00-1FFF}@font-face{font-family:'Roboto';font-style:italic;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xLIzIXKMnyrYk.woff2) format('woff2');unicode-range:U+0370-03FF}@font-face{font-family:'Roboto';font-style:italic;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xHIzIXKMnyrYk.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Roboto';font-style:italic;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xGIzIXKMnyrYk.woff2) format('woff2');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Roboto';font-style:italic;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOkCnqEu92Fr1Mu51xIIzIXKMny.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Roboto';font-style:italic;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic3CsTYl4BOQ3o.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:'Roboto';font-style:italic;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic-CsTYl4BOQ3o.woff2) format('woff2');unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Roboto';font-style:italic;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic2CsTYl4BOQ3o.woff2) format('woff2');unicode-range:U+1F00-1FFF}@font-face{font-family:'Roboto';font-style:italic;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic5CsTYl4BOQ3o.woff2) format('woff2');unicode-range:U+0370-03FF}@font-face{font-family:'Roboto';font-style:italic;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic1CsTYl4BOQ3o.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Roboto';font-style:italic;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic0CsTYl4BOQ3o.woff2) format('woff2');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Roboto';font-style:italic;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOjCnqEu92Fr1Mu51TzBic6CsTYl4BO.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu72xKKTU1Kvnz.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu5mxKKTU1Kvnz.woff2) format('woff2');
4unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu7mxKKTU1Kvnz.woff2) format('woff2');unicode-range:U+1F00-1FFF}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu4WxKKTU1Kvnz.woff2) format('woff2');unicode-range:U+0370-03FF}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu7WxKKTU1Kvnz.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu7GxKKTU1Kvnz.woff2) format('woff2');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Roboto';font-style:normal;font-weight:400;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOmCnqEu92Fr1Mu4mxKKTU1Kg.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCRc4AMP6lbBP.woff2) format('woff2');unicode-range:U+0460-052F,U+1C80-1C88,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfABc4AMP6lbBP.woff2) format('woff2');unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCBc4AMP6lbBP.woff2) format('woff2');unicode-range:U+1F00-1FFF}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfBxc4AMP6lbBP.woff2) format('woff2');unicode-range:U+0370-03FF}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfCxc4AMP6lbBP.woff2) format('woff2');unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+1EA0-1EF9,U+20AB}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfChc4AMP6lbBP.woff2) format('woff2');unicode-range:U+0100-024F,U+0259,U+1E00-1EFF,U+2020,U+20A0-20AB,U+20AD-20CF,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:'Roboto';font-style:normal;font-weight:700;font-display:swap;src:url(https://fonts.gstatic.com/s/roboto/v30/KFOlCnqEu92Fr1MmWUlfBBc4AMP6lQ.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+2074,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}</style></head>
vendor: 66 bytes, line 4
4<script async="" src="https://www.googletagmanager.com/gtag/js?id=
4G-X3WV7KH8PD
vendor: 11 bytes, line 4
4"></script>
4<script> 
vendor: 206 bytes, lines 4-8
4window.dataLayer = window.dataLayer || [];
5                    function gtag(){dataLayer.push(arguments);}
6                    gtag('js', new Date());
7                  
8                    gtag('config', '
8G-X3WV7KH8PD
vendor: 3 bytes, line 8
8');
8</script>
8<body class="palette-blue style-overflow"><div id="__next"><div id="page" class="site"><header id="masthead" class="site-header dark"><div class="site-header-wrap"><div class="site-header-inside"><div class="site-branding"><p class="profile"><a href="/"><img src="/images/IsaaxGMPerfilSquare2.png" class="avatar" alt="Isaac García Montes"/></a></p><div class="site-identity"><p class="site-title"><a href="/">Isaac García</a></p><p class="site-description">Software Engineer</p></div><button id="menu-toggle" class="menu-toggle"><span class="screen-reader-text">Menu</span><span class="icon-menu" aria-hidden="true"></span></button></div><nav id="main-navigation" class="site-navigation" aria-label="Main Navigation"><div class="site-nav-wrap"><div class="site-nav-inside"><ul class="menu"><li class="menu-item"><a href="/">Inicio</a></li><li class="menu-item"><a href="/blog/">Blog</a></li><li class="menu-item"><a href="/about/">Sobre mi</a></li><li class="menu-item"><a href="/contact/">Contacto</a></li></ul><div class="social-links"><a href="https://www.linkedin.com/in/isaaxgm/" target="_blank" rel="noopener" class="button button-icon"><svg class="icon" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433a2.062 2.062 0 01-2.063-2.065 2.064 2.064 0 112.063 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"></path></svg><span class="screen-reader-text">LinkedIn</span></a><a href="https://twitter.com/IsaaxGM" target="_blank" rel="noopener" class="button button-icon"><svg class="icon" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M23.954 4.569a10 10 0 01-2.825.775 4.958 4.958 0 002.163-2.723c-.951.555-2.005.959-3.127 1.184a4.92 4.92 0 00-8.384 4.482C7.691 8.094 4.066 6.13 1.64 3.161a4.822 4.822 0 00-.666 2.475c0 1.71.87 3.213 2.188 4.096a4.904 4.904 0 01-2.228-.616v.061a4.923 4.923 0 003.946 4.827 4.996 4.996 0 01-2.212.085 4.937 4.937 0 004.604 3.417 9.868 9.868 0 01-6.102 2.105c-.39 0-.779-.023-1.17-.067a13.995 13.995 0 007.557 2.209c9.054 0 13.999-7.496 13.999-13.986 0-.209 0-.42-.015-.63a9.936 9.936 0 002.46-2.548l-.047-.02z"></path></svg><span class="screen-reader-text">Twitter</span></a><a href="https://www.instagram.com/isaaxgm/" target="_blank" rel="noopener" class="button button-icon"><svg class="icon" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M12 0C8.74 0 8.333.015 7.053.072 5.775.132 4.905.333 4.14.63c-.789.306-1.459.717-2.126 1.384S.935 3.35.63 4.14C.333 4.905.131 5.775.072 7.053.012 8.333 0 8.74 0 12s.015 3.667.072 4.947c.06 1.277.261 2.148.558 2.913a5.885 5.885 0 001.384 2.126A5.868 5.868 0 004.14 23.37c.766.296 1.636.499 2.913.558C8.333 23.988 8.74 24 12 24s3.667-.015 4.947-.072c1.277-.06 2.148-.262 2.913-.558a5.898 5.898 0 002.126-1.384 5.86 5.86 0 001.384-2.126c.296-.765.499-1.636.558-2.913.06-1.28.072-1.687.072-4.947s-.015-3.667-.072-4.947c-.06-1.277-.262-2.149-.558-2.913a5.89 5.89 0 00-1.384-2.126A5.847 5.847 0 0019.86.63c-.765-.297-1.636-.499-2.913-.558C15.667.012 15.26 0 12 0zm0 2.16c3.203 0 3.585.016 4.85.071 1.17.055 1.805.249 2.227.415.562.217.96.477 1.382.896.419.42.679.819.896 1.381.164.422.36 1.057.413 2.227.057 1.266.07 1.646.07 4.85s-.015 3.585-.074 4.85c-.061 1.17-.256 1.805-.421 2.227a3.81 3.81 0 01-.899 1.382 3.744 3.744 0 01-1.38.896c-.42.164-1.065.36-2.235.413-1.274.057-1.649.07-4.859.07-3.211 0-3.586-.015-4.859-.074-1.171-.061-1.816-.256-2.236-.421a3.716 3.716 0 01-1.379-.899 3.644 3.644 0 01-.9-1.38c-.165-.42-.359-1.065-.42-2.235-.045-1.26-.061-1.649-.061-4.844 0-3.196.016-3.586.061-4.861.061-1.17.255-1.814.42-2.234.21-.57.479-.96.9-1.381.419-.419.81-.689 1.379-.898.42-.166 1.051-.361 2.221-.421 1.275-.045 1.65-.06 4.859-.06l.045.03zm0 3.678a6.162 6.162 0 100 12.324 6.162 6.162 0 100-12.324zM12 16c-2.21 0-4-1.79-4-4s1.79-4 4-4 4 1.79 4 4-1.79 4-4 4zm7.846-10.405a1.441 1.441 0 01-2.88 0 1.44 1.44 0 012.88 0z"></path></svg><span class="screen-reader-text">Instagram</span></a><a href="https://www.facebook.com/IsaaxGM" target="_blank" rel="noopener" class="button button-icon">
8<svg class="icon" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><path d="M23.998 12c0-6.628-5.372-12-11.999-12C5.372 0 0 5.372 0 12c0 5.988 4.388 10.952 10.124 11.852v-8.384H7.078v-3.469h3.046V9.356c0-3.008 1.792-4.669 4.532-4.669 1.313 0 2.686.234 2.686.234v2.953H15.83c-1.49 0-1.955.925-1.955 1.874V12h3.328l-.532 3.469h-2.796v8.384c5.736-.9 10.124-5.864 10.124-11.853z"></path></svg><span class="screen-reader-text">Facebook</span></a></div></div></div></nav></div></div></header><div id="content" class="site-content"><div class="inner"><main id="main" class="site-main"><article class="post post-full"><header class="post-header inner-sm"><h1 class="post-title underline">Guía para iniciar en la programación</h1></header><div class="post-image"><img src="/images/intro.jpg" alt="Portátil Encendida Haciendo Códigos De Computadora"/></div><div class="post-content inner-sm"><p><strong>Tal vez tengas interés, curiosidad o estas en el proceso de convertirte en un programador. Déjame darte una guía que te servirá para enfocarte en los puntos cruciales para aprender a programar.</strong></p><h3 id="0--pasión-por-el-desarrollo-de-software"><strong>[0]  Pasión por el desarrollo de software.</strong></h3><p>Lo más esencial que se requiere para esto es la motivación adecuada, así como lo estas leyendo, sin la motivación adecuada, al primer fallo caerás en frustración y posiblemente terminaras renunciando a esta gran idea. </p><p>Te encontraras con muchos retos, bloqueos y frustraciones. No te desmotives desde ahora simplemente te muestro el panorama completo para que te des cuenta que todos pasamos por esto, incluso a veces muy seguido, pero nuestra cualidad es que siempre superamos cada reto que se nos ponga enfrente, cuando hayas superado uno a uno de los bloqueos la satisfacción será grandísima,  es como tener un disparo de dopamina cada vez que logras resolver el problema que tenías enfrente, es tan satisfactorio que te lleva a tener una pasión por el desarrollo de software.</p><p>Un punto clave para superar esos momentos de estrés y frustración, es realizar una introspección, tener bien fundamentado por qué quieres aprender a programar, que meta quieres lograr con esto y sobre todo tener claro que beneficios personales obtendrás de este nuevo skill.</p><p><em>Ahora sí, ya que tienes bien definido tu objetivo veamos por dónde empezar.</em></p><h3 id="1-desarrolla-tu-lógica"><strong>[1] Desarrolla tu lógica.</strong></h3><p>No importa como esté tu lógica sin duda es algo que puedes trabajar y con la práctica obtener una lógica muy fina. La lógica es fundamental para programar, sin ella no llegaras muy lejos, incluso si aprendieras toda la sintaxis del lenguaje de programación y no tienes la lógica, no podrás realizar gran cosa.</p><p>Te preguntaras ¿cómo se aplica la lógica en la programación? Se aplica en la resolución de un problema mediante un algoritmo. La lógica te dicta si debes emplear alguna condición, una iteración en código, que tipo de variables vas a utilizar o que estructura de datos necesitas, en pocas palabras la lógica es la que aplicas para resolver un problema en específico dependiendo que tan afinada este tu lógica y el dominio que tengas del lenguaje de programación tu algoritmo será más optimo o menos optimo con relación a ambas cuestiones. La lógica y conocimiento del lenguaje de programación es fundamental para un buen desarrollo de software.</p><h3 id="2-aprender-estructura-de-datos"><strong>[2] Aprender Estructura de Datos.</strong></h3><p><img src="../../images/Estructuras_Datos.png" alt="Tabla patrones de diseño"/></p><p>Las estructuras de datos son necesarias en todos los lenguajes de programación, incluso el simple hecho de estudiarlas y practicarlas ayuda bastante para afinar la lógica.</p><p>Entendamos por estructura de datos como las diferentes formas de organizar la información para poder manipular de manera eficiente los datos.</p><p>Pero ¿Qué quiere decir todo esto? Esencialmente es la forma en la que puedo almacenar los datos en memoria para aprovechar de manera correcta los recursos de la máquina para que puedan ser procesados rápidamente.</p><p><strong>Ejemplos de estructura de datos:</strong></p><ul><li>Arreglos o vectores.</li><li>Listas enlazadas.</li><li>Pilas.</li><li>Colas.</li><li>Tablas Hash.</li><li>Árboles y Grafos.</li></ul><h3 id="3-entender-los-diferentes-paradigmas-de-programación">[3] Entender los diferentes paradigmas de programación.</h3><p>Paradigma de programación es la forma en la que debes programar, dicho de otro modo, dicta las reglas de como debes estructurar el código. Existen varios paradigmas en el cual cada lenguaje esta basado para programar de forma ordenada según sus reglas. Hay que recalcar que existen lenguajes que son multiparadigma.</p><p><em>Algunos de los paradigmas de programación más populares son:</em></p><p><strong>Programación estructurada.</strong>
8 Conlleva en combinar 3 estructuras básicas:</p><ul><li><strong>Estructura secuencial:</strong> Programación lineal y subrutina.</li><li><strong>Estructura de alternativas:</strong> Uso de condicionales como if, else if y else.</li><li><strong>Estructura repetitiva:</strong> El uso de recursividad o ciclos como for, while o do while.</li></ul><p>Algunos lenguajes que utilizan la programación estructurada son: C, C++, Cobol o Ensamblador.</p><p><em><strong>Programación Orientada a Objetos (POO):</strong></em> Modelas tu programa como objetos, estos objetos tienen atributos y comportamientos (funciones). Lenguajes que utilizan POO Java, Python, JavaScript o C#.</p><p><em><strong>Programación funcional:</strong></em> No hay ciclos ni condicionales, el programa es un conjunto de funciones, siempre devuelve el mismo valor data la misma entrada. Por ejemplo: Pearl, Ruby, Scala, LISP.</p><p><em><strong>Programación declarativa:</strong></em> No defines las instrucciones para describir como se hacen las cosas si no que defines que se hace. Solo se específica que quieres obtener, por ejemplo: SQL, Prolog, Miranda, Angular.</p><p><em><strong>Programación reactiva:</strong></em> Trabaja con el flujo de datos de forma asíncrona dependiendo de los datos desencadena una reacción. Es decir, cuando hay un cambio en el estado de un objeto los otros objetos son notificados y realizan una acción de acuerdo con dicho estado.</p><p>Muchos lenguajes tienen su librería para poder trabajar con programación reactiva, aquí algunos: <em>Java:</em> <strong>RxJAva</strong>, <em>Go:</em> <strong>RxGo</strong>, <em>JavaScript:</em> <strong>RxJS</strong>, etc.</p><h3 id="4-realizar-pruebas-unitarias-unit-testing"><strong>[4] Realizar pruebas unitarias (Unit Testing).</strong></h3><p>Siempre que se está programando, lo lógico es probar tu código de manera local ya sea ejecutando esa parte de código que estas creando o modificando. Una buena practica es tener automatizadas esas pruebas y se logra mediante las pruebas unitarias.</p><p>Las pruebas unitarias son la forma de probar tu código de forma individual y aislada. Su propósito es comprobar que esa parte de tu código funcione correctamente, debe devolver el resultado esperado con los parámetros enviados o incluso validar que en caso de error tenga un comportamiento adecuado o proceda con el flujo establecido.</p><p><em>Deben cumplir con las siguientes características:</em></p><ul><li><p><strong>Rápidas:</strong> Deben tomar poco tiempo en ejecutarse.</p></li><li><p><strong>Aisladas:</strong> Deben ejecutarse de forma aislada sin depender de factores externos.</p></li><li><p><strong>Repetible:</strong> Con los mismos parámetros el resultado siempre debe ser el mismo.</p></li><li><p><strong>Auto verificable:</strong> De forma automática las Unit Test deben ser capaz de validar si la prueba fue exitosa o no.</p></li></ul><p>Para cada lenguaje de programación existen diferentes frameworks que te ayudan a realizar las pruebas unitarias de forma controlada. Este es un listado de los frameworks utilizado para estos lenguajes:</p><ul><li><em>Java:</em>  <strong>Junit Test</strong></li><li><em>.NET:</em>  <strong>xUnit o NUnit</strong></li><li><em>PHP:</em>  <strong>PHPUnit</strong></li><li><em>Python:</em>  <strong>UnitTest o Pytest</strong></li></ul><blockquote><p><strong>NOTA:</strong></p></blockquote><p><em>Algo que siempre debes tener en mente es que además a las pruebas unitarias, incluso además a las pruebas de integración, la responsabilidad de un desarrollador es validar que tu código se ejecute correctamente en donde sea que esté desplegado tu programa. Debes tener la certeza que tu software, programa o aplicación funcione correctamente en todos los escenarios.</em></p><h3 id="5-aprende-patrones-de-diseño">[5] Aprende patrones de diseño.</h3><p>Hablar de patrones de diseño ya es un tema avanzado, ya que requieres dominar la programación orientada a objetos (POO), conocer a profundidad el lenguaje de programación para determinar que patrón de diseño se adapta mas a las necesidades del software a desarrollar.</p><p>Los patrones de diseño son como planos prefabricados, reutilizables y que se puede personalizar para resolver un problema conocido o recurrente en el diseño de softw
8are. </p><p>Cada patrón explica el problema y su solución, nos da la estructura de clases y como se deben relacionar. <em>Se clasifican en 3 grupos:</em></p><p><strong>Patrones creacionales:</strong> Cuando se tiene una jerarquía de clases compleja da solución a la creación de objetos, incrementando la flexibilidad y la reutilización de código.</p><p><strong>Patrones de comportamiento:</strong> Nos ayuda a tener una comunicación efectiva entre clases u objetos distribuyendo las responsabilidades entre estos de forma organizada.</p><p><strong>Patrones estructurales:</strong> Explica como utilizar estructura de datos complejas facilitando el ensamble de objetos manteniendo la eficiencia de la estructura.</p><p><img src="../../images/Tabla_Patrones_Disenio.png" alt="Tabla patrones de diseño"/></p><h3 id="6-ser-autodidacta">[6] Ser autodidacta.</h3><p>Algo obligado es que debes estar en constante investigación y siempre aprendiendo las nuevas tecnologías.  Cada vez surgen nuevos lenguajes, nuevos frameworks, nuevas formas de montar y estructurar una aplicación. Es un área que nunca deja de evolucionar por lo tanto te ves obligado a nunca parar de aprender.</p><p>Esa pasión que ya adquiriste en un inicio te llevara siempre a querer aprender esa nueva tecnología que está surgiendo y solo así es como nunca dejaras de ser obsoleto.</p><blockquote><p><strong>Conclusión</strong></p></blockquote><p>Si bien podrás pensar que es demasiado camino por recorrer y la verdad es que si, no es algo que se domina de la noche a la mañana, pero lo interesante del desarrollo de software es que puedes empezar poco a poco viendo tangiblemente tu progreso de forma inmediata. Esto es algo que fácilmente puedes empezar con lo más básico, literalmente a prueba y error. Lo único que requieres es una computadora, internet, ser autodidacta y constancia.</p><p>Cabe recalcar que tu obligación es volverte un experto en tu área, ahondando y dominando cada concepto y tecnología que vayas aprendiendo, siempre programando con las mejores prácticas, volverte todo un profesional en el desarrollo de software, ya que el mundo necesita tu talento y la mejor versión de ti.</p><p><em>Ahora sí, enfócate en el lenguaje de programación que mas te guste, investiga que requieres instalar en tu computadora para que empieces a tirar tus primeras líneas de código y te veo del otro lado colega.</em></p></div><footer class="post-meta inner-sm"><time class="published" dateTime="2022-05-18 00:00">Wednesday, May 18, 2022</time></footer></article></main><footer id="colophon" class="site-footer inner-sm"><p class="site-info"><span class="copyright">© IsaaxGM. ALL RIGHTS RESERVED</span></p><a href="#page" id="to-top" class="to-top"><span class="icon-arrow-up" aria-hidden="true"></span><span class="screen-reader-text">Back to top</span></a></footer></div></div></div></div>
8<script src="/js/plugins.js"></script>
8<script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"path":"/posts/guia-programacion","page":{"__metadata":{"id":"content/pages/posts/guia-programacion.md","source":"sourcebit-source-filesystem","sourceName":"pages","sourcePath":"content/pages","relSourcePath":"posts/guia-programacion.md","relProjectPath":"content/pages/posts/guia-programacion.md","modelType":"page","modelName":"post","modelLabel":"Post","urlPath":"/posts/guia-programacion"},"title":"Guía para iniciar en la programación","excerpt":"Tal vez tengas interés, curiosidad o estas en el proceso de convertirte en un programador. Déjame darte una guía que te servirá para enfocarte en los puntos cruciales para aprender a programar.","date":"2022-05-18","thumb_img_path":"/images/intro.jpg","thumb_img_alt":"Portátil Encendida Haciendo Códigos De Computadora","content_img_path":"/images/intro.jpg","content_img_alt":"Portátil Encendida Haciendo Códigos De Computadora","seo":{"title":"Guía para iniciar en la programación","description":"Tal vez tengas interés, curiosidad o estas en el proceso de convertirte en un programador. Déjame darte una guía que te servirá para enfocarte en los puntos cruciales para aprender a programar.","extra":[{"name":"og:type","value":"article","keyName":"property"},{"name":"og:title","value":"Guía para iniciar en la programación","keyName":"property"},{"name":"og:description","value":"Tal vez tengas interés, curiosidad o estas en el proceso de convertirte en un programador. Déjame darte una guía que te servirá para enfocarte en los puntos cruciales para aprender a programar.","keyName":"property"},{"name":"og:image","value":"images/intro.jpg","keyName":"property","relativeUrl":true},{"name":"twitter:card","value":"summary_large_image"},{"name":"twitter:title","value":"Guía para iniciar en la programación"},{"name":"twitter:description","value":"Tal vez tengas interés, curiosidad o estas en el proceso de convertirte en un programador. Déjame darte una guía que te servirá para enfocarte en los puntos cruciales para aprender a programar."},{"name":"twitter:image","value":"images/intro.jpg","relativeUrl":true}]},"layout":"post","markdown_content":"**Tal vez tengas interés, curiosidad o estas en el proceso de convertirte en un programador. Déjame darte una guía que te servirá para enfocarte en los puntos cruciales para aprender a programar.**\n\n### **[0]  Pasión por el desarrollo de software.**\n\nLo más esencial que se requiere para esto es la motivación adecuada, así como lo estas leyendo, sin la motivación adecuada, al primer fallo caerás en frustración y posiblemente terminaras renunciando a esta gran idea. \n\nTe encontraras con muchos retos, bloqueos y frustraciones. No te desmotives desde ahora simplemente te muestro el panorama completo para que te des cuenta que todos pasamos por esto, incluso a veces muy seguido, pero nuestra cualidad es que siempre superamos cada reto que se nos ponga enfrente, cuando hayas superado uno a uno de los bloqueos la satisfacción será grandísima,  es como tener un disparo de dopamina cada vez que logras resolver el problema que tenías enfrente, es tan satisfactorio que te lleva a tener una pasión por el desarrollo de software.\n\nUn punto clave para superar esos momentos de estrés y frustración, es realizar una introspección, tener bien fundamentado por qué quieres aprender a programar, que meta quieres lograr con esto y sobre todo tener claro que beneficios personales obtendrás de este nuevo skill.\n\n*Ahora sí, ya que tienes bien definido tu objetivo veamos por dónde empezar.*\n\n### **[1] Desarrolla tu lógica.**\n\nNo importa como esté tu lógica sin duda es algo que puedes trabajar y con la práctica obtener una lógica muy fina. La lógica es fundamental para programar, sin ella no llegaras muy lejos, incluso si aprendieras toda la sintaxis del lenguaje de programación y no tienes la lógica, no podrás realizar gran cosa.\n\nTe preguntaras ¿cómo se aplica la lógica en la programación? Se aplica en la resolución de un problema mediante un algoritmo. La lógica te dicta si debes emplear alguna condición, una iteración en código, que tipo de variables vas a utilizar o que estructura de datos necesitas, en pocas palabras la lógica es la que aplicas para resolver un problema en específico dependiendo que tan afinada este tu lógica y el dominio que tengas del lenguaje de programación tu algoritmo será más optimo o menos optimo con relación a ambas cuestiones. La lógica y conocimiento del lenguaje de programación es fundamental para un buen desarrollo de softw
8are.\n\n### **[2] Aprender Estructura de Datos.**\n\n![Tabla patrones de diseño](../../images/Estructuras_Datos.png)\n\nLas estructuras de datos son necesarias en todos los lenguajes de programación, incluso el simple hecho de estudiarlas y practicarlas ayuda bastante para afinar la lógica.\n\nEntendamos por estructura de datos como las diferentes formas de organizar la información para poder manipular de manera eficiente los datos.\n\nPero ¿Qué quiere decir todo esto? Esencialmente es la forma en la que puedo almacenar los datos en memoria para aprovechar de manera correcta los recursos de la máquina para que puedan ser procesados rápidamente.\n\n**Ejemplos de estructura de datos:**\n\n+ Arreglos o vectores.\n+ Listas enlazadas.\n+ Pilas.\n+ Colas.\n+ Tablas Hash.\n+ Árboles y Grafos.\n\n\n### [3] Entender los diferentes paradigmas de programación.\n\nParadigma de programación es la forma en la que debes programar, dicho de otro modo, dicta las reglas de como debes estructurar el código. Existen varios paradigmas en el cual cada lenguaje esta basado para programar de forma ordenada según sus reglas. Hay que recalcar que existen lenguajes que son multiparadigma.\n\n*Algunos de los paradigmas de programación más populares son:*\n\n**Programación estructurada.** Conlleva en combinar 3 estructuras básicas:\n\n+ **Estructura secuencial:** Programación lineal y subrutina.\n+ **Estructura de alternativas:** Uso de condicionales como if, else if y else.\n+ **Estructura repetitiva:** El uso de recursividad o ciclos como for, while o do while.\n\nAlgunos lenguajes que utilizan la programación estructurada son: C, C++, Cobol o Ensamblador.\n\n***Programación Orientada a Objetos (POO):*** Modelas tu programa como objetos, estos objetos tienen atributos y comportamientos (funciones). Lenguajes que utilizan POO Java, Python, JavaScript o C#.\n\n***Programación funcional:*** No hay ciclos ni condicionales, el programa es un conjunto de funciones, siempre devuelve el mismo valor data la misma entrada. Por ejemplo: Pearl, Ruby, Scala, LISP.\n\n***Programación declarativa:*** No defines las instrucciones para describir como se hacen las cosas si no que defines que se hace. Solo se específica que quieres obtener, por ejemplo: SQL, Prolog, Miranda, Angular.\n\n***Programación reactiva:*** Trabaja con el flujo de datos de forma asíncrona dependiendo de los datos desencadena una reacción. Es decir, cuando hay un cambio en el estado de un objeto los otros objetos son notificados y realizan una acción de acuerdo con dicho estado.\n\nMuchos lenguajes tienen su librería para poder trabajar con programación reactiva, aquí algunos: *Java:* **RxJAva**, *Go:* **RxGo**, *JavaScript:* **RxJS**, etc.\n\n### **[4] Realizar pruebas unitarias (Unit Testing).**\n\nSiempre que se está programando, lo lógico es probar tu código de manera local ya sea ejecutando esa parte de código que estas creando o modificando. Una buena practica es tener automatizadas esas pruebas y se logra mediante las pruebas unitarias.\n\nLas pruebas unitarias son la forma de probar tu código de forma individual y aislada. Su propósito es comprobar que esa parte de tu código funcione correctamente, debe devolver el resultado esperado con los parámetros enviados o incluso validar que en caso de error tenga un comportamiento adecuado o proceda con el flujo establecido.\n\n*Deben cumplir con las siguientes características:*\n\n+ **Rápidas:** Deben tomar poco tiempo en ejecutarse.\n\n+ **Aisladas:** Deben ejecutarse de forma aislada sin depender de factores externos.\n\n+ **Repetible:** Con los mismos parámetros el resultado siempre debe ser el mismo.\n\n+ **Auto verificable:** De forma automática las Unit Test deben ser capaz de validar si la prueba fue exitosa o no.\n\nPara cada lenguaje de programación existen diferentes frameworks que te ayudan a realizar las pruebas unitarias de forma controlada. Este es un listado de los frameworks utilizado para estos lenguajes:\n\n+ *Java:*  **Junit Test**\n+ *.NET:*  **xUnit o NUnit**\n+ *PHP:*  **PHPUnit**\n+ *Python:*  **UnitTest o Pytest**\n\n\u003e**NOTA:**\n\n*Algo que siempre debes tener en mente es que además a las pruebas unitarias, incluso además a las pruebas de integración, la responsabilidad de un desarrollador es validar que tu código se ejecute correctamente en donde sea que esté desplegado tu programa. Debes tener la certeza que tu software, programa o aplicación funcione correctamente en todos los escenarios.*\n\n### [5] Aprende patrones de diseño.\n\nHablar de patrones de diseño ya es un tema avanzado, ya que requieres dominar la programación orientada a objetos (POO), conocer a profundidad el lenguaje de programación para determinar que patrón de diseño se adapta mas a las necesidades del software a desarrollar.\n\nLos patrones de diseño son como planos prefabricados, reutilizables y que se puede personalizar para resolver un problema conocido o recurrente en el diseño de softw
8are. \n\nCada patrón explica el problema y su solución, nos da la estructura de clases y como se deben relacionar. *Se clasifican en 3 grupos:*\n\n**Patrones creacionales:** Cuando se tiene una jerarquía de clases compleja da solución a la creación de objetos, incrementando la flexibilidad y la reutilización de código.\n\n**Patrones de comportamiento:** Nos ayuda a tener una comunicación efectiva entre clases u objetos distribuyendo las responsabilidades entre estos de forma organizada.\n\n**Patrones estructurales:** Explica como utilizar estructura de datos complejas facilitando el ensamble de objetos manteniendo la eficiencia de la estructura.\n\n![Tabla patrones de diseño](../../images/Tabla_Patrones_Disenio.png)\n\n### [6] Ser autodidacta.\n\nAlgo obligado es que debes estar en constante investigación y siempre aprendiendo las nuevas tecnologías.  Cada vez surgen nuevos lenguajes, nuevos frameworks, nuevas formas de montar y estructurar una aplicación. Es un área que nunca deja de evolucionar por lo tanto te ves obligado a nunca parar de aprender.\n\nEsa pasión que ya adquiriste en un inicio te llevara siempre a querer aprender esa nueva tecnología que está surgiendo y solo así es como nunca dejaras de ser obsoleto.\n\n\u003e**Conclusión**\n\nSi bien podrás pensar que es demasiado camino por recorrer y la verdad es que si, no es algo que se domina de la noche a la mañana, pero lo interesante del desarrollo de software es que puedes empezar poco a poco viendo tangiblemente tu progreso de forma inmediata. Esto es algo que fácilmente puedes empezar con lo más básico, literalmente a prueba y error. Lo único que requieres es una computadora, internet, ser autodidacta y constancia.\n\nCabe recalcar que tu obligación es volverte un experto en tu área, ahondando y dominando cada concepto y tecnología que vayas aprendiendo, siempre programando con las mejores prácticas, volverte todo un profesional en el desarrollo de software, ya que el mundo necesita tu talento y la mejor versión de ti.\n\n*Ahora sí, enfócate en el lenguaje de programación que mas te guste, investiga que requieres instalar en tu computadora para que empieces a tirar tus primeras líneas de código y te veo del otro lado colega.*\n\n"},"pages":[{"__metadata":{"id":"content/pages/about.md","source":"sourcebit-source-filesystem","sourceName":"pages","sourcePath":"content/pages","relSourcePath":"about.md","relProjectPath":"content/pages/about.md","modelType":"page","modelName":"page","modelLabel":"Page","urlPath":"/about"},"title":"Sobre mí","subtitle":"Una breve descripción acerca de mí y mi trabajo.","img_path":"/images/Isaac_Garcia_Berlin.jpg","img_alt":"Isaac García Montes en Berlín","seo":{"title":"Sobre Isaac García Montes IsaaxGM","description":"Software Engineer - Java Backend Developer - WEB3.0","extra":[{"name":"og:type","value":"website","keyName":"property"},{"name":"og:title","value":"Sobre Isaac García Montes IsaaxGM","keyName":"property"},{"name":"og:description","value":"Software Engineer - Java Backend Developer - WEB3.0","keyName":"property"},{"name":"og:image","value":"images/Isaac_Garcia_Berlin.jpg","keyName":"property","relativeUrl":true},{"name":"twitter:card","value":"summary_large_image"},{"name":"twitter:title","value":"Sobre Isaac García Montes IsaaxGM"},{"name":"twitter:description","value":"Software Engineer - Java Backend Developer - WEB3.0"},{"name":"twitter:image","value":"images/Isaac_Garcia_Berlin.jpg","relativeUrl":true}]},"layout":"page","markdown_content":"**Isaac García Montes** es un Java backend developer de Cuernavaca, Morelos, México. Siendo TSU y haber pasado por la carrera de Ciencias de la Computación, en 2012 ya teniendo una seguridad en programación me ofrecieron mi primer empleo como desarrollador gracias a un curso el cual la intención era captar talento. Así recibí una capacitación y mi primer trabajo como developer en C#. Actualmente enfocado totalmente en Java y desarrollando aplicaciones web. En 2019 pude obtener mi titulo de Ingeniero y mi preparación ha sido constante.\n\nHe laborado para empresas bancarias tanto nacionales como extranjeras, desarrollos web para control interno de empresas privadas, actualmente desarrollando una aplicación web para la gestión y seguimiento de identificación vehicular.\n\n\u003e Sólo podemos ver poco del futuro, pero lo suficiente para darnos cuenta de que hay mucho que hacer.\n\u003e\n\u003e ###### *Alan Turing*\n\nActualmente estudiando Data Science y Web 3.0.\n\n*¡Gracias por llegar hasta aquí!*\n"},{"__metadata":{"id":"content/pages/blog/index.md","source":"sourcebit-source-filesystem","sourceName":"pages","sourcePath":"content/pages","relSourcePath":"blog/index.md","relProjectPath":"content/pages/blog/index.md","modelType":"page","modelName":"blog","modelLabel":"Blog","urlPath":"/blog"},"title":"Blog","seo":{"title":"Blog","description":"This is the blog page","extra":[{"name":"og:type","value":"website","keyName":"property"},{"name":"og:title","value":"Blog","keyName":"property"},{"name":"og:description","value":"This is the blog page","keyName":"property"},{"name":"og:image","value":"images/1.jpg","keyName":"property","relativeUrl":true},{"name":"twitter:card","value":"summary_large_image"},{"name":"twitter:title","value":"Blog"},{"name":"twitter:description","value":"This is the blog page"},{"name":"twitter:image","value":"images/1.jpg","relativeUrl":true}]},"layout":"blog","markdown_content":null},{"__metadata":{"id":"content/pages/contact.md","source":"sourcebit-source-filesystem","sourceName":"pages","sourcePath":"content/pages","relSourcePath":"contact.md","relProjectPath":"content/pages/contact.md","modelType":"page","modelName":"advanced","modelLabel":"Advanced Page","urlPath":"/contact"},"title":"Contacto","hide_title":false,"sections":[{"section_id":"contact-form","type":"section_form","content":"Para ponerse en contacto por favor complete el siguiente formulario.\n","form_id":"contactForm","form_action":"/thank-you","form_fields":[{"input_type":"text","name":"name","label":"Nombre","default_value":"Your name","
8is_required":true},{"input_type":"email","name":"email","label":"Email","default_value":"Your email address","is_required":true},{"input_type":"select","name":"subject","label":"Asunto","default_value":"Please select","options":["Error en el sitio","Patrocinio","Colaborar","Otro"]},{"input_type":"textarea","name":"message","label":"Mensaje","default_value":"Your message"},{"input_type":"checkbox","name":"consent","label":"Entiendo que este formulario está almacenando mi información enviada para que puedan ser contactados.","is_required":true}],"submit_label":"enviar"}],"seo":{"title":"Contact","description":"This is the contact page","extra":[{"name":"og:type","value":"website","keyName":"property"},{"name":"og:title","value":"Contact","keyName":"property"},{"name":"og:description","value":"This is the contact page","keyName":"property"},{"name":"twitter:card","value":"summary"},{"name":"twitter:title","value":"Contact"},{"name":"twitter:description","value":"This is the contact page"}]},"layout":"advanced","markdown_content":null},{"__metadata":{"id":"content/pages/index.md","source":"sourcebit-source-filesystem","sourceName":"pages","sourcePath":"content/pages","relSourcePath":"index.md","relProjectPath":"content/pages/index.md","modelType":"page","modelName":"advanced","modelLabel":"Advanced Page","urlPath":"/"},"title":"Home","hide_title":true,"sections":[{"section_id":"hero","type":"section_hero","title":"Hola, soy Isaac García Montes.","content":"En este mundo tecnológico se requiere profesionales muy preparados y en constante evolución.\n"},{"section_id":"about","type":"section_content","title":"sobre mi","content":"Soy **Ingeniero de Software Java** desde hace varios años, soy un apasionado de la tecnología y creo que el desarrollo de software puede mejorar la vida de muchas personas.\n\nLa ingeniería de software me ha cautivado a tal grado que no lo veo como mi trabajo, más bien es mi estilo de vida que me reta cada día.\n","actions":[{"label":"contáctame","url":"/contact","style":"button"}]},{"section_id":"recent-posts","type":"section_posts","title":"Posts RECIENTES","posts_number":4,"actions":[{"label":"VER Blog","url":"blog/index.html","style":"button"}]}],"seo":{"title":"Isaac García Montes | Java Software Engineer","description":"Ingeniero de Software Java desde hace varios años, soy un apasionado de la tecnología y creo que el desarrollo de software puede mejorar la vida de muchas personas.","extra":[{"name":"og:type","value":"website","keyName":"property"},{"name":"og:title","value":"Isaac García Montes | Java Software Engineer","keyName":"property"},{"name":"og:description","value":"Ingeniero de Software Java desde hace varios años, soy un apasionado de la tecnología y creo que el desarrollo de software puede mejorar la vida de muchas personas.","keyName":"property"},{"name":"og:image","value":"images/Isaac_Garcia_Berlin.jpg","keyName":"property","relativeUrl":true},{"name":"twitter:card","value":"summary_large_image"},{"name":"twitter:title","value":"Isaac García Montes | Java Software Engineer"},{"name":"twitter:description","value":"Ingeniero de Software Java desde hace varios años, soy un apasionado de la tecnología y creo que el desarrollo de software puede mejorar la vida de muchas personas."},{"name":"twitter:image","value":"images/Isaac_Garcia_Berlin.jpg","relativeUrl":true}]},"layout":"advanced","markdown_content":null},{"__metadata":{"id":"content/pages/posts/aprender-programar.md","source":"sourcebit-source-filesystem","sourceName":"pages","sourcePath":"content/pages","relSourcePath":"posts/aprender-programar.md","relProjectPath":"content/pages/posts/aprender-programar.md","modelType":"page","modelName":"post","modelLabel":"Post","urlPath":"/posts/aprender-programar"},"title":"¿Debería aprender a programar?","excerpt":"El futuro se escribe cada día y siempre va de la mano de la tecnología. El desarrollo de software se puede volver un hobby muy redituable.","date":"2021-10-23","thumb_img_path":"/images/portatil_Codigos_Computadora.jpg","thumb_img_alt":"Portátil Encendida Haciendo Códigos De Computadora","content_img_path":"/images/portatil_Codigos_Computadora.jpg","content_img_alt":"Portátil Encendida Haciendo Códigos De Computadora","seo":{"title":"¿Debería aprender a programar?","description":"El futuro se escribe cada día y siempre va de la mano de la tecnología","extra":[{"name":"og:type","value":"article","keyName":"property"},{"name":"og:title","value":"¿Debería aprender a programar?","keyName":"property"},{"name":"og:description","value":"El futuro se escribe cada día y siempre va de la mano de la tecnología","keyName":"property"},{"name":"og:image","value":"images/portatil_Codigos_Computadora.jpg","keyName":"property","relativeUrl":true},{"name":"twitter:card","value":"summary_large_image"},{"name":"twitter:title","value":"¿Debería aprender a programar?"},{"name":"twitter:description","value":"El futuro se escribe cada día y siempre va de la mano de la tecnología"},{"name":"twitter:image","value":"images/portatil_Codigos_Computadora.jpg","relativeUrl":true}]},"layout":"post","markdown_content":"*El futuro se escribe cada día y siempre va de la mano de la tecnología*. El desarrollo de softw
8are se puede volver un hobby muy redituable.\n\n**No importa tu profesión u oficio** te puede ayudar a resolver una necesidad en tu área, automatizar un proceso o crear una aplicación que te facilite la vida. Teniendo esta habilidad te puedes abrir camino tu solo y adaptarlo completamente a tus necesidades.\n\n**Mejoraran tus ingresos** indudablemente, aunque no debe ser tu mayor motivación, pero si hay que decir que es una de las áreas bien pagadas. Ya sea que te decidas a dejar tu trabajo actual o ser un freelance en tus ratos libres, sin duda tus ingresos incrementaran.\n\n**La tecnología cambia tu visión**. Cuando te adentras en el desarrollo de software veras de forma distinta la tecnología y podrás apreciar todos sus beneficios, la veras como una herramienta de trabajo, internet será tu maestro y tu guía, ya no querrás perder el tiempo viendo videos de gatitos (bueno tal vez solo un poco) sino tendrás la ambición de seguir aprendiendo mas día con día.\n\n**Mejora tu pensamiento analítico.** Tu forma de pensar será más minuciosa, mejoraras en la resolución de problemas. Tendrás la habilidad de abstraer una idea y plasmarla en código. El simple hecho de empezar a estudiar programación tu lógica se empieza a agudizar y tu cerebro trabaja más que nunca.\n\n**No serás obsoleto.** Siempre y cuando te mantengas en constante aprendizaje será muy difícil que te vuelvas obsoleto. La tecnología evoluciona constantemente y si o si tienes que evolucionar con ella.\n"},{"__metadata":{"id":"content/pages/posts/guia-programacion.md","source":"sourcebit-source-filesystem","sourceName":"pages","sourcePath":"content/pages","relSourcePath":"posts/guia-programacion.md","relProjectPath":"content/pages/posts/guia-programacion.md","modelType":"page","modelName":"post","modelLabel":"Post","urlPath":"/posts/guia-programacion"},"title":"Guía para iniciar en la programación","excerpt":"Tal vez tengas interés, curiosidad o estas en el proceso de convertirte en un programador. Déjame darte una guía que te servirá para enfocarte en los puntos cruciales para aprender a programar.","date":"2022-05-18","thumb_img_path":"/images/intro.jpg","thumb_img_alt":"Portátil Encendida Haciendo Códigos De Computadora","content_img_path":"/images/intro.jpg","content_img_alt":"Portátil Encendida Haciendo Códigos De Computadora","seo":{"title":"Guía para iniciar en la programación","description":"Tal vez tengas interés, curiosidad o estas en el proceso de convertirte en un programador. Déjame darte una guía que te servirá para enfocarte en los puntos cruciales para aprender a programar.","extra":[{"name":"og:type","value":"article","keyName":"property"},{"name":"og:title","value":"Guía para iniciar en la programación","keyName":"property"},{"name":"og:description","value":"Tal vez tengas interés, curiosidad o estas en el proceso de convertirte en un programador. Déjame darte una guía que te servirá para enfocarte en los puntos cruciales para aprender a programar.","keyName":"property"},{"name":"og:image","value":"images/intro.jpg","keyName":"property","relativeUrl":true},{"name":"twitter:card","value":"summary_large_image"},{"name":"twitter:title","value":"Guía para iniciar en la programación"},{"name":"twitter:description","value":"Tal vez tengas interés, curiosidad o estas en el proceso de convertirte en un programador. Déjame darte una guía que te servirá para enfocarte en los puntos cruciales para aprender a programar."},{"name":"twitter:image","value":"images/intro.jpg","relativeUrl":true}]},"layout":"post","markdown_content":"**Tal vez tengas interés, curiosidad o estas en el proceso de convertirte en un programador. Déjame darte una guía que te servirá para enfocarte en los puntos cruciales para aprender a programar.**\n\n### **[0]  Pasión por el desarrollo de software.**\n\nLo más esencial que se requiere para esto es la motivación adecuada, así como lo estas leyendo, sin la motivación adecuada, al primer fallo caerás en frustración y posiblemente terminaras renunciando a esta gran idea. \n\nTe encontraras con muchos retos, bloqueos y frustraciones. No te desmotives desde ahora simplemente te muestro el panorama completo para que te des cuenta que todos pasamos por esto, incluso a veces muy seguido, pero nuestra cualidad es que siempre superamos cada reto que se nos ponga enfrente, cuando hayas superado uno a uno de los bloqueos la satisfacción será grandísima,  es como tener un disparo de dopamina cada vez que logras resolver el problema que tenías enfrente, es tan satisfactorio que te lleva a tener una pasión por el desarrollo de softw
8are.\n\nUn punto clave para superar esos momentos de estrés y frustración, es realizar una introspección, tener bien fundamentado por qué quieres aprender a programar, que meta quieres lograr con esto y sobre todo tener claro que beneficios personales obtendrás de este nuevo skill.\n\n*Ahora sí, ya que tienes bien definido tu objetivo veamos por dónde empezar.*\n\n### **[1] Desarrolla tu lógica.**\n\nNo importa como esté tu lógica sin duda es algo que puedes trabajar y con la práctica obtener una lógica muy fina. La lógica es fundamental para programar, sin ella no llegaras muy lejos, incluso si aprendieras toda la sintaxis del lenguaje de programación y no tienes la lógica, no podrás realizar gran cosa.\n\nTe preguntaras ¿cómo se aplica la lógica en la programación? Se aplica en la resolución de un problema mediante un algoritmo. La lógica te dicta si debes emplear alguna condición, una iteración en código, que tipo de variables vas a utilizar o que estructura de datos necesitas, en pocas palabras la lógica es la que aplicas para resolver un problema en específico dependiendo que tan afinada este tu lógica y el dominio que tengas del lenguaje de programación tu algoritmo será más optimo o menos optimo con relación a ambas cuestiones. La lógica y conocimiento del lenguaje de programación es fundamental para un buen desarrollo de software.\n\n### **[2] Aprender Estructura de Datos.**\n\n![Tabla patrones de diseño](../../images/Estructuras_Datos.png)\n\nLas estructuras de datos son necesarias en todos los lenguajes de programación, incluso el simple hecho de estudiarlas y practicarlas ayuda bastante para afinar la lógica.\n\nEntendamos por estructura de datos como las diferentes formas de organizar la información para poder manipular de manera eficiente los datos.\n\nPero ¿Qué quiere decir todo esto? Esencialmente es la forma en la que puedo almacenar los datos en memoria para aprovechar de manera correcta los recursos de la máquina para que puedan ser procesados rápidamente.\n\n**Ejemplos de estructura de datos:**\n\n+ Arreglos o vectores.\n+ Listas enlazadas.\n+ Pilas.\n+ Colas.\n+ Tablas Hash.\n+ Árboles y Grafos.\n\n\n### [3] Entender los diferentes paradigmas de programación.\n\nParadigma de programación es la forma en la que debes programar, dicho de otro modo, dicta las reglas de como debes estructurar el código. Existen varios paradigmas en el cual cada lenguaje esta basado para programar de forma ordenada según sus reglas. Hay que recalcar que existen lenguajes que son multiparadigma.\n\n*Algunos de los paradigmas de programación más populares son:*\n\n**Programación estructurada.** Conlleva en combinar 3 estructuras básicas:\n\n+ **Estructura secuencial:** Programación lineal y subrutina.\n+ **Estructura de alternativas:** Uso de condicionales como if, else if y else.\n+ **Estructura repetitiva:** El uso de recursividad o ciclos como for, while o do while.\n\nAlgunos lenguajes que utilizan la programación estructurada son: C, C++, Cobol o Ensamblador.\n\n***Programación Orientada a Objetos (POO):*** Modelas tu programa como objetos, estos objetos tienen atributos y comportamientos (funciones). Lenguajes que utilizan POO Java, Python, JavaScript o C#.\n\n***Programación funcional:*** No hay ciclos ni condicionales, el programa es un conjunto de funciones, siempre devuelve el mismo valor data la misma entrada. Por ejemplo: Pearl, Ruby, Scala, LISP.\n\n***Programación declarativa:*** No defines las instrucciones para describir como se hacen las cosas si no que defines que se hace. Solo se específica que quieres obtener, por ejemplo: SQL, Prolog, Miranda, Angular.\n\n***Programación reactiva:*** Trabaja con el flujo de datos de forma asíncrona dependiendo de los datos desencadena una reacción. Es decir, cuando hay un cambio en el estado de un objeto los otros objetos son notificados y realizan una acción de acuerdo con dicho estado.\n\nMuchos lenguajes tienen su librería para poder trabajar con programación reactiva, aquí algunos: *Java:* **RxJAva**, *Go:* **RxGo**, *JavaScript:* **RxJS**, etc.\n\n### **[4] Realizar pruebas unitarias (Unit Testing).**\n\nSiempre que se está programando, lo lógico es probar tu código de manera local ya sea ejecutando esa parte de código que estas creando o modificando. Una buena practica es tener automatizadas esas pruebas y se logra mediante las pruebas unitarias.\n\nLas pruebas unitarias son la forma de probar tu código de forma individual y aislada. Su propósito es comprobar que esa parte de tu código funcione correctamente, debe devolver el resultado esperado con los parámetros enviados o incluso validar que en caso de error tenga un comportamiento adecuado o proceda con el flujo establecido.\n\n*Deben cumplir con las siguientes características:*\n\n+ **Rápidas:** Deben tomar poco tiempo en ejecutarse.\n\n+ **Aisladas:** Deben ejecutarse de forma aislada sin depender de factores externos.\n\n+ **Repetible:** Con los mismos parámetros el resultado siempre debe ser el mismo.\n\n+ **Auto verificable:** De forma automática las Unit Test deben ser capaz de validar si la prueba fue exitosa o no.\n\nPara cada lenguaje de programación existen diferentes frameworks que te ayudan a realizar las pruebas unitarias de forma controlada. Este es un listado de los frameworks utilizado para estos lenguajes:\n\n+ *Java:*  **Junit Test**\n+ *.NET:*  **xUnit o NUnit**\n+ *PHP:*  **PHPUnit**\n+ *Python:*  **UnitTest o Pytest**\n\n\u003e**NOTA:**\n\n*Algo que siempre debes tener en mente es que además a las pruebas unitarias, incluso además a las pruebas de integración, la responsabilidad de un desarrollador es validar que tu código se ejecute correctamente en donde sea que esté desplegado tu programa. Debes tener la certeza que tu software, programa o aplicación funcione correctamente en todos los escenarios.*\n\n### [5] Aprende patrones de diseño.\n\nHablar de patrones de diseño ya es un tema avanzado, ya que requieres dominar la programación orientada a objetos (POO), conocer a profundidad el lenguaje de programación para determinar que patrón de diseño se adapta mas a las necesidades del software a desarrollar.\n\nLos patrones de diseño son como planos prefabricados, reutilizables y que se puede personalizar para resolver un problema conocido o recurrente en el diseño de softw
8are. \n\nCada patrón explica el problema y su solución, nos da la estructura de clases y como se deben relacionar. *Se clasifican en 3 grupos:*\n\n**Patrones creacionales:** Cuando se tiene una jerarquía de clases compleja da solución a la creación de objetos, incrementando la flexibilidad y la reutilización de código.\n\n**Patrones de comportamiento:** Nos ayuda a tener una comunicación efectiva entre clases u objetos distribuyendo las responsabilidades entre estos de forma organizada.\n\n**Patrones estructurales:** Explica como utilizar estructura de datos complejas facilitando el ensamble de objetos manteniendo la eficiencia de la estructura.\n\n![Tabla patrones de diseño](../../images/Tabla_Patrones_Disenio.png)\n\n### [6] Ser autodidacta.\n\nAlgo obligado es que debes estar en constante investigación y siempre aprendiendo las nuevas tecnologías.  Cada vez surgen nuevos lenguajes, nuevos frameworks, nuevas formas de montar y estructurar una aplicación. Es un área que nunca deja de evolucionar por lo tanto te ves obligado a nunca parar de aprender.\n\nEsa pasión que ya adquiriste en un inicio te llevara siempre a querer aprender esa nueva tecnología que está surgiendo y solo así es como nunca dejaras de ser obsoleto.\n\n\u003e**Conclusión**\n\nSi bien podrás pensar que es demasiado camino por recorrer y la verdad es que si, no es algo que se domina de la noche a la mañana, pero lo interesante del desarrollo de software es que puedes empezar poco a poco viendo tangiblemente tu progreso de forma inmediata. Esto es algo que fácilmente puedes empezar con lo más básico, literalmente a prueba y error. Lo único que requieres es una computadora, internet, ser autodidacta y constancia.\n\nCabe recalcar que tu obligación es volverte un experto en tu área, ahondando y dominando cada concepto y tecnología que vayas aprendiendo, siempre programando con las mejores prácticas, volverte todo un profesional en el desarrollo de software, ya que el mundo necesita tu talento y la mejor versión de ti.\n\n*Ahora sí, enfócate en el lenguaje de programación que mas te guste, investiga que requieres instalar en tu computadora para que empieces a tirar tus primeras líneas de código y te veo del otro lado colega.*\n\n"},{"__metadata":{"id":"content/pages/style-guide.md","source":"sourcebit-source-filesystem","sourceName":"pages","sourcePath":"content/pages","relSourcePath":"style-guide.md","relProjectPath":"content/pages/style-guide.md","modelType":"page","modelName":"page","modelLabel":"Page","urlPath":"/style-guide"},"title":"Style Guide","subtitle":"The style guide provides you with a blueprint of default post and page styles. The style guide is also a great reference for suggested typographic treatment and styles for your content.","seo":{"title":"Theme Style Guide","description":"A reference for suggested typographic treatment and styles for your content","extra":[{"name":"og:type","value":"website","keyName":"property"},{"name":"og:title","value":"Theme Style Guide","keyName":"property"},{"name":"og:description","value":"A reference for suggested typographic treatment and styles for your content","keyName":"property"},{"name":"og:image","value":"images/1.jpg","keyName":"property","relativeUrl":true},{"name":"twitter:card","value":"summary_large_image"},{"name":"twitter:title","value":"Theme Style Guide"},{"name":"twitter:description","value":"A reference for suggested typographic treatment and styles for your content"},{"name":"twitter:image","value":"images/1.jpg","relativeUrl":true}]},"layout":"page","markdown_content":"\n**This is a paragraph**. Pellentesque habitant morbi *tristique senectus et netus et malesuada* fames ac turpis egestas. Vestibulum [tortor quam](https://www.google.com), feugiat vitae, ultricies eget, tempor sit amet, ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo. Quisque sit \u003cmark\u003eamet est et sapien ullamcorper\u003c/mark\u003e pharetra. Vestibulum erat wisi, condimentum sed, commodo vitae, ornare sit amet, wisi.\n\n# This is an H1\n\nQuisque facilisis erat a dui. Nam malesuada ornare dolor. Cras gravida, this is marked text ornare, erat elit consectetuer erat, id egestas pede nibh eget odio. Proin tincidunt, velit vel porta elementum, magna diam molestie sapien, non aliquet massa pede eu diam. Aliquam iaculis. Fusce et ipsum et nulla tristique facilisis.\n\n## This is an H2\n\nLorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat c
8ondimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero.\n\n### This is an H3\n\nLorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero.\n\n#### This is an H4\n\nQuisque facilisis erat a dui. Nam malesuada ornare dolor. Cras gravida, diam sit amet rhoncus ornare, erat elit consectetuer erat, id egestas pede nibh eget odio. Proin tincidunt, velit vel porta elementum, magna diam molestie sapien, non aliquet massa pede eu diam. Aliquam iaculis.\n\n## Quoting\n\n\u003eCreativity is allowing yourself to make mistakes. Design is knowing which ones to keep. \u003ccite\u003eScott Adams\u003c/cite\u003e\n\nLorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi commodo, ipsum sed pharetra gravida, orci magna rhoncus neque, id pulvinar odio lorem non turpis. Nullam sit amet enim. Suspendisse id velit vitae ligula volutpat condimentum. Aliquam erat volutpat. Sed quis velit. Nulla facilisi. Nulla libero.\n\n\u003chr /\u003e\n\n## Unordered Lists\n\n+ Donec non tortor in arcu mollis feugiat\n+ Lorem ipsum dolor sit amet, consectetuer adipiscing elit\n+ Donec id eros eget quam aliquam gravida\n+ Vivamus convallis urna id felis\n+ Nulla porta tempus sapien\n\n## Ordered Lists\n\n1. Donec non tortor in arcu mollis feugiat\n2. Lorem ipsum dolor sit amet, consectetuer adipiscing elit\n3. Donec id eros eget quam aliquam gravida\n4. Vivamus convallis urna id felis\n5. Nulla porta tempus sapien\n\n## Code Blocks\n\nBlocks of code are either fenced by lines with three back-ticks, or are indented with four spaces.\n\n```\n\u003c!-- Some example CSS code --\u003e\nbody {\n  color: #333;\n  font-family: Roboto, Helvetica, Arial, sans-serif;\n  line-height: 1.5;\n}\n```\n\n## Video Embeds\n\n\u003ciframe width=\"640\" height=\"360\" src=\"https://www.youtube.com/embed/wEG7x7jRhNQ\" title=\"YouTube video player\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen\u003e\u003c/iframe\u003e\n\n## Tables\n\n\u003cdiv class=\"responsive-table\"\u003e\n  \u003ctable\u003e\n    \u003ccaption\u003eSimple table with caption and header\u003c/caption\u003e\n    \u003cthead\u003e\n      \u003ctr\u003e\n        \u003cth\u003eColumn 1\u003c/th\u003e\n        \u003cth\u003eColumn 2\u003c/th\u003e\n        \u003cth\u003eColumn 3\u003c/th\u003e\n      \u003c/tr\u003e\n    \u003c/thead\u003e\n    \u003ctbody\u003e\n      \u003ctr\u003e\n        \u003ctd\u003eRow 1, Cell 1\u003c/td\u003e\n        \u003ctd\u003eRow 1, Cell 2\u003c/td\u003e\n        \u003ctd\u003eRow 1, Cell 3\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n        \u003ctd\u003eRow 2, Cell 1\u003c/td\u003e\n        \u003ctd\u003eRow 2, Cell 2\u003c/td\u003e\n        \u003ctd\u003eRow 2, Cell 3\u003c/td\u003e\n      \u003c/tr\u003e\n    \u003c/tbody\u003e\n  \u003c/table\u003e\n\u003c/div\u003e\n"},{"__metadata":{"id":"content/pages/thank-you.md","source":"sourcebit-source-filesystem","sourceName":"pages","sourcePath":"content/pages","relSourcePath":"thank-you.md","relProjectPath":"content/pages/thank-you.md","modelType":"page","modelName":"page","modelLabel":"Page","urlPath":"/thank-you"},"title":"Thank You!","img_path":"images/thank-you.jpg","img_alt":"Thank You Led Signage","layout":"page","markdown_content":"\nThank you for contacting me! I will get back in touch with you soon.\n\n**Have a great day!**"}],"posts":[{"__metadata":{"id":"content/pages/posts/aprender-programar.md","source":"sourcebit-source-filesystem","sourceName":"pages","sourcePath":"content/pages","relSourcePath":"posts/aprender-programar.md","relProjectPath":"content/pages/posts/aprender-programar.md","modelType":"page","modelName":"post","modelLabel":"Post","urlPath":"/posts/aprender-programar"},"title":"¿Debería aprender a programar?","excerpt":"El futuro se escribe cada día y siempre va de la mano de la tecnología. El desarrollo de softw
8are se puede volver un hobby muy redituable.","date":"2021-10-23","thumb_img_path":"/images/portatil_Codigos_Computadora.jpg","thumb_img_alt":"Portátil Encendida Haciendo Códigos De Computadora","content_img_path":"/images/portatil_Codigos_Computadora.jpg","content_img_alt":"Portátil Encendida Haciendo Códigos De Computadora","seo":{"title":"¿Debería aprender a programar?","description":"El futuro se escribe cada día y siempre va de la mano de la tecnología","extra":[{"name":"og:type","value":"article","keyName":"property"},{"name":"og:title","value":"¿Debería aprender a programar?","keyName":"property"},{"name":"og:description","value":"El futuro se escribe cada día y siempre va de la mano de la tecnología","keyName":"property"},{"name":"og:image","value":"images/portatil_Codigos_Computadora.jpg","keyName":"property","relativeUrl":true},{"name":"twitter:card","value":"summary_large_image"},{"name":"twitter:title","value":"¿Debería aprender a programar?"},{"name":"twitter:description","value":"El futuro se escribe cada día y siempre va de la mano de la tecnología"},{"name":"twitter:image","value":"images/portatil_Codigos_Computadora.jpg","relativeUrl":true}]},"layout":"post","markdown_content":"*El futuro se escribe cada día y siempre va de la mano de la tecnología*. El desarrollo de software se puede volver un hobby muy redituable.\n\n**No importa tu profesión u oficio** te puede ayudar a resolver una necesidad en tu área, automatizar un proceso o crear una aplicación que te facilite la vida. Teniendo esta habilidad te puedes abrir camino tu solo y adaptarlo completamente a tus necesidades.\n\n**Mejoraran tus ingresos** indudablemente, aunque no debe ser tu mayor motivación, pero si hay que decir que es una de las áreas bien pagadas. Ya sea que te decidas a dejar tu trabajo actual o ser un freelance en tus ratos libres, sin duda tus ingresos incrementaran.\n\n**La tecnología cambia tu visión**. Cuando te adentras en el desarrollo de software veras de forma distinta la tecnología y podrás apreciar todos sus beneficios, la veras como una herramienta de trabajo, internet será tu maestro y tu guía, ya no querrás perder el tiempo viendo videos de gatitos (bueno tal vez solo un poco) sino tendrás la ambición de seguir aprendiendo mas día con día.\n\n**Mejora tu pensamiento analítico.** Tu forma de pensar será más minuciosa, mejoraras en la resolución de problemas. Tendrás la habilidad de abstraer una idea y plasmarla en código. El simple hecho de empezar a estudiar programación tu lógica se empieza a agudizar y tu cerebro trabaja más que nunca.\n\n**No serás obsoleto.** Siempre y cuando te mantengas en constante aprendizaje será muy difícil que te vuelvas obsoleto. La tecnología evoluciona constantemente y si o si tienes que evolucionar con ella.\n"},{"__metadata":{"id":"content/pages/posts/guia-programacion.md","source":"sourcebit-source-filesystem","sourceName":"pages","sourcePath":"content/pages","relSourcePath":"posts/guia-programacion.md","relProjectPath":"content/pages/posts/guia-programacion.md","modelType":"page","modelName":"post","modelLabel":"Post","urlPath":"/posts/guia-programacion"},"title":"Guía para iniciar en la programación","excerpt":"Tal vez tengas interés, curiosidad o estas en el proceso de convertirte en un programador. Déjame darte una guía que te servirá para enfocarte en los puntos cruciales para aprender a programar.","date":"2022-05-18","thumb_img_path":"/images/intro.jpg","thumb_img_alt":"Portátil Encendida Haciendo Códigos De Computadora","content_img_path":"/images/intro.jpg","content_img_alt":"Portátil Encendida Haciendo Códigos De Computadora","seo":{"title":"Guía para iniciar en la programación","description":"Tal vez tengas interés, curiosidad o estas en el proceso de convertirte en un programador. Déjame darte una guía que te servirá para enfocarte en los puntos cruciales para aprender a programar.","extra":[{"name":"og:type","value":"article","keyName":"property"},{"name":"og:title","value":"Guía para iniciar en la programación","keyName":"property"},{"name":"og:description","value":"Tal vez tengas interés, curiosidad o estas en el proceso de convertirte en un programador. Déjame darte una guía que te servirá para enfocarte en los puntos cruciales para aprender a programar.","keyName":"property"},{"name":"og:image","value":"images/intro.jpg","keyName":"property","relativeUrl":true},{"name":"twitter:card","value":"summary_large_image"},{"name":"twitter:title","value":"Guía para iniciar en la programación"},{"name":"twitter:description","value":"Tal vez tengas interés, curiosidad o estas en el proceso de convertirte en un programador. Déjame darte una guía que te servirá para enfocarte en los puntos cruciales para aprender a programar."},{"name":"twitter:image","value":"images/intro.jpg","relativeUrl":true}]},"layout":"post","markdown_content":"**Tal vez tengas interés, curiosidad o estas en el proceso de convertirte en un programador. Déjame darte una guía que te servirá para enfocarte en los puntos cruciales para aprender a programar.**\n\n### **[0]  Pasión por el desarrollo de softw
8are.**\n\nLo más esencial que se requiere para esto es la motivación adecuada, así como lo estas leyendo, sin la motivación adecuada, al primer fallo caerás en frustración y posiblemente terminaras renunciando a esta gran idea. \n\nTe encontraras con muchos retos, bloqueos y frustraciones. No te desmotives desde ahora simplemente te muestro el panorama completo para que te des cuenta que todos pasamos por esto, incluso a veces muy seguido, pero nuestra cualidad es que siempre superamos cada reto que se nos ponga enfrente, cuando hayas superado uno a uno de los bloqueos la satisfacción será grandísima,  es como tener un disparo de dopamina cada vez que logras resolver el problema que tenías enfrente, es tan satisfactorio que te lleva a tener una pasión por el desarrollo de software.\n\nUn punto clave para superar esos momentos de estrés y frustración, es realizar una introspección, tener bien fundamentado por qué quieres aprender a programar, que meta quieres lograr con esto y sobre todo tener claro que beneficios personales obtendrás de este nuevo skill.\n\n*Ahora sí, ya que tienes bien definido tu objetivo veamos por dónde empezar.*\n\n### **[1] Desarrolla tu lógica.**\n\nNo importa como esté tu lógica sin duda es algo que puedes trabajar y con la práctica obtener una lógica muy fina. La lógica es fundamental para programar, sin ella no llegaras muy lejos, incluso si aprendieras toda la sintaxis del lenguaje de programación y no tienes la lógica, no podrás realizar gran cosa.\n\nTe preguntaras ¿cómo se aplica la lógica en la programación? Se aplica en la resolución de un problema mediante un algoritmo. La lógica te dicta si debes emplear alguna condición, una iteración en código, que tipo de variables vas a utilizar o que estructura de datos necesitas, en pocas palabras la lógica es la que aplicas para resolver un problema en específico dependiendo que tan afinada este tu lógica y el dominio que tengas del lenguaje de programación tu algoritmo será más optimo o menos optimo con relación a ambas cuestiones. La lógica y conocimiento del lenguaje de programación es fundamental para un buen desarrollo de software.\n\n### **[2] Aprender Estructura de Datos.**\n\n![Tabla patrones de diseño](../../images/Estructuras_Datos.png)\n\nLas estructuras de datos son necesarias en todos los lenguajes de programación, incluso el simple hecho de estudiarlas y practicarlas ayuda bastante para afinar la lógica.\n\nEntendamos por estructura de datos como las diferentes formas de organizar la información para poder manipular de manera eficiente los datos.\n\nPero ¿Qué quiere decir todo esto? Esencialmente es la forma en la que puedo almacenar los datos en memoria para aprovechar de manera correcta los recursos de la máquina para que puedan ser procesados rápidamente.\n\n**Ejemplos de estructura de datos:**\n\n+ Arreglos o vectores.\n+ Listas enlazadas.\n+ Pilas.\n+ Colas.\n+ Tablas Hash.\n+ Árboles y Grafos.\n\n\n### [3] Entender los diferentes paradigmas de programación.\n\nParadigma de programación es la forma en la que debes programar, dicho de otro modo, dicta las reglas de como debes estructurar el código. Existen varios paradigmas en el cual cada lenguaje esta basado para programar de forma ordenada según sus reglas. Hay que recalcar que existen lenguajes que son multiparadigma.\n\n*Algunos de los paradigmas de programación más populares son:*\n\n**Programación estructurada.** Conlleva en combinar 3 estructuras básicas:\n\n+ **Estructura secuencial:** Programación lineal y subrutina.\n+ **Estructura de alternativas:** Uso de condicionales como if, else if y else.\n+ **Estructura repetitiva:** El uso de recursividad o ciclos como for, while o do while.\n\nAlgunos lenguajes que utilizan la programación estructurada son: C, C++, Cobol o Ensamblador.\n\n***Programación Orientada a Objetos (POO):*** Modelas tu programa como objetos, estos objetos tienen atributos y comportamientos (funciones). Lenguajes que utilizan POO Java, Python, JavaScript o C#.\n\n***Programación funcional:*** No hay ciclos ni condicionales, el programa es un conjunto de funciones, siempre devuelve el mismo valor data la misma entrada. Por ejemplo: Pearl, Ruby, Scala, LISP.\n\n***Programación declarativa:*** No defines las instrucciones para describir como se hacen las cosas si no que defines que se hace. Solo se específica que quieres obtener, por ejemplo: SQL, Prolog, Miranda, Angular.\n\n***Programación reactiva:*** Trabaja con el flujo de datos de forma asíncrona dependiendo de los datos desencadena una reacción. Es decir, cuando hay un cambio en el estado de un objeto los otros objetos son notificados y realizan una acción de acuerdo con dicho estado.\n\nMuchos lenguajes tienen su librería para poder trabajar con programación reactiva, aquí algunos: *Java:* **RxJAva**, *Go:* **RxGo**, *JavaScript:* **RxJS**, etc.\n\n### **[4] Realizar pruebas unitarias (Unit Testing).**\n\nSiempre que se está programando, lo lógico es probar tu código de manera local ya sea ejecutando esa parte de código que estas creando o modificando. Una buena practica es tener automatizadas esas pruebas y se logra mediante las pruebas unitarias.\n\nLas pruebas unitarias son la forma de probar tu código de forma individual y aislada. Su propósito es comprobar que esa parte de tu código funcione correctamente, debe devolver el resultado esperado con los parámetros enviados o incluso validar que en caso de error tenga un comportamiento adecuado o proceda con el flujo establecido.\n\n*Deben cumplir con las siguientes características:*\n\n+ **Rápidas:** Deben tomar poco tiempo en ejecutarse.\n\n+ **Aisladas:** Deben ejecutarse de forma aislada sin depender de factores externos.\n\n+ **Repetible:** Con los mismos parámetros el resultado siempre debe ser el mismo.\n\n+ **Auto verificable:** De forma automática las Unit Test deben ser capaz de validar si la prueba fue exitosa o no.\n\nPara cada lenguaje de programación existen diferentes frameworks que te ayudan a realizar las pruebas unitarias de forma controlada. Este es un listado de los frameworks utilizado para estos lenguajes:\n\n+ *Java:*  **Junit Test**\n+ *.NET:*  **xUnit o NUnit**\n+ *PHP:*  **PHPUnit**\n+ *Python:*  **UnitTest o Pytest**\n\n\u003e**NOTA:**\n\n*Algo que siempre debes tener en mente es que además a las pruebas unitarias, incluso además a las pruebas de integración, la responsabilidad de un desarrollador es validar que tu código se ejecute correctamente en donde sea que esté desplegado tu programa. Debes tener la certeza que tu software, programa o aplicación funcione correctamente en todos los escenarios.*\n\n### [5] Aprende patrones de diseño.\n\nHablar de patrones de diseño ya es un tema avanzado, ya que requieres dominar la programación orientada a objetos (POO), conocer a profundidad el lenguaje de programación para determinar que patrón de diseño se adapta mas a las necesidades del software a desarrollar.\n\nLos patrones de diseño son como planos prefabricados, reutilizables y que se puede personalizar para resolver un problema conocido o recurrente en el diseño de softw
8are. \n\nCada patrón explica el problema y su solución, nos da la estructura de clases y como se deben relacionar. *Se clasifican en 3 grupos:*\n\n**Patrones creacionales:** Cuando se tiene una jerarquía de clases compleja da solución a la creación de objetos, incrementando la flexibilidad y la reutilización de código.\n\n**Patrones de comportamiento:** Nos ayuda a tener una comunicación efectiva entre clases u objetos distribuyendo las responsabilidades entre estos de forma organizada.\n\n**Patrones estructurales:** Explica como utilizar estructura de datos complejas facilitando el ensamble de objetos manteniendo la eficiencia de la estructura.\n\n![Tabla patrones de diseño](../../images/Tabla_Patrones_Disenio.png)\n\n### [6] Ser autodidacta.\n\nAlgo obligado es que debes estar en constante investigación y siempre aprendiendo las nuevas tecnologías.  Cada vez surgen nuevos lenguajes, nuevos frameworks, nuevas formas de montar y estructurar una aplicación. Es un área que nunca deja de evolucionar por lo tanto te ves obligado a nunca parar de aprender.\n\nEsa pasión que ya adquiriste en un inicio te llevara siempre a querer aprender esa nueva tecnología que está surgiendo y solo así es como nunca dejaras de ser obsoleto.\n\n\u003e**Conclusión**\n\nSi bien podrás pensar que es demasiado camino por recorrer y la verdad es que si, no es algo que se domina de la noche a la mañana, pero lo interesante del desarrollo de software es que puedes empezar poco a poco viendo tangiblemente tu progreso de forma inmediata. Esto es algo que fácilmente puedes empezar con lo más básico, literalmente a prueba y error. Lo único que requieres es una computadora, internet, ser autodidacta y constancia.\n\nCabe recalcar que tu obligación es volverte un experto en tu área, ahondando y dominando cada concepto y tecnología que vayas aprendiendo, siempre programando con las mejores prácticas, volverte todo un profesional en el desarrollo de software, ya que el mundo necesita tu talento y la mejor versión de ti.\n\n*Ahora sí, enfócate en el lenguaje de programación que mas te guste, investiga que requieres instalar en tu computadora para que empieces a tirar tus primeras líneas de código y te veo del otro lado colega.*\n\n"}],"data":{"__metadata":{"id":"sourcebit-source-filesystem:data","source":"sourcebit-source-filesystem"},"config":{"__metadata":{"id":"content/data/config.json","source":"sourcebit-source-filesystem","sourceName":"data","sourcePath":"content/data","relSourcePath":"config.json","relProjectPath":"content/data/config.json","modelType":"data","modelName":"config","modelLabel":"Site Configuration"},"title":"Isaac García Montes","path_prefix":"/","layout_style":"overflow","palette":"blue","header":{"title":"Isaac García","tagline":"Software Engineer","profile_img":"/images/IsaaxGMPerfilSquare2.png","profile_img_alt":"Isaac García Montes","background":"dark","has_nav":true,"nav_links":[{"label":"Inicio","url":"/","style":"link","__metadata":{"modelType":"object","modelName":"action","modelLabel":"Action"}},{"label":"Blog","url":"/blog/","style":"link","__metadata":{"modelType":"object","modelName":"action","modelLabel":"Action"}},{"label":"Sobre mi","url":"/about/","style":"link","__metadata":{"modelType":"object","modelName":"action","modelLabel":"Action"}},{"label":"Contacto","url":"/contact/","style":"link","__metadata":{"modelType":"object","modelName":"action","modelLabel":"Action"}}],"has_social":true,"social_links":[{"label":"LinkedIn","url":"https://www.linkedin.com/in/isaaxgm/","style":"icon","icon_class":"linkedin","new_window":true,"__metadata":{"modelType":"object","modelName":"action","modelLabel":"Action"}},{"label":"Twitter","url":"https://twitter.com/IsaaxGM","style":"icon","icon_class":"twitter","new_window":true,"__metadata":{"modelType":"object","modelName":"action","modelLabel":"Action"}},{"label":"Instagram","url":"https://www.instagram.com/isaaxgm/","style":"icon","icon_class":"instagram","new_window":true,"__metadata":{"modelType":"object","modelName":"action","modelLabel":"Action"}},{"label":"Facebook","url":"https://www.facebook.com/IsaaxGM","style":"icon","icon_class":"facebook","
8new_window":true,"__metadata":{"modelType":"object","modelName":"action","modelLabel":"Action"}}],"__metadata":{"modelType":"object","modelName":"header","modelLabel":"Header Configuration"}},"footer":{"content":"\u0026copy; IsaaxGM. ALL RIGHTS RESERVED","links":[],"__metadata":{"modelType":"object","modelName":"footer","modelLabel":"Footer Configuration"}},"domain":"https://enthusiastic-oregano-24fc6.netlify.app"}}},"__N_SSG":true},"page":"/[[...slug]]","query":{"slug":["posts","guia-programacion"]},"buildId":"aPtDxw10ImUJsqyObXdN9","isFallback":false,"gsp":true}</script>
8<script nomodule="" src="/_next/static/chunks/polyfills-8f31809deb7932dd0187.js"></script>
8<script src="/_next/static/chunks/webpack-50bee04d1dc61f8adf5b.js" async=""></script>
8<script src="/_next/static/chunks/framework.179fbac4597b1fb44bbd.js" async=""></script>
8<script src="/_next/static/chunks/commons.2244cef35cc4eeb94c36.js" async=""></script>
8<script src="/_next/static/chunks/main-155c0b9f8de2a8ec7110.js" async=""></script>
8<script src="/_next/static/chunks/pages/_app-df829f2c382004fed53e.js" async=""></script>
8<script src="/_next/static/chunks/29107295.837a9d12c8e416b71c1b.js" async=""></script>
8<script src="/_next/static/chunks/75fc9c18.60c1ab7504f6eb9ff2f2.js" async=""></script>
8<script src="/_next/static/chunks/pages/%5B%5B...slug%5D%5D-ec4ae9fe3529ed50fc69.js" async=""></script>
8<script src="/_next/static/aPtDxw10ImUJsqyObXdN9/_buildManifest.js" async=""></script>
8<script src="/_next/static/aPtDxw10ImUJsqyObXdN9/_ssgManifest.js" async=""></script>
8<script src="https://widget.stackbit.com/init.js" id="stackbit-widget-init" data-stackbit-project-id="61724fc6bcc67600cb191e7b"></script>
8</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.