﻿{"id":9444,"date":"2019-05-14T11:55:08","date_gmt":"2019-05-14T16:55:08","guid":{"rendered":"https:\/\/www.uv.mx\/cienciauv\/?p=9444"},"modified":"2019-05-14T12:00:59","modified_gmt":"2019-05-14T17:00:59","slug":"la-programaciondecomputadorasesunartemarcial","status":"publish","type":"post","link":"https:\/\/www.uv.mx\/cienciauv\/blog\/la-programaciondecomputadorasesunartemarcial\/","title":{"rendered":"La Programaci\u00f3n de Computadoras es un Arte\u2026 Marcial."},"content":{"rendered":"<p><a href=\"https:\/\/www.uv.mx\/cienciauv\/files\/2019\/05\/15-CYL-ARTE-MARCIAL-TITULO.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"aligncenter wp-image-9453 size-full\" src=\"https:\/\/www.uv.mx\/cienciauv\/files\/2019\/05\/15-CYL-ARTE-MARCIAL-TITULO.jpg\" alt=\"\" width=\"2092\" height=\"410\" srcset=\"https:\/\/www.uv.mx\/cienciauv\/files\/2019\/05\/15-CYL-ARTE-MARCIAL-TITULO.jpg 2092w, https:\/\/www.uv.mx\/cienciauv\/files\/2019\/05\/15-CYL-ARTE-MARCIAL-TITULO-300x59.jpg 300w, https:\/\/www.uv.mx\/cienciauv\/files\/2019\/05\/15-CYL-ARTE-MARCIAL-TITULO-768x151.jpg 768w, https:\/\/www.uv.mx\/cienciauv\/files\/2019\/05\/15-CYL-ARTE-MARCIAL-TITULO-1024x201.jpg 1024w\" sizes=\"(max-width: 2092px) 100vw, 2092px\" \/><\/a><\/p>\n<p style=\"text-align: right\">Wulfrano Arturo Luna Ram\u00edrez*<\/p>\n<blockquote>\n<p style=\"text-align: right\"><strong>Nada es imposible para una mente dispuesta a (re)programarse<\/strong>.<\/p>\n<\/blockquote>\n<p><em>\u00a0<\/em><strong>Una mirada distinta de la ense\u00f1anza de la programaci\u00f3n<\/strong><\/p>\n<p>Indispensable en el mundo actual, pero con mayor \u00e9nfasis en el caso de las estudiantes de tecnolog\u00edas de la informaci\u00f3n y \u00e1reas afines, la ense\u00f1anza y aprendizaje de la programaci\u00f3n de computadoras representa todo un reto para docentes y alumnos. Presenta altos \u00edndices de reprobaci\u00f3n, y frecuentemente est\u00e1 seriada con otras, lo que la hace crucial para los curr\u00edculos de los inform\u00e1ticos y\u00a0\u00a0 tecn\u00f3logos de la informaci\u00f3n.<\/p>\n<p>Si la programaci\u00f3n de computadoras es un arte, como apunta Donald Knuth, en su influyente libro, \u201cEl arte de la programaci\u00f3n\u201d, la ciberactivista y escritora \u201cSt Jude\u201d (Jude Milhon), postulaba el \u201chacking<em>\u201d<\/em> como arte marcial: la necesidad de defenderse en un mundo de intromisiones m\u00faltiples, siguiendo los m\u00e9todos de defensa del Aiki-Do (<a href=\"https:\/\/www.wired.com\/1995\/02\/st-jude\/\">https:\/\/www.wired.com\/1995\/02\/st-jude\/<\/a>).<\/p>\n<p>Adem\u00e1s, al puro estilo del aprendizaje de un arte marcial, la programaci\u00f3n de computadoras es una actividad que requiere una s\u00f3lida formaci\u00f3n te\u00f3rica de los principios b\u00e1sicos y una pr\u00e1ctica constante de ellos, a fin de conseguir el nivel m\u00ednimo de competencia requerido por el ejercicio de la profesi\u00f3n.<\/p>\n<p>Por su parte, Dorothy Denning por igual, menciona las similitudes entre ense\u00f1ar karate y computaci\u00f3n (<a href=\"http:\/\/cpsr.org\/prevsite\/cpsr\/privacy\/crime\/denning.hackers.html\/\">http:\/\/cpsr.org\/prevsite\/cpsr\/privacy\/crime\/denning.hackers.html\/<\/a>). Adicionalmente, Emily Bache propone un manual para un Dojo de programaci\u00f3n (<a href=\"https:\/\/leanpub.com\/codingdojohandbook\">https:\/\/leanpub.com\/codingdojohandbook<\/a>), si bien su enfoque es la industria no en la ense\u00f1anza-aprendizaje como aqu\u00ed se postula.<\/p>\n<p>La idea primordial se sintetiza en concebir la soluci\u00f3n de problemas mediante programaci\u00f3n como un combate frente a un oponente (el problema a resolver), para el que las t\u00e9cnicas de defensa y ataque son las herramientas y fundamentos te\u00f3ricos de la programaci\u00f3n (la estrategia de soluci\u00f3n, su dise\u00f1o, codificaci\u00f3n y pruebas).<\/p>\n<p><strong>Aprender la t\u00e9cnica de la defensa y el ataque<\/strong><\/p>\n<p>Tomemos por caso el Karate-Do o \u201ccamino de la mano vac\u00eda\u201d (no utiliza armas para el combate), cuya pr\u00e1ctica incluye \u201ckata\u201d y \u201ckumite\u201d. En el pensamiento japon\u00e9s, la \u201ckata\u201d es una manera de hacer bien las cosas, un m\u00e9todo. En Karate-Do refiere a \u201cun combate imaginario\u201d expresado como secuencias predise\u00f1adas de movimientos. Su pr\u00e1ctica pule la t\u00e9cnica por repetici\u00f3n, hasta lograr la mayor pericia posible.<\/p>\n<p>Una met\u00e1fora imperfecta: la repetici\u00f3n no de los problemas (un equ\u00edvoco y un desperdicio de tiempo), sino de la t\u00e9cnica para obtener las soluciones y las buenas pr\u00e1cticas para lograrlas.<\/p>\n<p><a href=\"https:\/\/www.uv.mx\/cienciauv\/files\/2019\/05\/dojo-man.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"wp-image-9454 alignleft\" src=\"https:\/\/www.uv.mx\/cienciauv\/files\/2019\/05\/dojo-man.jpg\" alt=\"\" width=\"401\" height=\"494\" srcset=\"https:\/\/www.uv.mx\/cienciauv\/files\/2019\/05\/dojo-man.jpg 831w, https:\/\/www.uv.mx\/cienciauv\/files\/2019\/05\/dojo-man-243x300.jpg 243w, https:\/\/www.uv.mx\/cienciauv\/files\/2019\/05\/dojo-man-768x946.jpg 768w\" sizes=\"(max-width: 401px) 100vw, 401px\" \/><\/a><\/p>\n<p>El kumite o combate significa \u00abentrelazar, cruzar, unir las manos\u00bb. Es la aplicaci\u00f3n pr\u00e1ctica de la t\u00e9cnica en un enfrentamiento real contra un oponente. El kumite como resoluci\u00f3n de un problema, de manera competitiva: bajo el binomio programaci\u00f3n-pruebas, y el an\u00e1lisis de algoritmos. O de manera cooperativa: bajo el principio de modularidad. Bajo \u00e9sta \u00f3ptica, habr\u00eda distintos tipos de combate:<\/p>\n<ol>\n<li>De estudio y aplicaci\u00f3n de las t\u00e9cnicas de las katas, bajo ciertas reglas acordadas por el docente. Aplicado en la comparaci\u00f3n de t\u00e9cnicas de programaci\u00f3n, la modularizaci\u00f3n de programas y el desarrollo de pruebas.<\/li>\n<li>De contacto pleno: aplicaci\u00f3n libre de las t\u00e9cnicas, restringida s\u00f3lo por la \u00f3ptima soluci\u00f3n al problema planteado. Aplicaci\u00f3n: dise\u00f1o, programaci\u00f3n, pruebas y refactorizaci\u00f3n.<\/li>\n<\/ol>\n<p><strong>En busca del\u2026 \u201cDo\u201d<\/strong><\/p>\n<p>Las artes marciales tradicionales japonesas, incluyen en su nombre, el concepto de \u201cDo\u201d o camino. Esto representa lineamientos ideol\u00f3gicos y prop\u00f3sitos que abarcan la formaci\u00f3n t\u00e9cnica y \u00e9tica del practicante.<\/p>\n<p>El \u201cDojo\u201d o \u201cespacio para el Do\u201d, es el lugar donde se realiza el entrenamiento. En programaci\u00f3n comprende el espacio f\u00edsico destinado a la pr\u00e1ctica (un laboratorio o el \u00e1rea de trabajo personal) y las herramientas de c\u00f3mputo, es decir el \u201cAmbiente de Desarrollo\u201d, que incluye:<\/p>\n<p>&#8211; Herramienta de edici\u00f3n de diagramas de dise\u00f1o, para crear los diagramas de dise\u00f1o.<\/p>\n<p>&#8211; Herramientas de edici\u00f3n de c\u00f3digo: para transcribir los programas desarrollados.<\/p>\n<p>&#8211; Compilador o Int\u00e9rprete: para producir el archivo que la computadora ejecuta finalmente.<\/p>\n<p>&#8211; Manejador de versiones: para organizar archivos y administrar los cambios en ellos.<\/p>\n<p>Finalmente, El \u201cDojo-kum\u201d en las artes marciales es un c\u00f3digo de \u00e9tica que trasciende al dojo, aplicable en la vida cotidiana de todo practicante. Asimil\u00e1ndolo a los c\u00f3digos de \u00e9tica de los \u201chackers\u201d y profesionales de la inform\u00e1tica y la computaci\u00f3n, consideremos los siguientes puntos:<\/p>\n<ol>\n<li>Esforzarse siempre y actuar con auto disciplina. Un programador competente velar\u00eda por el aprendizaje continuo y la actualizaci\u00f3n constante.<\/li>\n<li>Incentivar la creatividad. Tras entender un programa, el programador debe dise\u00f1ar la soluci\u00f3n, esto pasa por imaginarla, detallarla y luego codificarla. Programar es crear, y ello implica motivar por distintos medios el pensamiento creativo.<\/li>\n<li>Incentivar el pensamiento cr\u00edtico. An\u00e1logo al punto anterior, todo buen programador es cr\u00edticos de las soluciones provistas, sobre todo por las que \u00e9l mismo obtiene.<\/li>\n<li>Nunca plagiar el trabajo de otros. Usar fragmentos o programas completos desarrollados por otros, sin permiso y sin citar la fuente, es un delito y entorpece la mente: usar c\u00f3digo en vez de desarrollarlo provee una soluci\u00f3n, pero a costa de no aprender, lo que es inaceptable.<\/li>\n<li>Procurar la reutilizaci\u00f3n de c\u00f3digo. A diferencia del plagio, es lo que ha llevado al software a escala industrial. Los bloques constitutivos de todo sistema son partes que una vez programadas, deben aplicarse seg\u00fan se necesite, no perder tiempo haciendo todo otra vez.<\/li>\n<li>Buscar la optimizaci\u00f3n del c\u00f3digo y refactorizar siempre. No basta tener una buena soluci\u00f3n, hay que buscar la mejor. De ello nacen la prevenci\u00f3n y detecci\u00f3n de errores, la depuraci\u00f3n y la reescritura de c\u00f3digo.<\/li>\n<li>Guardar estricta etiqueta de programador. Esto es una manera de decir seguir buenas pr\u00e1cticas de ingenier\u00eda de software, pol\u00edticas de desarrollo y metodolog\u00edas.<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/www.uv.mx\/cienciauv\/files\/2019\/05\/15-CYL-ARTE-MARCIAL-00.pdf\">Descarga Versi\u00f3n PDF<\/a><\/p>\n<p>* Investigador adscrito a Tecnolog\u00edas de la Informaci\u00f3n, UAM-Cuajimalpa<\/p>\n<p>correo: wulfranoarturo@gmail.com<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wulfrano Arturo Luna Ram\u00edrez* Nada es imposible para una mente dispuesta a (re)programarse. \u00a0Una mirada distinta de la ense\u00f1anza de la programaci\u00f3n Indispensable en el mundo actual, pero con mayor \u00e9nfasis en el caso de las estudiantes de tecnolog\u00edas de la informaci\u00f3n y \u00e1reas afines, la ense\u00f1anza y aprendizaje de la programaci\u00f3n de computadoras representa [&hellip;]<\/p>\n","protected":false},"author":1746,"featured_media":9451,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"ventana_nueva":"","tipo_url":"","url":"","extracto":"","imagen_halign":"","imagen_valign":"","bg_size":"","text_hide":"","media_url":"","tipo_media":"","video_url":"","video_pos":"","video_youtube":""},"categories":[28],"tags":[806,1551,37,573,588,17,1423,1550,545,1548,1549,1547,1552,589,414,1094],"_links":{"self":[{"href":"https:\/\/www.uv.mx\/cienciauv\/wp-json\/wp\/v2\/posts\/9444"}],"collection":[{"href":"https:\/\/www.uv.mx\/cienciauv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.uv.mx\/cienciauv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.uv.mx\/cienciauv\/wp-json\/wp\/v2\/users\/1746"}],"replies":[{"embeddable":true,"href":"https:\/\/www.uv.mx\/cienciauv\/wp-json\/wp\/v2\/comments?post=9444"}],"version-history":[{"count":0,"href":"https:\/\/www.uv.mx\/cienciauv\/wp-json\/wp\/v2\/posts\/9444\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.uv.mx\/cienciauv\/wp-json\/wp\/v2\/media\/9451"}],"wp:attachment":[{"href":"https:\/\/www.uv.mx\/cienciauv\/wp-json\/wp\/v2\/media?parent=9444"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.uv.mx\/cienciauv\/wp-json\/wp\/v2\/categories?post=9444"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.uv.mx\/cienciauv\/wp-json\/wp\/v2\/tags?post=9444"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}