martes, 19 de noviembre de 2013

Aprender a programar. Bases de programación.


Hola a todos.

Antes que aprender a programar deberíamos aprender que significa programar.

Programar significa plasmar una especificación (un deseo o una necesidad) en forma de código. Es decir, programar es el proceso de escribir un conjunto de instrucciones que den como resultado el producto que nosotros queremos.

- Ok. Hacemos código para crear programas que cubren necesidades o deseos, pero ¿por que código? ¿Podría haber otra manera de introducir estos requisitos dentro de un PC?
Originalmente , los primeros computadores que existieron no se programan mediante software sino mediante hardware. Es decir, se cableaban las distintas partes del computador para que la información fluyese de un sitio a otro y hiciera la función que tenía que hacer. (para saber más sobre esto os recomiendo que leáis  la sección de historia de la computación). No fue hasta Von Neumann (un ingeniero que trabajaba en los primeros computadores) que no se ideó el hecho que esos "cableados" podrían hacerse mediante software, es decir, mediante memorias que almacenaban y dictaban como tenia que ir el flujo de información dentro del hardware para que se satisfaciese la necesidad que había. Esta forma de programar se basaba en 0's y 1's que activaban o no ciertas funcionalidades y era una manera (aunque mejor que el cableado físico) bastante lenta y complicada de realizar programas. Años despues nació el lenguaje ensamblador que no es más que darle un nombre más o menos fácil de recordar a esos conjuntos de 0's y 1's, conformando las primeras operaciones (suma, resta, movimiento, etc..). Años despues aparecieron los primeros lenguajes de programación (C/C++ por poner un ejemplo) que se basaban en simplificar el proceso de introducir especificaciones dentro de las computadoras. Resumiendo la pregunta inicial, si, se podría introducir especificaciones sin necesidad de código, pero el código (y la programación tal y como la conocemos) es el resultado de la evolución de como poder modificar el hardware para que haga lo que nosotros queremos de la forma más fácil posible para el programador.

- Entiendo... lenguajes de programación... hardware... flujos de datos... entonces eso de programar es más complicado de lo que yo creía ¿no?
Si y no. Empezar a picar código es fácil. Todo depende del lenguaje que se use, de la capacidad de cada uno y del tiempo y ganas que se le puedan dedicar, pero por lo general, es fácil aprender a picar código. Programar es otro cantar. Hacen falta años para saber programar (igual que es fácil hacer sonar un violín pero es difícil saber tocarlo). Programar no es (solo) picar código; programar es pensar, abstraerse y entender realmente lo que se hace con cada linea de código que se pica y para llegar a ese nivel hacen falta años de experiencia. Aunque si lo piensas bien, para todas las cosas de la vida hacen falta años de experiencia, así que si estás decidido a programar, tomatelo con calma pero sin pausa. Verás que poco a poco irás agarrando soltura y el proceso de aprendizaje se hará bastante divertido.

- Ok. Pese a todo quiero aprender a programar. ¿Cuanto tiempo tardaré a saber todo de programación?Respuesta corta: toda una vida.
Respuesta larga: La programación es una ciencia que no para de evolucionar y en la que siempre hay cosas para aprender. Así que es complicado que sepas de todo por que todo va cambiando. Se dice que para dominar un lenguaje al 100% hacen falta 10 años. En mi experiencia personal, una persona que trabaje 8 horas al dia , en un año o dos acostumbra a tener un nivel más que aceptable. Depende de cada persona.

- ¿Que tipos de lenguajes de programación hay?
Hay tanto lenguajes como necesidades pueda haber, pero por lo general se pueden describir tres grandes grupos:
- Ensamblador: Depende de cada procesador y arquitectura. Es con el que se obtiene mayor rendimiento de proceso. Es difícil desarrollar grandes proyectos en el.
- Lenguajes compilados: Son aquellos lenguajes en que el código se transforma a ensamblador para que el procesador lo entienda. Tienen un rendimiento bueno y es bastante más fácil desarrollar que no con ensamblador.
- Lenguajes interpretados: Son aquellos lenguajes en que el código no se ejecuta directamente en el procesador sino que necesitan de otro programa (intérprete o máquina virtual) que se encarga de procesar la información del código y realizar su funcionalidad.

Si despues de leer todo esto sigues queriendo programar, no te pierdas los demás capítulos de este tutorial.

Cualquier duda que tengas hazmela llegar y le intentaremos dar solución.

Nos vemos

LordPakusBlog

Entradas populares