{"id":10342,"date":"2011-06-16T17:00:48","date_gmt":"2011-06-16T15:00:48","guid":{"rendered":"http:\/\/onsoftware.softonic.com\/?p=10342"},"modified":"2025-06-13T06:27:10","modified_gmt":"2025-06-13T04:27:10","slug":"aprender-a-programar-consejos-y-recursos","status":"publish","type":"post","link":"https:\/\/cms-articles.softonic.io\/es\/aprender-a-programar-consejos-y-recursos\/","title":{"rendered":"Aprender a programar: consejos y recursos"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"alignright\" title=\"\u00a1Hola, mundo!\" src=\"https:\/\/articles-img.sftcdn.net\/sft\/articles\/auto-mapping-folder\/sites\/2\/2011\/03\/helloworld.jpg\" alt=\"\u00a1Hola, mundo!\" width=\"91\" height=\"94\" \/>Cuando  buscas una aplicaci\u00f3n que lleve a cabo una funci\u00f3n determinada y no  consigues encontrarla, te enfrentas a un triste hecho: hay  programas que todav\u00eda <a href=\"http:\/\/onsoftware.softonic.com\/los-programas-que-no-existen\">no existen<\/a>. Tal cual.<\/p>\n<p>Puedes sentarte, llorar y esperar a que alguien programe esa aplicaci\u00f3n&#8230; o puedes hacerla  t\u00fa mismo. \u00bfC\u00f3mo? Pues aprendiendo un lenguaje de programaci\u00f3n y creando desde cero el programa deseado.<\/p>\n<p>Si decides emprender este camino de  auto-aprendizaje, consulta la lista de consejos y recursos que  presentamos a continuaci\u00f3n. Qui\u00e9n sabe, un d\u00eda podr\u00edas ver tu programa  publicado en Softonic&#8230;<!--more--><\/p>\n<h3>No me hables en chino. \u00bfQu\u00e9 es eso de programar?<\/h3>\n<p>Tu ordenador es una m\u00e1quina que acepta y ejecuta \u00f3rdenes. Estas \u00f3rdenes pueden ser tan simples como escribir una letra en la pantalla o calcular una suma, y pueden tener varias formas, dependiendo del lenguaje empleado. A un ordenador no puedes decirle lo siguiente:<\/p>\n<p style=\"padding-left: 30px\">Ordenador, quiero que me bajes esa caja de la estanter\u00eda, la roja a la derecha.<\/p>\n<p>No lo entender\u00e1. En cambio, si escribes algo as\u00ed, puede que te preste atenci\u00f3n:<\/p>\n<p style=\"padding-left: 30px\">010101010111010101001010111010101010111010011010100101010110011<\/p>\n<p>Ceros y unos, c\u00f3digo m\u00e1quina, el \u00fanico idioma que sabe hablar un PC. Para nosotros no es pr\u00e1ctico hablar as\u00ed, con lo que recurrimos a lenguajes artificiales, que no son m\u00e1s que versiones simplificadas de nuestros idiomas. La frase inicial se parecer\u00eda entonces a algo as\u00ed:<\/p>\n<p style=\"padding-left: 30px\">caja.Bajar(EstanteriaRoja3) = Verdad;<\/p>\n<p>Es feo, s\u00ed. Pero es mucho mejor que escribir ceros y unos, \u00bfno te parece? Esos puntos, espacios, puntos y coma y par\u00e9ntesis sirven para delimitar exactamente lo que se quiere decir a la m\u00e1quina, al igual que ocurre al escribir f\u00f3rmulas matem\u00e1ticas. Un ejemplo con coloreado de sintaxis:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-12439\" title=\"C\u00f3digo Python de ejemplo\" src=\"https:\/\/articles-img.sftcdn.net\/sft\/articles\/auto-mapping-folder\/sites\/2\/2011\/05\/sample-python-code.png\" alt=\"C\u00f3digo Python de ejemplo\" width=\"300\" height=\"224\" srcset=\"https:\/\/articles-img.sftcdn.net\/auto-mapping-folder\/sites\/2\/2011\/05\/sample-python-code.png 300w, https:\/\/articles-img.sftcdn.net\/auto-mapping-folder\/sites\/2\/2011\/05\/sample-python-code-256x191.png 256w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>Organizadas en p\u00e1rrafos especiales, todas las l\u00edneas de \u00f3rdenes conforman lo que se conoce como &#8220;c\u00f3digo fuente&#8221;, las entra\u00f1as de un programa. Para convertirlo en un programa ejecutable, el c\u00f3digo se &#8220;compila&#8221;, esto es, se traduce a c\u00f3digo m\u00e1quina. Si no hay fallos (<em>bugs<\/em>), el programa se abrir\u00e1 normalmente.<\/p>\n<h3>Eso est\u00e1 muy bien. Pero \u00bfqu\u00e9 lenguajes hay? \u00bfCu\u00e1l elijo?<\/h3>\n<p>Como los idiomas naturales, tambi\u00e9n los lenguajes de programaci\u00f3n tienen su l\u00e9xico, sintaxis y normas de puntuaci\u00f3n, que var\u00edan en funci\u00f3n de la complejidad del lenguaje. Algunos son m\u00e1s f\u00e1ciles de leer que otros, y entonces se les llama &#8220;de alto nivel&#8221;, pues se aproximan al habla humana; los de bajo nivel son m\u00e1s &#8220;rob\u00f3ticos&#8221;.<\/p>\n<p style=\"text-align: center\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-12444\" title=\"Lenguaje de bajo nivel\" src=\"https:\/\/articles-img.sftcdn.net\/sft\/articles\/auto-mapping-folder\/sites\/2\/2011\/05\/machinecode.png\" alt=\"Lenguaje de bajo nivel\" width=\"590\" height=\"150\" srcset=\"https:\/\/articles-img.sftcdn.net\/auto-mapping-folder\/sites\/2\/2011\/05\/machinecode.png 590w, https:\/\/articles-img.sftcdn.net\/auto-mapping-folder\/sites\/2\/2011\/05\/machinecode-256x65.png 256w\" sizes=\"auto, (max-width: 590px) 100vw, 590px\" \/><em>Las m\u00e1quinas solo hablan con ceros y unos, un lenguaje incomprensible para un humano<\/em><\/p>\n<p>Para <a href=\"http:\/\/www.roesler-ac.de\/wolfram\/hello.htm\">imprimir una palabra<\/a> en un lenguaje de alto nivel como BASIC, basta con escribir <strong>PRINT &#8220;Hola&#8221;<\/strong> (<em>print<\/em>, en ingl\u00e9s, quiere decir &#8220;imprimir&#8221;; la mayor\u00eda de lenguajes usan palabras en ingl\u00e9s). En un lenguaje de nivel bajo, como el Ensamblador, la cosa cambia (no te asustes por lo que vas a ver, no son palabrotas):<\/p>\n<p style=\"padding-left: 30px\"><em>SWI &#8220;OS_WriteS&#8221;<br \/>\nEQUS &#8220;Hola&#8221;<br \/>\nEQUB 0<br \/>\nALIGN<br \/>\nMOV PC,R14<\/em><\/p>\n<p>Te estar\u00e1s preguntando qui\u00e9n puede preferir Ensamblador frente a otros lenguajes. Es una cuesti\u00f3n de rendimiento: el c\u00f3digo de bajo nivel se ejecuta m\u00e1s r\u00e1pido y aprovecha m\u00e1s la potencia de la m\u00e1quina a la cual est\u00e1 ligado, mientras que un lenguaje de alto nivel es m\u00e1s universal; Java, por ejemplo, se ejecuta en cualquier sistema.<\/p>\n<p style=\"text-align: center\"><em><a href=\"https:\/\/articles-img.sftcdn.net\/sft\/articles\/auto-mapping-folder\/sites\/2\/2011\/05\/languages.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-12446\" title=\"Los lenguajes de programaci\u00f3n\" src=\"https:\/\/articles-img.sftcdn.net\/sft\/articles\/auto-mapping-folder\/sites\/2\/2011\/05\/languages.png\" alt=\"Los lenguajes de programaci\u00f3n\" width=\"541\" height=\"279\" srcset=\"https:\/\/articles-img.sftcdn.net\/auto-mapping-folder\/sites\/2\/2011\/05\/languages.png 541w, https:\/\/articles-img.sftcdn.net\/auto-mapping-folder\/sites\/2\/2011\/05\/languages-256x132.png 256w\" sizes=\"auto, (max-width: 541px) 100vw, 541px\" \/> <\/a><\/em><em>Casi todos los lenguajes de programaci\u00f3n est\u00e1n emparentados entre s\u00ed<\/em> <em>(<a title=\"Evo Prog Lang\" href=\"http:\/\/bluebones.net\/evolution\/evo-prog-lang.png\" target=\"_blank\" rel=\"noopener noreferrer\">imagen<\/a>)<\/em><\/p>\n<p>Hay <a href=\"http:\/\/en.wikipedia.org\/wiki\/List_of_programming_languages\">cientos de lenguajes de programaci\u00f3n<\/a>, y, al igual que ocurre con los idiomas humanos, muchos tienen pocos &#8220;hablantes&#8221;. Los hay que jam\u00e1s han salido de las universidades y empresas donde los crearon, mientras que los m\u00e1s populares, por el contrario, se ense\u00f1an por doquier y cuentan con amplias comunidades de usuarios.<\/p>\n<p>Para crear aplicaciones de escritorio, los lenguajes<a href=\"http:\/\/langpop.com\/\"> m\u00e1s populares<\/a> son <strong>C\/C++, Java, Python, Visual Basic y Delphi<\/strong>. Su estilo es parecido, con lo que pasar de uno a otro requiere menos esfuerzo que hacerlo, por ejemplo, de Basic a Ensamblador. Sobre ellos hay una infinidad de libros, cursos y foros t\u00e9cnicos.<\/p>\n<h3>Me aburro. Quiero programar ya.<\/h3>\n<p>\u00a1Vale! \u00bfQuieres saber qu\u00e9 se siente al hablar directamente con el ordenador? Empieza por probar alguno de los siguientes programas y enlaces. No hace falta saber muchas matem\u00e1ticas, aunque algo de ingl\u00e9s te vendr\u00e1 bien.<\/p>\n<p><strong>1. Practica con robots virtuales<\/strong><\/p>\n<p>La met\u00e1fora del robot -tienes un robot y le das \u00f3rdenes- ha sido usada con \u00e9xito en miles de aulas. Hay varios programas que implementan esa met\u00e1fora para ense\u00f1ar los fundamentos de la programaci\u00f3n: <a href=\"http:\/\/guido-van-robot.softonic.com\/\">Guido Van Robot<\/a>, <a href=\"http:\/\/robomind.softonic.com\/\">RoboMind<\/a> y <a href=\"http:\/\/robotprog.softonic.com\/\">RobotProg<\/a> son tres representantes destacados. Para algo m\u00e1s visual, prueba <a href=\"http:\/\/kodu.softonic.com\/\">Kodu<\/a>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-12447\" title=\"RoboMind\" src=\"https:\/\/articles-img.sftcdn.net\/sft\/articles\/auto-mapping-folder\/sites\/2\/2011\/05\/3_robomind1-600x428.jpg\" alt=\"RoboMind\" width=\"600\" height=\"428\" srcset=\"https:\/\/articles-img.sftcdn.net\/auto-mapping-folder\/sites\/2\/2011\/05\/3_robomind1-600x428.jpg 600w, https:\/\/articles-img.sftcdn.net\/auto-mapping-folder\/sites\/2\/2011\/05\/3_robomind1-256x182.jpg 256w, https:\/\/articles-img.sftcdn.net\/auto-mapping-folder\/sites\/2\/2011\/05\/3_robomind1.jpg 700w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<p><strong>2. Lenguajes de programaci\u00f3n educacionales <\/strong><\/p>\n<p>Hay lenguajes para todo los gustos: industriales, militares, acad\u00e9micos, empresariales&#8230; y tambi\u00e9n <a href=\"http:\/\/en.wikipedia.org\/wiki\/List_of_educational_programming_languages\">educacionales<\/a>. Estos lenguajes, como <a href=\"http:\/\/www.softonic.com\/windows\/logo\">LOGO<\/a>, son m\u00e1s f\u00e1ciles de aprender y tienen menos instrucciones.<\/p>\n<p style=\"text-align: center\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-12448\" title=\"Elica\" src=\"https:\/\/articles-img.sftcdn.net\/sft\/articles\/auto-mapping-folder\/sites\/2\/2011\/05\/3_elica8.jpg-600x485.png\" alt=\"Elica\" width=\"600\" height=\"485\" srcset=\"https:\/\/articles-img.sftcdn.net\/auto-mapping-folder\/sites\/2\/2011\/05\/3_elica8.jpg-600x485.png 600w, https:\/\/articles-img.sftcdn.net\/auto-mapping-folder\/sites\/2\/2011\/05\/3_elica8.jpg-256x207.png 256w, https:\/\/articles-img.sftcdn.net\/auto-mapping-folder\/sites\/2\/2011\/05\/3_elica8.jpg.png 608w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><em><a href=\"http:\/\/elica.softonic.com\/\">Elica<\/a> es un estupendo entorno de aprendizaje basado en el lenguaje LOGO<\/em><\/p>\n<p><a href=\"http:\/\/microsoft-small-basic.softonic.com\/\">Microsoft Small Basic<\/a> es el proyecto de Microsoft para ense\u00f1ar programaci\u00f3n a todos los p\u00fablicos, mientras que <a href=\"http:\/\/mit-scratch.softonic.com\/\">MIT Scratch<\/a> es el alabado proyecto del Massachussets Institute of Technology.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-large wp-image-12449\" title=\"Microsoft Small Basic\" src=\"https:\/\/articles-img.sftcdn.net\/sft\/articles\/auto-mapping-folder\/sites\/2\/2011\/05\/microsoft-small-basic-01-700x461-600x395.png\" alt=\"Microsoft Small Basic\" width=\"600\" height=\"395\" srcset=\"https:\/\/articles-img.sftcdn.net\/auto-mapping-folder\/sites\/2\/2011\/05\/microsoft-small-basic-01-700x461-600x395.png 600w, https:\/\/articles-img.sftcdn.net\/auto-mapping-folder\/sites\/2\/2011\/05\/microsoft-small-basic-01-700x461-120x80.png 120w, https:\/\/articles-img.sftcdn.net\/auto-mapping-folder\/sites\/2\/2011\/05\/microsoft-small-basic-01-700x461-256x168.png 256w, https:\/\/articles-img.sftcdn.net\/auto-mapping-folder\/sites\/2\/2011\/05\/microsoft-small-basic-01-700x461.png 700w\" sizes=\"auto, (max-width: 600px) 100vw, 600px\" \/><\/p>\n<p><strong>3. Prueba un lenguaje directamente en el navegador<\/strong><\/p>\n<p>Las p\u00e1ginas <a href=\"http:\/\/tryruby.org\/\">TryRuby<\/a>, <a href=\"http:\/\/www.trypython.org\/#\">TryPython<\/a> y <a href=\"http:\/\/tryhaskell.org\/\">TryHaskell<\/a> son demostraciones interactivas de tres de los lenguajes m\u00e1s potentes y  amenos que existen. No necesitas instalar nada: tan solo sigue las  instrucciones en pantalla y comprueba por tu cuenta lo f\u00e1cil que es  crear y modificar \u00f3rdenes con sentido.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-12450\" title=\"TryRuby\" src=\"https:\/\/articles-img.sftcdn.net\/sft\/articles\/auto-mapping-folder\/sites\/2\/2011\/05\/tryruby.png\" alt=\"TryRuby\" width=\"588\" height=\"207\" srcset=\"https:\/\/articles-img.sftcdn.net\/auto-mapping-folder\/sites\/2\/2011\/05\/tryruby.png 588w, https:\/\/articles-img.sftcdn.net\/auto-mapping-folder\/sites\/2\/2011\/05\/tryruby-256x90.png 256w\" sizes=\"auto, (max-width: 588px) 100vw, 588px\" \/><\/p>\n<h3>\u00a1Quiero aprender un lenguaje de verdad!<\/h3>\n<p>En ese caso \u00e1rmate de paciencia y toma en consideraci\u00f3n el apuntarte a alg\u00fan curso de programaci\u00f3n. Para aprender por tu cuenta, necesitar\u00e1s estos <a href=\"http:\/\/www.softonic.com\/windows\/programacion\">ingredientes<\/a>:<\/p>\n<ul>\n<li>Compiladores e int\u00e9rpretes de un lenguaje concreto (p.ej. <a href=\"http:\/\/lenguaje-ruby.softonic.com\/\">Ruby<\/a> o <a href=\"http:\/\/python.softonic.com\/\">Python<\/a>)<\/li>\n<li>Un editor de texto para escribir tu c\u00f3digo, como <a href=\"http:\/\/notepad.softonic.com\/\">Notepad++<\/a> o <a href=\"http:\/\/scite.softonic.com\/\">SciTE<\/a><\/li>\n<li>Manuales gratuitos (<a href=\"http:\/\/es.diveintopython.org\/\">Inmersi\u00f3n en Python<\/a> y <a href=\"http:\/\/mundogeek.net\/tutorial-python\/\">Python para todos<\/a> son cl\u00e1sicos)<\/li>\n<\/ul>\n<p>Una vez hayas elegido un lenguaje, hazte con la documentaci\u00f3n, los editores de c\u00f3digo, el int\u00e9rprete (o compilador) y mucho tiempo libre. En caso de duda, consulta <a href=\"http:\/\/www.google.es\/search?q=foro+programacion\">foros especializados<\/a> para preguntar dudas, ayudar a los dem\u00e1s y compartir c\u00f3digo y conocimientos.<\/p>\n<p><strong>\u00bfConoces alg\u00fan lenguaje de programaci\u00f3n? \u00bfTe gustar\u00eda aprender uno?<\/strong><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Cuando buscas una aplicaci\u00f3n que lleve a cabo una funci\u00f3n determinada y no consigues encontrarla, te enfrentas a un triste hecho: hay programas que todav\u00eda no existen. Tal cual. Puedes sentarte, llorar y esperar a que alguien programe esa aplicaci\u00f3n&#8230; o puedes hacerla t\u00fa mismo. \u00bfC\u00f3mo? Pues aprendiendo un lenguaje de programaci\u00f3n y creando desde &hellip; <a href=\"https:\/\/cms-articles.softonic.io\/es\/aprender-a-programar-consejos-y-recursos\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Aprender a programar: consejos y recursos&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1020,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","wpcf-pageviews":0},"categories":[9706],"tags":[],"usertag":[],"vertical":[],"content-category":[],"class_list":["post-10342","post","type-post","status-publish","format-standard","hentry","category-how-to"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/cms-articles.softonic.io\/es\/wp-json\/wp\/v2\/posts\/10342","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cms-articles.softonic.io\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cms-articles.softonic.io\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cms-articles.softonic.io\/es\/wp-json\/wp\/v2\/users\/1020"}],"replies":[{"embeddable":true,"href":"https:\/\/cms-articles.softonic.io\/es\/wp-json\/wp\/v2\/comments?post=10342"}],"version-history":[{"count":1,"href":"https:\/\/cms-articles.softonic.io\/es\/wp-json\/wp\/v2\/posts\/10342\/revisions"}],"predecessor-version":[{"id":385422,"href":"https:\/\/cms-articles.softonic.io\/es\/wp-json\/wp\/v2\/posts\/10342\/revisions\/385422"}],"wp:attachment":[{"href":"https:\/\/cms-articles.softonic.io\/es\/wp-json\/wp\/v2\/media?parent=10342"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cms-articles.softonic.io\/es\/wp-json\/wp\/v2\/categories?post=10342"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cms-articles.softonic.io\/es\/wp-json\/wp\/v2\/tags?post=10342"},{"taxonomy":"usertag","embeddable":true,"href":"https:\/\/cms-articles.softonic.io\/es\/wp-json\/wp\/v2\/usertag?post=10342"},{"taxonomy":"vertical","embeddable":true,"href":"https:\/\/cms-articles.softonic.io\/es\/wp-json\/wp\/v2\/vertical?post=10342"},{"taxonomy":"content-category","embeddable":true,"href":"https:\/\/cms-articles.softonic.io\/es\/wp-json\/wp\/v2\/content-category?post=10342"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}