{"id":101,"date":"2015-08-27T12:21:23","date_gmt":"2015-08-27T17:21:23","guid":{"rendered":"http:\/\/naps.com.mx\/blog\/?p=101"},"modified":"2017-11-16T12:16:30","modified_gmt":"2017-11-16T18:16:30","slug":"lo-que-debes-saber-para-aprender-a-programar","status":"publish","type":"post","link":"https:\/\/naps.com.mx\/blog\/lo-que-debes-saber-para-aprender-a-programar\/","title":{"rendered":"Lo que debes saber para aprender a programar"},"content":{"rendered":"<p>Uno de los trabajos m\u00e1s interesantes y de gran demanda es el de desarrollador de aplicaciones. Para desarrollar grandes sistemas o colaborar en importantes grupos de desarrolladores necesitas <strong>aprender a programar<\/strong>.<\/p>\n<p><!--more--><\/p>\n<p>Pero antes de sentarte a dise\u00f1ar aplicaciones y escribir c\u00f3digo, debes adquirir ciertos conocimientos b\u00e1sicos que te ser\u00e1n \u00fatiles en todo tu aprendizaje.<\/p>\n<h2>Conceptos b\u00e1sicos para aprender a programar<\/h2>\n<p>Comencemos con lo esencial. Una <strong>computadora digital<\/strong> es una m\u00e1quina o\u00a0 dispositivo que realiza c\u00e1lculos y toma decisiones l\u00f3gicas con una rapidez sumamente mayor que cualquier humano. Una computadora puede realizar miles de millones de c\u00e1lculos en un segundo y una supercomputadora puede realizar miles de billones de instrucciones por segundo (Deitel P. y Deitel H., 2012).<\/p>\n<h3><strong>Tipos de computadoras<\/strong><\/h3>\n<p>Se le llama <em>Mainframes<\/em>\u00a0 a las grandes computadoras, <em>Microcomputadoras<\/em> a las computadoras de escritorio, port\u00e1tiles, y m\u00f3viles. Todos \u00e9stos sistemas necesitan de <em>programas<\/em> para trabajar.<\/p>\n<h3>Programas y datos<\/h3>\n<p>Un programa es un conjunto de instrucciones que se le dan a la computadora para que procese <strong>Datos<\/strong>. Estas instrucciones se introducen en la computadora y se almacenan en una parte de la <strong>memoria<\/strong> de la m\u00e1quina. Un programa almacenado se puede <strong>ejecutar<\/strong>. \u00a0La ejecuci\u00f3n de un programa requiere tres pasos: <em>Entrada -&gt; Proceso -&gt; Salida<\/em>.<\/p>\n<p>La informaci\u00f3n se almacena en la memoria de una computadora en forma de bits. Un <strong>bit<\/strong> es un d\u00edgito binario (uno, cero). Al conjunto de 8 bits se le denomina <strong>byte<\/strong>. Un <em>car\u00e1cter<\/em> ocupa un byte en memoria. (Java y otros sistemas utilizan caracteres Unicode, que est\u00e1n compuestos de dos bytes). \u00a0Una instrucci\u00f3n puede ocupar uno, dos, tres bytes. Una cantidad num\u00e9rica puede ocupar de 1 a 8 bytes (Gottfried B., 2005).<\/p>\n<p>El tama\u00f1o de la memoria se expresa en un m\u00faltiplo de 2<sup>10<\/sup> , esto es un Kbyte (1024 bytes). 1 MB (Megabyte) equivale a 2<sup>10<\/sup> * 2<sup>10<\/sup> bytes es decir 1024 Kbytes. Entonces,<\/p>\n<ul>\n<li>1 Gigabyte = 1024 MB<\/li>\n<li>1 Terabyte = 1024 GB<\/li>\n<li>1 Petabyte = 1024 TB<\/li>\n<li>1 Exabyte = 1024 PB<\/li>\n<li>1 Zettabyte = 1024 EB<\/li>\n<\/ul>\n<h3>Lenguajes de programaci\u00f3n<\/h3>\n<p>Una vez entendido esto, abordemos ahora el concepto de <strong>Lenguaje de programaci\u00f3n<\/strong>. Los lenguajes de programaci\u00f3n se utilizan para indicar a una computadora qu\u00e9 instrucciones seguir. El m\u00e1s b\u00e1sico es el <em>lenguaje m\u00e1quina<\/em>. Los <em>lenguajes de alto nivel<\/em> tienen instrucciones compatibles con el lenguaje y forma de pensar humano. Hay lenguajes <em>de prop\u00f3sito general<\/em> (C, Python, Java, Basic) y <em>de prop\u00f3sito especial<\/em> (CSMP, LISP).<\/p>\n<p>\u00bfQu\u00e9 caracter\u00edsticas debe tener un buen lenguaje de programaci\u00f3n de alto nivel? Principalmente tres: <em>Sencillez<\/em> (que sea f\u00e1cil de aprender y utilizar), <em>Uniformidad<\/em> y <em>Portabilidad<\/em> (que se pueda ejecutar independientemente de la m\u00e1quina).<\/p>\n<h3>Compilador o int\u00e9rprete<\/h3>\n<p>Una vez que hemos escrito un programa en un determinado lenguaje de programaci\u00f3n, la computadora debe de ejecutarlo. Para eso se debe de convertir o traducir nuestro programa escrito en lenguaje de alto nivel, al lenguaje m\u00e1quina. A este proceso se le llama <strong>Compilar<\/strong> o <strong>Interpretar<\/strong>.<\/p>\n<p>Un <em>compilador<\/em> convierte todo el c\u00f3digo fuente en c\u00f3digo m\u00e1quina (c\u00f3digo objeto) y crea un archivo ejecutable. Una vez creado el archivo ejecutable no necesita del compilador para ser operado en una computadora. Un <em>int\u00e9rprete<\/em> hace algo similar, pero en vez de crear un archivo ejecutable, traduce y ejecuta cada l\u00ednea del programa, una a la vez. El c\u00f3digo interpretado se ejecuta un poco m\u00e1s lento que el c\u00f3digo compilado y el int\u00e9rprete debe acompa\u00f1ar al c\u00f3digo todo el tiempo (Norton P., 2006).<\/p>\n<p>El proceso de compilaci\u00f3n puede verse en la siguiente imagen (basado en Quero, 2002).<\/p>\n<div id=\"attachment_526\" style=\"width: 713px\" class=\"wp-caption alignnone\"><a href=\"http:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2015\/08\/proceso-compilacion.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-526\" class=\"size-full wp-image-526\" src=\"http:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2015\/08\/proceso-compilacion.png\" alt=\"proceso de compilacion\" width=\"703\" height=\"739\" srcset=\"https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2015\/08\/proceso-compilacion.png 703w, https:\/\/naps.com.mx\/blog\/wp-content\/uploads\/2015\/08\/proceso-compilacion-285x300.png 285w\" sizes=\"auto, (max-width: 703px) 100vw, 703px\" \/><\/a><p id=\"caption-attachment-526\" class=\"wp-caption-text\">Proceso de compilaci\u00f3n<\/p><\/div>\n<p>Aprender a programar es algo que est\u00e1 a tu alcance. Comprender bien estos conceptos es esencial para lograrlo.<\/p>\n<p>En tu caso, \u00bfcu\u00e1l es el lenguaje de tu preferencia? Deja tu comentario.<\/p>\n<h3><strong>Referencias<\/strong><\/h3>\n<ol>\n<li>Deitel P. y Deitel H. (2012). <strong>C\u00f3mo programar en Java<\/strong>. Pearson Educaci\u00f3n, M\u00e9xico.<\/li>\n<li>Gottfired B. (2005). <strong>Programaci\u00f3n en C<\/strong>. McGraw Hill, Madrid.<\/li>\n<li>Norton P. (2006). <strong>Introducci\u00f3n a la computaci\u00f3n<\/strong>. McGraw Hill, M\u00e9xico.<\/li>\n<li>Quero (2002). <a href=\"https:\/\/books.google.com.mx\/books?id=iuaUPNi6JmEC&amp;printsec=frontcover&amp;dq=lenguajes+de+programacion+paraninfo&amp;hl=es-419&amp;sa=X&amp;ved=0ahUKEwi35NiF49vKAhWKMz4KHUKQAyMQ6AEIGzAA#v=onepage&amp;q=lenguajes%20de%20programacion%20paraninfo&amp;f=false\" target=\"_blank\"><strong>Sistemas operativos y lenguajes de programaci\u00f3n.<\/strong> <\/a>Editorial Paraninfo. Madrid.<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>Uno de los trabajos m\u00e1s interesantes y de gran demanda es el de desarrollador de aplicaciones. Para desarrollar grandes sistemas o colaborar en importantes grupos de desarrolladores necesitas aprender a programar.<\/p>\n","protected":false},"author":1,"featured_media":102,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"amp_status":"","footnotes":""},"categories":[188,55],"tags":[56,57],"class_list":["post-101","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programacion-basica","category-programacion-y-desarrollo","tag-computadora","tag-lenguaje-de-programacion"],"_links":{"self":[{"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/posts\/101","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/comments?post=101"}],"version-history":[{"count":5,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/posts\/101\/revisions"}],"predecessor-version":[{"id":528,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/posts\/101\/revisions\/528"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/media\/102"}],"wp:attachment":[{"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/media?parent=101"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/categories?post=101"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/naps.com.mx\/blog\/wp-json\/wp\/v2\/tags?post=101"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}