terminal

codeando_simple

terminal

menu

terminal

search_module

guest@codeandosimple: ~/system/search $ grep -r "" .

Press [ENTER] to execute search

Status

Engine: Ready

Database: Online

Index: V2.1.0_LATEST

bash — terminal
guest@codeandosimple: ~/intro $ cat empezar-programacion.md

Empezar en la programación_

// "Cualquier momento es perfecto para aprender algo nuevo" - Albert Einstein

Video: Lo más básico para empezar a programar

Vamos a arrancar con lo necesario para empezar en la programación... ¿qué es programar?... ¿qué es un computador?... ¿cómo está formado?... ¿qué es un sistema operativo?... los conocimientos mínimos previos a crear nuestros programas.

# ¿Qué es programar?

A un altísimo nivel, podemos decir que programar es darle órdenes a un computador, le decimos lo que queremos que haga.

# Dije “computador/computadoraâ€... ¿Pero qué es eso?

Para un programador, un computador es una caja, a la que le entra algo y devuelve algo, tiene una entrada y una salida. La tarea de esta caja es transformar la entrada en salida.

Diagrama Entrada Salida Transformación de Entrada en Salida

# Pero... ¿cómo lo hace?

Supongamos que tenemos que hacer un cálculo mentalmente… “2 + 3â€

Cálculo Mental

Primero debemos recordar los dos números a sumar, el 2 y el 3, los memorizamos. Ahora buscamos una manera de sumarlos… de chiquitos nos enseñaron que podemos sumar contando, vamos a usar palitos:

  • - 2 (dos palitos) = | |
  • - 3 (tres palitos) = | | |
  • - 2 + 3 = | | + | | | = | | | | | = 5 palitos

Recopilando… primero memorizamos los números, tuvimos que recordar ambos, y después realizamos la operación mediante un proceso, que consistía en contar los palitos... el proceso de suma.

Y el computador hace esto: memoriza lo que entra, lo procesa, y devuelve el resultado.

Memoriza y Procesa Entonces decimos que la computadora es una caja que memoriza y procesa para transformar una entrada en una salida.

A lo que ingresa, o a la entrada, se le llama dato y al resultado, o salida, se le llama información.

El dato es algo que podemos medir, que no nos representa nada. La salida es algo que nos permite tomar decisiones, se procesan esos datos.

Entrada Salida

Hay dispositivos para ingresar datos que son llamados de entrada y otros de salida para mostrar los resultados. También hay de entrada y salida, hacen las dos cosas.

Así que como programadores, es eso, memoriza e procesa, y nuestros programas son los que van a decir cómo tiene que hacer esta transformación de entrada en salida.

# ¿Y cómo le damos órdenes?

Para que la máquina nos entienda tenemos que hablar el mismo idioma, pero la computadora está formada por circuitos electrónicos, ¡no habla! solo puede determinar si pasa o no energía por cada uno de sus circuitos.

Circuito

CIRCUITO ELECTRÓNICO (ON/OFF)

Sistema Binario

SISTEMA BINARIO (0/1)

Si se juntan muchos de estos circuitos se van formando códigos, así es como se crean códigos de 8 bits llamados bytes, como el código ASCII.

ASCII Equivalencia entre binario y carácter

Pero esto no es solo para datos, los procesadores también tienen códigos para representar instrucciones. Este es el primer paso para hablarle a la computadora: el lenguaje de máquina.

Instrucciones

# El sistema operativo

El sistema operativo es el que maneja todo el Hardware, maneja los hilos, y además permite la interacción con el usuario. Básicamente, logra que todo funcione, hardware y software.

Sistema Operativo

# Compilador e Intérprete

Un lenguaje es de alto nivel cuanto más se acerca al humano y de bajo nivel cuanto más se acerca al de máquina.

Niveles de Lenguaje

Compilador

Genera un archivo ejecutable antes de correr el programa. Detecta errores en el proceso de compilación.

Compilador

Intérprete

Va leyendo el código línea a línea y lo ejecuta. Encuentra los errores a medida que ejecuta.

Intérprete
Compilador vs Intérprete Diferencia de flujo de ejecución

El caso de Java es especial: es un lenguaje compilado pero el compilador no va hacia el lenguaje de máquina que maneja el sistema operativo, sino que va hacia una máquina virtual (JVM), que es la que interactúa con el sistema operativo. Dicha máquina virtual es la que termina ejecutando nuestro código.

JVM

Todos estos lenguajes tienen cosas parecidas, sin embargo, hay distintas maneras de escribir el código, según los paradigmas. Los paradigmas son: estructurado, objetos y funcional (algunos autores consideran que hay más). El estructurado es la base, los demás van agregando restricciones, como dice Robert Martin en su libro Arquitectura Limpia, por eso estructurado es lo primero que se suele aprender, la lógica básica, los algoritmos.

Hasta aquí llegamos con lo básico para empezar en la programación. Lo próximo que veremos son los algoritmos en el siguiente artículo, la escritura de la lógica de la programación.