tag:blogger.com,1999:blog-64581236009192349862024-03-13T06:34:37.908-07:00Code reading groupCésarhttp://www.blogger.com/profile/11970670311484240889noreply@blogger.comBlogger1125tag:blogger.com,1999:blog-6458123600919234986.post-41706225644148273782007-07-13T08:07:00.000-07:002007-07-13T08:36:52.430-07:00Presentación<h2>¿Cómo te enseñan a programar?</h2>Me ha pasado en la facultad que han tratado de enseñarme a programar mediante un método particularmente cruel:<br /><br />Un docente explica las reglas de sintaxis de un lenguaje de programación, <span class="blsp-spelling-corrected" id="SPELLING_ERROR_0">sobre vuela</span> sobre el modelo de ejecución que tendrá ese programa cuando lo tome el intérprete o compilador y luego me entrega un enunciado de un problema para resolver.<br /><br />O sea, se espera que <span style="font-weight: bold;">escriba</span> un programa de computadora que resuelva el problema planteado en el enunciado.<br /><br />En el mejor de los casos, el docente muestra unos ejemplos triviales de uso de las primitivas que estuvo explicando; sino, a buscar en la referencia del lenguaje. De cualquier manera, los problemas casi nunca están escogidos de modo que con las primitivas explicadas alcance para resolverlos: a buscar entonces la referencia. Peor caso todavía, y no poco probable: el docente no usa el lenguaje de programación que enseña, más que para dar clases, así que él/ella tampoco lo conoce, y por lo tanto ni sabe cuáles primitivas sería muy útiles conocer, y algunas de las cosas que sabe, <span class="blsp-spelling-error" id="SPELLING_ERROR_1">er</span>..., bueno, están equivocadas, o son pésimas prácticas de programación en dicho lenguaje.<br /><br />¿Cómo ganar en la lucha por escribir el código elegante, correcto <span class="blsp-spelling-error" id="SPELLING_ERROR_2"></span>para ese problema? Código que no solamente sirva para aprobar una asignatura en la facultad, sino que sirva para alterar mi red neuronal de tal manera que mis sesos generen programas elegantes y correctos?<br /><br />La verdad es que nadie sabe cómo lograr eso.<br /><br /><h2>Escribir y leer: el <span class="blsp-spelling-error" id="SPELLING_ERROR_3">yin</span>/<span class="blsp-spelling-error" id="SPELLING_ERROR_4">yang</span> de la programación</h2>Yo tengo una corazonada, y es que para aprender a escribir programas, se debe aprender a leer programas. Claro que hay aquí un caso más del huevo y la gallina. ¿Cómo leer si nada se ha escrito? ¿Y si leo lo que escribí, cómo aprender?<br /><br />La paradoja es superficial. Ya existen muy buenos ejemplos de programas escritos. Mucho software libre es una fuente de aprendizaje (y ése es uno de los objetivos del software libre). También es cierto que mucho software (libre o privativo) es horripilante, <span style="font-style: italic;"><span class="blsp-spelling-error" id="SPELLING_ERROR_5">auch</span></span>.<br /><br />Así que nos queda sólo un escollo: el discernimiento. ¿Quién determina cuándo una pieza de código es una obra de arte digna de ser imitada o un adefesio del cual huir a campo traviesa? La respuesta aquí no es trivial, pero podemos empezar por una simple: veamos el código público de gente que tiene reconocimiento de sus pares.<br /><br />La lectura sola de código puede hacer mucho para mejorar o ayudarnos a encontrar nuestro estilo, pero sería una medida incompleta para hacernos escritores de programas. También debemos escribir programas. Muchos sitios en la <span class="blsp-spelling-corrected" id="SPELLING_ERROR_6">Internet</span> tienen ayudas y recursos para los que desean escribir, así que nuestra necesidad de escribir puede ser satisfecha de momento. Algo de eso también recomendaremos.<br /><br />Lo que <span class="blsp-spelling-corrected" id="SPELLING_ERROR_7">hará</span> muestro blog distintivo es que pondremos énfasis en la <span style="font-weight: bold;">lectura</span> de buen código.<br /><br />Bienvenida, bienvenido.Césarhttp://www.blogger.com/profile/11970670311484240889noreply@blogger.com0