Mostrando entradas con la etiqueta aprender a programar. Mostrar todas las entradas
Mostrando entradas con la etiqueta aprender a programar. Mostrar todas las entradas

lunes, 2 de diciembre de 2013

Aprender a programar. Lenguajes de programación


Hola a todos,

Si habéis leído el capítulo anterior ya sabéis lo que significa programar y todo lo que implica. Si pese a saberlo queréis empezar :) os faltará un poco de base de como funciona un lenguaje de programación

Los lenguajes de programación no son más que estandars. Es decir, cuando se define un lenguaje de programación lo que se dice son las normas y características que tendrá ese lenguaje, nada más. Con lo que trabajaremos nosotros será con las implementaciones de ese lenguaje.

Por ejemplo, hace muchos años se definió el lenguaje C. Posteriormente aparecieron compiladores como turboC, watcom, visualC, gcc que implementaban dicho estandar.

Un mismo código en diferentes compiladores, aunque genere diferentes ejecutables, debería de comportarse igual. Así pues las diferencias entre compiladores normalmente radican en tres factores importantes:
- como de bien transforma el código en un ejecutable : tamaño del ejecutable, velocidad de ejecución, uso de memoria, etc...
- facilidades que aporta a la producción: tiempo de compilación, incorporación de debuger y profiler, etc...
- soporte para librerias: que librerias externas soporta (OpenGL, DirectX o las que fuera) y cuan fácil es usarlas.


Todo esto aplica tanto para un lenguaje compilado como uno interpretado. Un caso claro lo podemos ver en la programación web. Podemos definir el lenguaje html , que es un estandar, pero cada navegador lo implementa a su manera.



Ahora la gran pregunta. Ya se la teoría.... ¿cómo empiezo con la práctica?

Antes de empezar con un lenguaje en concreto vamos a ver un poco las operaciones comunes entre los lenguajes más usados (C/C++ y Java entre otros muchos). Si domináis la lógica de estas operaciones aprenderéis cualquier lenguaje en un suspiro.

- Condicional (normalmente en código es "if"): Si se cumple "lo que sea" hago "esto". Opcionalmente, también puede haber el caso en que sino se cumple la condición ("else"), haga "lo otro". Ejemplo de código en C:
          if (dinero < 5 )
          {
                trabajar();
          }
          else
          {
                 descansar();
          }

- Bucles: Repetir una y otra vez una zona de código o una operación (los puede haber de muchos tipos diferentes, pero se centran en dos categorías):
     - De repeticiones fijas: Quiero repetir una operación X veces. Ejemplo de código.
for( i = 0 ;  i < 1000 ; i = i+1 )     //Voy a repetir una operación 1000 veces
{
        dormir();
}
     - De repeticiones variables: Quiero repetir una operación mientras que haya una condición que se cumpla.
while ( tengosueño() )   //Repito una operación mientras se cumpla una condición.
{
       dormir();
}

- Funciones: Zonas de código que se pueden ejecutar desde cualquier parte del código. La sintaxis puede variar mucho de un lenguaje a otro, pero el funcionamiento siempre es parecido. Se reciben unos parámetros de entrada (números de la derecha) y se devuelve un resultado (número de la izquierda). Si no hay parámetros se usa void (vacio). Ejemplos:
bool tengosueño(void)
{
        if (sueño > 5)
             return true;   //Es una función que se usa para finalizar una función y devolver un valor.
        else
              return false;
}

void dormir(void)
{
       sueño--;
}

//int, char y bool son tipos de variables. Es la manera de indicarle al compilador como queremos que interprete esos datos.
int cobrar( int horas)
{
          return horas*6;
}


Ahora que tenéis la base , mirad código. Aún sin entender lo que diga. Iros quedando con la "gramática" y con la estructura. Código para leer por internet lo hay a cientos. Si queréis tengo un par de proyectos que os pueden servir para ir mirando código: pakengine, algún que otro motor gráfico y el math engine

Cuando ya esteis empapados de código os podéis plantear mirar algún que otro tutorial del lenguaje que queráis aprender. (si queréis aprender C/C++ espero que este os sirva).

A partir de ahí, sabiendo la teoria y teniendo la lógica, haced ejercicios. Nuevamente, si os apetece aprender C/C++ tengo un conjunto de ejercicios que tal vez os interesan.

A partir de ahí todo es practicar, practicar y practicar.

Ya sin más, os dejo hasta el siguiente capítulo, espero que os haya gustado.

Nos vemos

LordPakusBlog

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