¿Todo el mundo debe aprender a programar?

Recientemente me crucé con un twit donde un abogado decía algo así como que no todo el mundo debería aprender a programar.

Nunca antes había escuchado de un abogado interesado en el tema, pero unas semanas más tarde, una amiga (que casualmente también es abogada) me consultó respecto de cómo podía incursionar en el mundo de la programación, y unos días más tarde otro amigo licenciado en historia me hizo una pregunta similar.

Viendo que esta parece ser una pregunta que está dando vueltas en la cabeza de personas de muy variados ámbitos, decidí intentar una respuesta.

Personalmente, considero que a cualquier persona le puede venir bien saber programar, aún si nunca en su vida va a dedicarse a esto profesionalmente.

Qué beneficios tiene saber programar

La programación, más allá de la técnica, ordena el pensamiento (Y en muchos sentidos lo desarrolla).

El modo de resolver problemas que se utiliza en programación ayuda a encarar desafíos que van mucho más allá del uso de computadoras.

Sencillamente, se trata de un ejercicio de planificación muy minuciosa… al fin y al cabo, programar no es otra cosa que indicarle a otro (en este caso una computadora) exactamente qué tiene que hacer para obtener un resultado determinado.

No sólo eso, el modo de resolver el problema debe ser expresado de un modo muy particular. Esto nos fuerza a ordenar nuestras ideas para poder transmitirlas.

Esto es claramente un beneficio aún si no vas a desempeñarte como programador en forma profesional.

Si, en cambio, estás explorando esta posibilidad, seguramente sabes que se trata de una profesión muy lucrativa y con amplia demanda insatisfecha.

Qué se puede lograr programando

La verdad es que la programación tiene un campo de aplicación realmente grande. Algunos de los más comunes son el desarrollo de juegos, sistemas de simulación, automatización de tareas, etc…

En general (Dejando de lado los juegos), mediante programación es posible resolver problemas que involucran el procesamiento de grandes volúmenes de datos que, de otro modo, resultarían extremadamente difíciles (cuando no imposibles).

Un ejemplo simple es la generación de un directorio telefónico ordenado por apellidos. ¿Cómo harías manualmente para ordenar (y mantener ordenada) una lista de 10.000 personas?

Lograr esto mediante un programa de computadora es una tarea trivial.

Entre los usos más avanzados está el descubrimiento de conocimiento oculto entre los datos. Sin entrar en mucho detalle, de lo que se trata es de analizar grandes (Diría aquí que enormes para ser claro) conjuntos de datos buscando patrones que no surgen a simple vista.

Un ejemplo de esto sería analizar todos los tickets de compras de un supermercado durante un año tratando de detectar patrones (como por ejemplo, que quienes compran pañales suelen comprar cerveza).

De qué se trata programar

Técnicamente, de lo que se trata es de escribir código (texto que se escribe para indicarle a la computadora qué es lo que debe hacer).

El código puede ser escrito en diferentes lenguajes. Cada lenguaje tiene sus particularidades (Lo que se conoce como sintaxis).

Ejemplo de código php:

if (array_key_exists('s', $opts)) {
  $targetSite = $opts['s'];
  msg('Procesando solo el sitio ' . $targetSite, $verbose);
  $siteConfigFileName = __DIR__ . '/sites/' . $targetSite . '/config.php';
  msg(' - Archivo de configuracion: ' . $siteConfigFileName, $verbose);
  $sites[$targetSite] = require_once $siteConfigFileName;
}

Ejemplo de código Python:

#!/usr/bin/python

from google import google

import sys
import csv
import time
import random

with open( sys.argv[1], 'rb' ) as csvfile:
    searches_reader = csv.reader( csvfile, delimiter=',', quotechar="'" )
    for search_terms in searches_reader:
        search_results = google.search( search_terms[0], 10 )
        for r in search_results:
            print r.link
        sleep = random.randint(30, 90)
        time.sleep( sleep )

Ejemplo de código Ruby:

items = [ 'Mark', 12, 'goobers', 18.45 ]
for it in items
    print it, " "
end
print "\n"

Claro que el escribir código es la parte visible de la programación… lo realmente interesante es lo que pasa dentro de la cabeza del programador.

¿Cualquiera puede aprender a programar?

Aprender a programar no es muy diferente de aprender matemáticas. Cualquier persona que haya pasado por la escolaridad puede aprender los rudimentos de la programación.

Claramente, existen problemas más difíciles que otros, pero aún sabiendo muy poco es posible hacer cosas muy útiles o divertidas.

Cómo se puede empezar a aprender a programar

La programación es, ante todo, una técnica. A programar se aprende programando.

En general, lo mejor que se puede hacer es combinar la teoría con mucha práctica. Se comienza con desafíos sencillos para ir adquiriendo los conocimientos básicos y, sobre esos conocimientos, se avanza hacia problemas más complejos.

Qué lenguaje es el mejor para empezar

La oferta de lenguajes de programación disponible hoy en día es gigantesca (y sigue creciendo día a día).

La decisión respecto del lenguaje a utilizar involucra, ante todo, una respuesta muy sincera a la pregunta: ¿qué quiero hacer una vez que sepa programar?

Aunque, independientemente de tu objetivo, hay lenguajes más amigables con los novatos que otros.

Cuando yo aprendí lo hice con un lenguaje diseñado especialmente para enseñarle a niños: el Logo. Hoy en día existen otras herramientas mejores con el mismo propósito.

A nadie le recomendaría que arranque por el lenguaje C o C++. Si bien ambos son lenguajes sumamente potentes, requieren mucho conocimiento inicial para poder hacer algo «que funcione».

Dos lenguajes más adecuados para principiantes son PHP y Python.

Si bien Python tiene una sintaxis más pulcra, me inclino por PHP porque es un poco más popular (y, por ello, es más simple de aplicarlo a cuestiones laborales).

Qué se necesita para empezar a programar

No se requiere mucho para empezar. Basta con una computadora, algo de tiempo libre y una buena guía para comenzar.

Si te interesa dar una mirada a cómo se desarrolla un programa te invito a ver un jueguito que programé y si estás buscando aprender de la mano de alguien experimentado, este curso puede serte útil.

mchojrin

Por mchojrin

Ayudo a desarrolladores PHP a acceder mercados y clientes más sofisticados y exigentes

¿Te quedó alguna duda? Publica aca tu pregunta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.