45. Aprender a programar




La Tecnología para todos show

Summary: Sois muchos los que nos hacéis llegar vuestra inquietud preguntándonos cómo aprender a programar. Muchos de vosotros por un motivo u otro estáis ya interesados en programar en un determinado lenguaje, ya sea programar en c, en java, en iOS, en android o en las múltiples tecnologías que hoy disponemos. Otros nos preguntáis cómo empezar a programar desde cero. Estas preguntas tan interesantes nos han llegado a través del formulario de contacto pero recordar, tenéis una lista de distribución para suscribiros, nos podéis seguir en Twitter (@programarfacilc) y en Facebook. Como ya os hemos dicho, las dos preguntas más típicas son empezar a programar en un lenguaje que no conocéis y la otra empezar a programar en un lenguaje desde cero. Si pertenecéis a uno de estos grupos estáis equivocados. El primero porque dependiendo del nivel que se tenga de conocimientos puede que te cueste mucho aprender ese lenguaje. Es lo que los desarrolladores de software denominamos “curva de aprendizaje de un lenguaje de programación”. Los hay más fáciles y los hay más difíciles. Habrá que ser honestos y empezar con uno acorde a nuestros conocimientos. El segundo grupo también está equivocado porque hoy día nadie parte de cero, todos en alguna medida ya hemos programado algo, ya sea nuestro reproductor multimedia, nuestro móvil, la lavadora y un largo etcétera de máquinas que nos rodean. Aunque no os lo creáis, todos los días utilizamos algoritmos en nuestra vida diaria ya que, un algoritmo no es más que un conjunto de instrucciones o reglas finitas (que sabemos de antemano cuantas instrucciones o reglas tiene), bien definidas, ordenadas y que por medio de una sucesión de pasos nos permite llegar a un resultado o a una solución. Por lo tanto un ejemplo sería cuando conectamos un horno, seguimos unas instrucciones finitas, bien definidas y ordenadas cuyo resultado es tener el horno a la temperatura deseada. Podéis ver a continuación cuáles serían las instrucciones para ejecutar este algoritmo. Controlar que no haya nada del horno para que no se queme. Girar el mando de temperatura del horno hasta 180º ¿Funciona? No. Salir y buscar solución. Si. Seguir procedimiento. Girar el mando de fuente de calor para que solo caliente por la parte de arriba. ¿Funciona? No. Salir y buscar solución. Si. Seguir procedimiento. Esperar a que se apague la luz que nos indica que el horno está a la temperatura seleccionada. Resultado: horno encendido con fuente de calor por arriba a 180º Así es que todos ya tenemos un camino hecho y nuestros cerebros están preparados para pasar a un nuevo nivel. Ya nadie os podrá decir que os enseña a programar desde cero. Pero sí que hay una base en todos los lenguajes de programación, desde el lenguaje ensamblador hasta otros de alto nivel como java, la lógica aristotélica y las matemáticas. Así es que nunca está de más que le echéis un vistazo. El siguiente paso será conocer las estructuras que comparten todos los lenguajes de programación de alto nivel (solo cambia la sintaxis), expresiones condicionales, bucles… es decir comprobar si se cumple una premisa y seguir a la siguiente iteración que puede ser un bucle que se repita tantas veces una operación matemática hasta que se cumpla una condición. Y ya nos quedaría elegir el lenguaje de programación. Que no os confundan, es algo muy subjetivo y cada “especialista” os va a decir uno. Tal vez Scracth sea una buena opción para entrenar la lógica de una forma sencilla, C o C++ sean buenos para entender conceptos como instrucciones, partes de un programa, tipado, herencia… y una buena base para saltar a java, php, C# o ASP.NET. Otra buena opción sería empezar por la parte cliente (front-end) en la programación web (HTML, CSS, JavaScript y algún framework de este) y saltar a la programación servidor (back-end). Como veis, ni yo mismo me pongo de acuerdo y con esta pregunta me puedo tirar horas y horas con el resto de compañeros de programarfacil discutiendo cual es el mejor...