Imaginaos que un día os levantáis y decidís que queréis aprender a programar. Os puede parecer absurdo, pero ¿acaso no es absurdo que haya personas que fotografíen una tostada y la cuelgue en Instagram?
Lo primero es elegir un objetivo a largo plazo, una visión en la que nos imaginemos creando la reencarnación del PCFútbol, mi propia mascota virtual en el móvil o una web para colgar fotos de tostadas. Claro que a día de hoy no tenemos ni idea, pero esa visión será la que nos ayude a navegar entre las enormes cantidades de información, a superarnos y a elegir en cada momento las batallas adecuadas.
Tu visión personal será la que te ayude a aprender a programar.
Lo segundo es equiparse con todo lo necesario para programar. No queremos que por una mala planificación no podamos avanzar, y no sabemos qué otro día nos levantaremos con ganas. Para programar se necesitan 4 cosas:
Un ordenador adquirido en los últimos 10 años te vale. Y no tengas miedo, la programación no se va a cargar tu ordenador. Descargar películas y libros piratas sí.
La primera decisión de calado es elegir el lenguaje. Muchos habréis escuchado frases del tipo "Java es mejor que C++", "Javascript es el nuevo Java", "Lo mejor para empezar es Haskell" o "Yo programo en Excel". Paparruchas. Los que ya estén familiarizados con el mundo de la informática seguramente conozcan a E.W. Dijkstra [2], una de las voces más influyentes en la informática al que se le recuerda más por su chorrada de algoritmo [3] que por su apasionada obsesión por hacer programas que funcionen correctamente y su postura frente a la enseñanza de la programación. Detrás de los cientos de lenguajes de programación que existen, se encuentran no más de 5 paradigmas diferentes. Dijkstra defendía que el aprendizaje debía dirigirse hacia los paradigmas de programación en lugar de centrarse en los lenguajes. Cuando una persona aprende un segundo lenguaje, empieza ver las relaciones entre ambos y establece patrones comunes. Esos patrones son los que definen un paradigma. De esta manera, un programador que no aprende al menos dos lenguajes que siguen el mismo paradigma es un programador incompleto; y un programador que conoce un paradigma puede aprender un lenguaje en horas.
El objetivo debe ser aprender un paradigma de programación, no un lenguaje.
El primer objetivo en la formación de un programador debe ser el aprendizaje del paradigma de la programación estructurada. Aquí encajan lenguajes clásicos como C o Pascal. Sin embargo el paradigma predominante hoy en día es una evolución de la programación estructurada denominada programación orientada a objetos. Lenguajes como C++, Java, C#, Ruby o Scala siguen este paradigma. Como es deseable aprender varios lenguajes y la programación orientada a objetos introduce elementos innecesarios para las primeras etapas del aprendizaje, el lenguaje elegido será C.
El entorno de desarrollo es la aplicación (o conjunto de aplicaciones) que nos permitirá escribir código en un lenguaje y que de forma mágica consiga ejecutarlo. Será el encargado de hacer realidad nuestros sueños y de darnos a la vez muchos quebraderos de cabeza. Existen multitud de entornos de desarrollo y elegir el adecuado puede ser una tarea ardua. Yo os recomiendo que comencéis a utilizar Eclipse [1]. Escucharéis opiniones en contra y a favor. Mi consejo es que os evitéis debates espúreos y que lo descarguéis y lo instaléis. Es gratuito, está disponible en todos los sistemas operativos y soporta múltiples lenguajes. Así si un día cambiáis de ordenador o aprendéis un nuevo lenguaje, el trauma por cambiar de entorno será casi inexistente.
La definición de "buen libro" puede ser tan subjetiva como la de "mejor equipo de fútbol" o la de "mejor plato". Hay muchas posibles decisiones y cada persona recomendará uno distinto (algunos incluso a sabiendas de que es malo). Sólo hay una cosa peor que tomar una mala decisión y es no tomarla. Así que dejémonos de debates estériles y vayamos a hablar de EL LIBRO [4] de Herbert Schildt, para mi gusto el mejor escritor de libros didácticos de programación. Un libro con más ejemplos que texto no puede ser malo. Además obliga al lector a poner en práctica los conocimientos y a relacionarlos de forma constante, ofreciendo soluciones a todas las preguntas que plantea. Tiene libros de otros muchos lenguajes como C++, Java o C# que siguen la misma metodología y que son realmente buenos.
Este aspecto es más importante que cualquiera de los anteriores. Debes creerte capaz de hacer cosas y pensar en que algún día realizarás tu visión. Pronto aprenderás que los retos más difíciles pueden resolverse con facilidad y la mayor chorrada puede suponerte un enorme obstáculo. Pero al final todos los problemas se resuelven y la recompensa debe merecer la pena. Invierte tiempo en buscar tu motivación.
Muy fácil: equípate. Hazte con un ordenador, instala Eclipse CDT [1], localiza ese libro y dibuja tu visión. Pronto volveré con retos que espero que os motiven.
[1] Eclipse CDT.
[2] Puedes leer algo más sobre E.W. Dijkstra aquí.
[3] Si quieres saber qué es y para qué sirve el algoritmo de Dijsktra echa un vistazo aquí.
[4] Herbert Schildt. "C: Guía de autoenseñanza". Ed. McGraw-Hill 2001, ISBN 9788448132040. Lo podéis encontrar en la mayoría de bibliotecas universitarias.
Pablo Trinidad 6 septiembre, 2014
Posted In: Aprendiendo a programar, Tecnologería
[…] objetivo: como comenté anteriormente, la clave para estar motivado es tener un objetivo ambicioso. Intenta pensar en cada momento cómo […]