{"id":4970,"date":"2023-08-30T01:22:39","date_gmt":"2023-08-29T23:22:39","guid":{"rendered":"https:\/\/robertopla.net\/blog\/?p=4970"},"modified":"2025-01-27T14:21:24","modified_gmt":"2025-01-27T13:21:24","slug":"programar-es-apasionante","status":"publish","type":"post","link":"https:\/\/robertopla.net\/blog\/programar-es-apasionante.htm","title":{"rendered":"Programar es apasionante"},"content":{"rendered":"<p>En mi circulo social, no conozco a mucha gente apasionada por la programaci\u00f3n. Algunos si, claro. Pero no me atrever\u00eda a decir que programar ordenadores es un entretenimiento popular.<br \/>\nYo, sin embargo lo encuentro apasionante. No tendr\u00eda que ser dif\u00edcil explicar porqu\u00e9 algo te resulta apasionante, pero por m\u00e1s que he pensado en ello, no encuentro una forma coherente y estructurada de enlazar frases l\u00f3gicas que expliquen esa pasi\u00f3n. Quiz\u00e1s por eso, porque es una pasi\u00f3n y las cosas que te apasionan se escapan de la l\u00f3gica.<br \/>\nCreo que los principales motivos que me sedujeron en un principio de la inform\u00e1tica eran debidos m\u00e1s a mis defectos que a mis cualidades.<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" style=\"border: none; width: 468px; height: 237px;\" title=\"teclado\" src=\"https:\/\/robertopla.net\/blog\/wp-content\/uploads\/2023\/08\/IMG_20230826_092738-scaled.jpg\" alt=\"teclado\" \/><\/p>\n<p>Se podr\u00eda decir, y mis maestros lo dec\u00edan mucho, que yo era un muchacho algo vago. La idea de un mecanismo que hiciera el trabajo duro por mi, me resultaba atractiva de una forma natural. Tambi\u00e9n era algo disperso y desordenado, no por amor al desorden, sino por mi dificultad para ordenar. Un sistema que lo puedes ordenar una vez y siempre queda ordenado o incluso, que se ordena \u00e9l solo tambi\u00e9n me parec\u00eda una maravilla. Por \u00faltimo soy despistado, todav\u00eda hoy. Se me olvidan las cosas porque la cabeza bulle de otros pensamientos o le est\u00e1 dando vueltas a algo que en ese instante me obsesiona. Necesitar\u00eda un sistema que recuerde las cosas por mi, me avise y haga las cosas en su momento y de forma ordenada. Suena casi a magia.<\/p>\n<p>Con estas premisas, me parece l\u00f3gico que la inform\u00e1tica despertase mi inter\u00e9s y excitase mi imaginaci\u00f3n cuando era un ni\u00f1o. Para mi, y para la mayor\u00eda de la gente en los 60 y los 70, los ordenadores eran tan lejanos como la ciencia ficci\u00f3n o los viajes a la Luna. Sin embargo, cuando consegu\u00ed acercarme a ellos no me defraudaron. All\u00ed dentro hab\u00eda un orden que permit\u00eda crear estructuras. Es cierto que hab\u00eda unas normas y unos principios que respetar, una sintaxis. Pero todo respond\u00eda a una l\u00f3gica que a mi no me resultaba dif\u00edcil entender. Se que hay personas que al leer un programa de ordenador solo ven un mont\u00f3n de palabras y n\u00fameros desconocidos y sin sentido, pero a mi, la mayor parte de las veces no me resulta dif\u00edcil ver el orden y la estructura que subyace entre esas lineas, incluso aunque desconozca el lenguaje en el que est\u00e1 programado.<\/p>\n<p>Pero es que cuando estudias un lenguaje de programaci\u00f3n te das cuenta de que est\u00e1s adquiriendo el poder de la predicci\u00f3n: \u00absi hago esto de esta manera, pongo esto aqu\u00ed y esto otro all\u00e1, ocurrir\u00e1 esto y luego lo otro\u00bb. Y cuando, despu\u00e9s de alg\u00fan fallo que otro, cada cosa est\u00e1 en su sitio y ocurre lo que quer\u00edas que ocurriera, la satisfacci\u00f3n es inmensa. Tienes la sensaci\u00f3n de haber resuelto un problema fundamental del universo, haber creado algo de la nada y ser inmensamente sabio despu\u00e9s de haberte sentido inmensamente est\u00fapido. Supongo que los artesanos, los artistas, los ingenieros o los arquitectos tienen sensaciones similares con sus obras una vez que las terminan.<br \/>\nMe ha pasado frecuentemente que he encontrado un problema tedioso y he pensado: \u00abesto podr\u00eda solucionarlo con un programa\u00bb. Pero me he dado cuenta de que hacer el programa para solucionarlo llevar\u00eda m\u00e1s tiempo que realizar el trabajo tedioso en caso de hacerlo \u00aba mano\u00bb. Pero da igual; pocas veces puedo resistirme. Normalmente me digo que una vez hecho el programa, estar\u00e1 solucionado para siempre y si se me presenta otra ocasi\u00f3n, solo tendr\u00e9 que recurrir al programa ya realizado y que adem\u00e1s quiz\u00e1s otros que tienen el mismo problema podr\u00e1n usar mi programa para solucionarlo. La mayor parte de las veces se trata de excusas y el verdadero prop\u00f3sito es esquivar una tarea tediosa y sustituirlo por la apasionante ocupaci\u00f3n de desentra\u00f1ar el problema, convertirlo en un esquema, buscar un algoritmo que lo solucione y plasmarlo en una aplicaci\u00f3n que materialice la soluci\u00f3n. Da igual que sea ordenar una lista, cambiar unos nombres a unos archivos o escribir el c\u00f3digo de una tabla para una p\u00e1gina web.<br \/>\n<img loading=\"lazy\" decoding=\"async\" class=\" wp-image-4980 aligncenter\" src=\"https:\/\/robertopla.net\/blog\/wp-content\/uploads\/2023\/08\/html_ejemplo.png\" alt=\"\" width=\"496\" height=\"444\" srcset=\"https:\/\/robertopla.net\/blog\/wp-content\/uploads\/2023\/08\/html_ejemplo.png 533w, https:\/\/robertopla.net\/blog\/wp-content\/uploads\/2023\/08\/html_ejemplo-300x268.png 300w\" sizes=\"auto, (max-width: 496px) 100vw, 496px\" \/>La sensaci\u00f3n de programar va acompa\u00f1ada de la misma gratificaci\u00f3n que explorar algo nuevo, resolver un acertijo o jugar a un juego de estrategia, invertir o ganar dinero con los negocios. Est\u00e1s aprendiendo como funciona algo y usando unas herramientas l\u00f3gicas para resolverlo.<br \/>\nComo ejemplo, el \u00faltimo programa que hecho, genera el c\u00f3digo HTML de una tabla. Yo suelo escribir el HTML (el lenguaje de marcas con el que se componen las p\u00e1ginas web) con un editor, escribiendo las etiquetas. No me gustan los procesadores de texto que ocultan estas etiquetas o transforman el texto desde su formato a HTML. Suelen introducir mucho &#8216;ruido&#8217; en el c\u00f3digo y a mi me gustan las p\u00e1ginas en un HTML limpio y sencillo que permita inspeccionar el texto y su estructura, detectar fallos si los hay y sea cargado e interpretado por el navegador r\u00e1pidamente. Pero por mucho que te guste algo, hay partes que siempre resultan m\u00e1s tediosas. Una tabla tiene muchas etiquetas: una al principio y otra al final de la tabla misma y un par as\u00ed con diferentes contenidos, dos etiquetas para cada linea y cada celda. Todas ellas forman la estructura que permite que los datos se vean en el navegador como una cuadricula conteniendo datos.<\/p>\n<p>Mi programa, para generar una tabla, necesita dos par\u00e1metros: el numero de columnas y el de lineas. Con ellos genera el c\u00f3digo para toda la tabla en unas mil\u00e9simas de segundo. Da igual que tenga solo cuatro celdas o que tenga doscientas. Aunque no codifico tantas tablas,\u00a0 he hecho porque estoy aprendiendo <a href=\"https:\/\/docs.python.org\/es\/3\/tutorial\/index.html\">Python<\/a>, el lenguaje con el que est\u00e1 hecho mi programa.<\/p>\n<p style=\"text-align: center;\"><img decoding=\"async\" style=\"border: none; width: 418px; height: 213px;\" title=\"codigo Python\" src=\"https:\/\/robertopla.net\/blog\/wp-content\/uploads\/2023\/08\/python_ejem.png\" alt=\"codigo Python\" \/><\/p>\n<p>Python es un lenguaje tipo navaja suiza. Sirve para casi todo, porque hay mucha gente que ha programado librerias para cosas tan diversas como interpretar los meta datos de una fotograf\u00eda, realizar operaciones matem\u00e1ticas o entrenar redes neuronales. Lo usan cient\u00edficos desarrolladores de aplicaciones, juegos y p\u00e1ginas web, y muchos <a href=\"https:\/\/es.wikipedia.org\/wiki\/Friki\">friquis<\/a> que como yo quieren automatizar tareas mas o menos tediosas. Como las navajas suizas, es interesante porque es una herramienta que te puede ayudar a solucionar muchos problemas, y en mi caso, solucionarlo divirti\u00e9ndome.<br \/>\nEs muy poco probable que acabe creando una red neuronal, que la tenga que entrenar para algo y mucho menos que soluciones alg\u00fan problema cient\u00edfico o descubra una f\u00f3rmula o algoritmo de esos que luego salen en los libros. Pero os aseguro que cuando me pongo a hacer un sencillo programa de unas lineas para hacer cualquier chorrada, pase una tarde entera o unos minutos, disfruto como un ni\u00f1o presenciando un espect\u00e1culo fant\u00e1stico, me abstraigo y me concentro hasta olvidarme de cenar o de ir a dormir y acabo muchas veces cansado pero muy satisfecho. Con ganas de contarle a todo el mundo aquella peque\u00f1a chorrada que he hecho como si fuera una gran haza\u00f1a.<br \/>\nPor suerte, tengo un blog.<\/p>\n<p><strong>Nota:<\/strong> Editado el 27\/01\/2024 para mejorar la redacci\u00f3n.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Es dif\u00edcil explicar por qu\u00e9 algo te apasiona, pero es f\u00e1cil saber cuando algo te apasiona.  La satisfacci\u00f3n de resolver un problema, dando un orden y una estructura a las \u00f3rdenes que te permiten predecir un resultado, tiene bastante que ver con ello, independientemente de que trabajes en un gran proyecto o en un script trivial.   <a href=\"https:\/\/robertopla.net\/blog\/programar-es-apasionante.htm\">Sigue leyendo <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[170,180,275,289,529],"class_list":["post-4970","post","type-post","status-publish","format-standard","hentry","category-frikilandia","tag-html","tag-informacion","tag-personal","tag-programacion","tag-python"],"_links":{"self":[{"href":"https:\/\/robertopla.net\/blog\/wp-json\/wp\/v2\/posts\/4970","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/robertopla.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/robertopla.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/robertopla.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/robertopla.net\/blog\/wp-json\/wp\/v2\/comments?post=4970"}],"version-history":[{"count":7,"href":"https:\/\/robertopla.net\/blog\/wp-json\/wp\/v2\/posts\/4970\/revisions"}],"predecessor-version":[{"id":5439,"href":"https:\/\/robertopla.net\/blog\/wp-json\/wp\/v2\/posts\/4970\/revisions\/5439"}],"wp:attachment":[{"href":"https:\/\/robertopla.net\/blog\/wp-json\/wp\/v2\/media?parent=4970"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/robertopla.net\/blog\/wp-json\/wp\/v2\/categories?post=4970"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/robertopla.net\/blog\/wp-json\/wp\/v2\/tags?post=4970"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}