viernes, 16 de diciembre de 2011

¿Que se necesita para aprender a programar?

Todo programador principiante se hace esta pregunta en algún momento, ya sea antes de empezar a aprender o cuando está practicando los ejercicios que repentinamente no le salen bien... esta última situación es crítica puesto que es donde muchos de los que inician el aprendizaje se dejan vencer por la complejidad que supone el aprender a programar.
En base a mi propia experiencia, puedo decirles a mis amigos principiantes que no es tan complicado como piensan, así que me permito enumerar algunos elementos que son muy útiles tanto en el aprendizaje como a la hora de ejercer esta profesión.


  1. Paciencia y perseverancia: Dos actitudes muy importantes en todo momento para un programador, de hecho, para cualquier cosa que se emprenda.
  2. Aptitud: Como reza un dicho que alguna vez leí, "Uno no puede obtener lo que la naturaleza no le ha dado". Personalmente pienso que el conjunto de nuestros intereses y nuestras habilidades forman lo que se llama "aptitud"; Si uno cuenta con el interés pero no con las habilidades necesarias, aún se pueden desarrollar esas habilidades, pero, como podrán imaginar, ser requerirá de mucha paciencia y perseverancia.
  3. Conocimientos de informática: Obviamente no se puede considerar aprender a programar de inmediato si no se sabe qué es una computadora y cómo funciona, qué es hardware, software, etc. Por lo tanto, alguien que considere aprender a programar tiene que, forzosamente, pasar algún curso de computación hasta llegar, de preferencia, a un nivel avanzado, de tal forma que conozca bien la administración y estructura de directorios y archivos del sistema operativo, más que todo; también podríamos aplicar el dicho "echando a perder se aprende", pero eso talvez salga un poquitín más costoso.
  4. Lógica matemática: Esto es fundamental para no volverte loco a la hora de programar. Las matemáticas discretas y combinatorias son, a mi parecer, las ciencias fundamentales para todo aquel que quiera introducirse al mundo de la programación. Solo como una breve descripción, el estudio de estas ciencias ayuda a ejercitar al cerebro para analizar expresiones que tienen 2 valores posibles: verdadero o falso. Esto es importante porque la programación se reduce a muchas tomas de decisión donde el resultado puede ser verdadero o falso.
Para terminar, muchos se preguntarán... ¿Y los algoritmos? Pues, resulta que los algoritmos son parte de lo que se quiere aprender, por esto mismo se deja para otra ocasión.

Me gustaría agregar un artículo que leí hace poco, y que me parece muy interesante, originalmente está escrito en iglés, pero esta es una traducción, y se llama "Aprenda a programar en diez años!".

Y ustedes, ¿Qué otros elementos creen que sean importantes para el aprendizaje y ejercicio de la programación?

Saludos.

lunes, 5 de diciembre de 2011

Empezar... ¿desde dónde?

Muy bien, entonces, he de empezar mi blog contándoles que no se me ocurre por donde empezar... me gustaría postear muchísimas cosas, pero resulta que no he planeado cómo estructurarlas todas.

Un día, me dije a mí mismo:
- Mi mismo, ¿Qué es lo que necesitaría un programador principiante?
Pregunta que cambió luego a, ¿Qué necesitaría yo si fuera un programador novato?, y luego evolucionó a ¿Qué era lo que yo esperaba cuando era un novato?

Fué entonces que recordé la escencia que debe tener este blog: Debe ser un lugar práctico donde el programador de cualquier nivel pueda encontrar rápidamente lo que busca, y aprenderlo y comprenderlo utilizando el menor tiempo posible.

Pues bien, gracias a esto, la respuesta a mi interrogante fué muy sencilla: necesito una página bien estructurada donde pueda encontrar fácilmente todo lo que necesite, desde lo más básico para un programador hasta enlaces hacia cursos y recursos externos, pero todo en un solo lugar.

Pensé en las siguientes posibilidades:

  • Una página con varios cursos de varios lenguajes de programación, suena bien, pero de estos ya existen muchos y muy buenos, así que hacer un curso más sería algo muy poco práctico a estas alturas, talvez sería mejor hacer un directorio para enlazar a los cursos ya existentes.
  • Tutoriales o "Howto's", pero de estos también existen muchos, y muy bien explicados.
  • Traducciones de artículos en inglés, puesto que hay muchos que no se llevan aún con éste idioma.
  • Traducciones de documentación de Microsoft a un lenguaje que los humanos podamos entender (creo que esto sí sería de mucha utilidad, jaja).


Después de pensar sobre estas cosas, creo que tengo una idea más clara de cómo puedo iniciar con este sitio de recursos (JA! ¿Que tal? de blog a sitio de recursos... ¿Iré muy rápido?):

  • Podría incluir un directorio que tenga enlaces a los cursos online que ya existen, de todos los lenguajes posibles.
  • Además, podría incluir tutoriales o "howto's" dentro de los cuales incluya enlaces a otros tutoriales similares, ya que todos necesitamos más que un ejemplo.
  • Un gran golsario para programadores no estaría nada mal; no sería un glosario como los demás: además de la definición formal de un  término, podría añadir una definición un poco más informal, pero fácilmente entendible, y talvez enlaces a howto's y ejemplos relacionados.


En fin... son tantas cosas las que se me ocurren, pero algo bien importante: ESTOY ABIERTO A SUGERENCIAS... Si lo que busco es ayudar a los lectores de este blog, escuchar sus ideas y opiniones para implementarlo es algo necesario, ¿No creen? Así que, toda sugerencia es bienvenida.

Pronto incluiré contenido útil. Saludos.

martes, 29 de noviembre de 2011

Introducción y... ¡Bienvenidos a mi blog!


Es increíble cómo cambian las cosas, cómo las nuevas tecnologías cambian de tal forma que uno nunca sabe por completo sobre algo, y siempre es necesario estar en constante aprendizaje.

Una muestra de esta situación es la programación. Con la amplia gama de lenguajes (y frameworks) que existe hoy en día, todos tenemos la oportunidad de conocerles y elegir los que creamos convenientes para desarrollar nuestros programas... jaja, ¡mentira!. Resulta que contamos con una "pequeña cosa loca", que lastimosamente no se llama amor, sino "tiempo", y que cada vez es mas y mas escaso en "algunas" situaciones, tan escaso, que normalmente no contamos con él para poder realizar pruebas y conocer mejor los resultados que puedan dar algunas funciones que no conocemos de nuestro lenguaje favorito, no digamos de un lenguaje que estemos aprendiendo.

Realmente, si no fuera por la gran cantidad de blogs y foros que se unen a la documentación oficial, documentación de terceros y discusiones que hay en línea acerca de un solo lenguaje o, incluso, de una sola función, no podríamos avanzar mucho en nuestro aprendizaje.

Es por esto que me veo motivado a realizar este blog, el cual espero que se convierta en un espacio en donde pueda almacenar mis impresiones acerca de los lenguajes que vaya aprendiendo y probando, además de poder compartir con otros jóvenes programadores, de forma práctica, lo que yo haya observado de cada función con la que haya experimentado, así como compartir algunas ideas de algoritmos, tips, etc.

Entonces, es de mi agrado poder añadir este espacio al tan amplio mundo de la documentación para programadores, y aunque mi público objetivo son los programadores principiantes, creo (y espero) que pueda llegar a ser de gran utilidad para programadores de todos los niveles.

Ya que no me queda más que decir para inaugurar este, mi primer blog, entonces les doy la más cordial bienvenida, que, como ya dije, sea de mucha utilidad y, pues... ¡Comenzamos!

Saludos.