Programación para principiantes

La programación informática, también conocida como codificación, es el proceso de creación de software.Pero, ¿qué es exactamente el software y cómo se hace?

¿Qué es el software?

El software es un conjunto de instrucciones para que un ordenador lo realice.

Es un poco como una receta de cocina:

  1. Poner un huevo en un bol
  2. Batir el huevo
  3. Poner una sartén a fuego medio
  4. Engrasar la sartén
  5. Verter los huevos en la sartén
  6. Y así sucesivamente
  7. En lugar de manipular ingredientes, los ordenadores manipulan datos.Las instrucciones dentro del software se parecen más a esto:

    1. Cargar algunos datos
    2. Cargar otros datos
    3. Transformar esos dos bits de datos en datos de resultado
    4. Enviar los datos de resultado al monitor para su visualización
    5. Enviar los datos de resultado a través de Internet
    6. Y así sucesivamente
    7. Estas instrucciones se suelen llamar código fuente.El código fuente no es más que un conjunto de instrucciones escritas que un ordenador puede entender.

      ¿Cómo es el código fuente?

      El código no se escribe en lenguas naturales, como el inglés.

      Aquí hay un pequeño programa escrito en un lenguaje llamado Ruby:

      require 'open-uri'require 'json'FRONT_PAGE_URL = 'https://reddit.com/r/all.json'front_page = JSON.load(open(FRONT_PAGE_URL).read)top_post = front_pageputs 'The top post on reddit is:'puts top_postputs top_post

      Este programa muestra el post principal actual en reddit, así:

      The top post on reddit is:One of my favourite things about working in the ski fieldshttp://i.imgur.com/hWwlWgI.jpg

      Aquí está exactamente el mismo programa, escrito en un lenguaje similar llamado Python:

      import urllib, jsonFRONT_PAGE_URL = "https://reddit.com/r/all.json"front_page = json.loads(urllib.urlopen(FRONT_PAGE_URL).read())top_post = front_pageprint "The top post on reddit is:"print top_postprint top_post

      Aquí está el mismo programa en un lenguaje de aspecto diferente llamado Clojure:

      (require ')(def front-page-url "https://reddit.com/r/all.json")(let ))] (println "The top post on reddit is:") (println (get top-post "title")) (println (get top-post "url")))

      Como puedes ver, los lenguajes de programación son muy diferentes a los naturales.Los lenguajes naturales son ambiguos, con muchas capas diferentes de significado: sarcasmo, insinuaciones y ese tipo de cosas.Eso está muy bien si te estás comunicando con un humano, pero los ordenadores no entienden nada de eso.

      Los ordenadores se lo toman todo al pie de la letra.Si le preguntas a un ordenador si un número es par o impar, siempre te responderá «sí».»Ni siquiera estoy bromeando – aquí está el código de Ruby:

      puts (5.odd? or 5.even?)

      Este código muestra «true», que es técnicamente correcto.El número cinco es par o impar, pero no es lo que quería decir.

      Es algo más que escribir código

      Escribir código es sólo una parte de la creación de software.

      Las grandes piezas de software -como Windows, OS X y los juegos de gran presupuesto- están formadas por millones y millones de líneas de código.Cuando se tiene tanto código, es necesario planificar cómo se escribirá el código y cómo funcionarán juntas las diferentes partes del mismo.Este tipo de planificación se denomina diseño o arquitectura.En los grandes proyectos, se dedica mucho tiempo al diseño y a la arquitectura antes de escribir el código.

      Otra gran parte de la creación de software es la comprobación.El hecho de que el código se haya escrito no significa que sea correcto.El código puede fallar a veces, o dar resultados erróneos, o congelarse, o cualquier otro número de problemas.Para tratar de evitar estos problemas, los desarrolladores de software profesionales tienen varias maneras diferentes de probar su código.

      Luego está la depuración, que es el proceso de investigar, diagnosticar y arreglar problemas en el código fuente.Esto es una habilidad en sí misma.

      Conclusión

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *