31 de enero de 2006

A cup of coffee???


Bueno. Pues en esto de la programada ya se empieza a hacer vicio eso de desvelarse y, para hechar a andar la neurona de nuevo, nada mejor que un rico y aromático cafecín

30 de enero de 2006

iLike

En estos días me he puesto a pensar si lo que he andado aprendiendo realmente vale la "pena", como dirían por ahí.


Y es concretamente sobre este manejo de palabras que me decidí a escribir lo siguiente:


Como su puede leer he andado aprendiendo a programar en Python. Para mí, ha sido uno de los objetivos que he llevado a cabo con más entusiasmo y por tanto, constancia. No quise utilizar la palabra disciplina, porque ésta la asocio con cosas con las que generalmente uno las hace más a fuerza que de gusto. Siento que el aprender a programar te vuelve más analítico y metódico. Así que lejos de ser una pena, esto se ha vuelto muy divertido y desafiante.


Siempre me he inclinado por la idea del autoaprendizaje. En la escuela (llámese Secundaria, Universidad, Cursos de cómputo que cuestan una fortuna) generalmente te obligan a memorizar y aprender algo, antes de enseñar y explicarte cómo funciona. Ojo: No estoy en contra de memorizar y utilizar reglas mnemotécnicas. De lo que estoy en contra es de su abuso.


Y es que muchas veces en el Establishment escolar (recordar Monty Python's The Meaning of life-Educación) sí te enseñan a odiar lo que pretenden que aprendas.


Sobre los materiales que he utilizado para mi Curso de Python están:


How To Think Like a Computer Scientist


Video-Tutoriales de Chieh


Por ahora estos han sido mi material de aprendizaje.


Hasta el próximo post

9 de enero de 2006

iProg

En este post decidí relatar la experiencia que he tenido en
estos últimos días al aprender a programar. El lenguaje de
programación con el que llevo a cabo este objetivo es Python

Aclaro que no me ha resultado fácil. El aprender
a programar es muy parecido a aprender matemáticas, química
o física. Todos estos campos tienen en común el manejar lenguajes
formales. Cada uno de ellos ha sido diseñado para una aplicacion
específica y por tanto, poseen reglas y sintáxis bien definidas
(al menos es lo que intentan organismos como la IUPAC, en el
caso de la Química).

El aprender a programar NO es tan parecido como aprender un nuevo
idioma, a pesar de que en ambos casos estamos aprendiendo a
comunicarnos. En este último caso, el aprender un idioma pertenece
al campo de los lenguajes naturales. Por ejemplo, en un poema
una sola frase puede tener varios significados, incluso cuando se
lee en varias ocasiones. En cambio, una sentencia en un programa;
una ecuación; una fórmula química, todos ellos tienen un significado
específico.

El primer obstáculo que he tenido ha sido habituar la
mente al siguiente proceso, el cual consiste en:

Plantear y definir un problema (situación real o inventada)

Traducir la solución de éste a un conjunto de instrucciones secuenciadas, para
que por medio de tareas sencillas (procesos iterativos, condicionales,
y reglas lógicas) se llegue a la solución final del problema.

Es a lo largo de este proceso donde el análisis y la síntesis están
interviniendo continuamente. Eso ha sido para mí la parte más interesante.

El siguiente obstáculo ha sido el aprender a ser un Sherlock Holmes, o
en otras palabras, encontrar la razón por la cual tu programa no hace
lo que tu deseas. Lo cual se puede deber a errores de sintáxis,
ejecución o semántica. Suena fácil, pero en verdad que en algunos
casos la cosa se complica. Citando al personaje de Arthur Conan Doyle:
"When you have eliminated the impossible, whatever remains, however
improbable, must be the truth" (The Sign of four). A esta etapa, los
programadores gabachos le llaman "debugging". Por aca a veces le
decimos depurar, otras debuguear. Por supuesto que para estos
casos la paciencia no solo es virtud de Buda.

El siguiente punto consistió en encontrar un buen libro para aprender
a programar. Gran parte de lo que aquí menciono lo encuentran en el libro
"How to Think Like a Computer Scientist-Learning with Python" de Downey,
Elkner y Meyers. En especial la primer parte del libro me ha resultado
muy útil (se puede considerar que el libro se compone de dos partes)
porque es básicamente una introducción a los fundamentos de la
programación.

Ya había escuchado varios comentarios favorables en torno a Python
y su papel todoterreno. Pero una de las razones que me hizo elegir
este lenguaje de programación es su sencilles y claridad en la
sintáxis, en las buenas prácticas de programación y en su
ejecución multiplataforma. En otras palabras, es el lenguaje más
versátil y amigable que conozco. En cuanto a su papel en el desarrollo
profesional, es de notar que el buscador Google implementa gran parte
de sus aplicaciones en Python.


En síntesis: Python es un lenguaje de programación sencillo,
elegante y poderoso, el cual da la posibilidad a muchos de
aprender a programar y generar sus propias aplicaciones, según
sean sus necesidades.

Pues estas son algunas reflexiones. Hasta la próxima.