Pensando en programar

Pensando en Programar

Índice

Esto no es un libro, obviamente. Quizá lo mejor sea decir que es un compendio de ideas, recuerdos y consejos. En cierto modo es una especie de legado también. Una serie de experiencias personales explicadas con el objetivo de -si es posible- ayudar a quien quiera aprender o mejorar a pensar y evaluar algunas ideas y formas de afrontar la programación.

Aunque está pensado para leerse de forma secuencial, está organizado en capítulos relativamente cortos. La primera parte es más abstracta, conteniendo todas las ideas presentadas, aunque siguiendo siempre una aproximación fundamentalmente práctica. La segunda parte es un ejemplo práctico siguiendo el desarrollo de un proyecto concreto.

Primera Parte

La primera parte busca explicar las ideas y formas de pensar, con ejemplos, pero de manera algo más genérica.

  Introducción Qué es este libro y a quién está dirigido.  
  Antes de empezar... Una mínima preparación antes de entrar en materia.  
  Llegan los problemas El primer paso para resolver un problema es conocerlo.  
  Análisis - Ejemplos Algún pequeño ejemplo de cómo analizar problemas.  
  Antes de empezar a resolver Consideraciones antes de lanzarnos a buscar soluciones.  
  Comienza por el comienzo Técnicas de diseño de soluciones.  
  Principios Fundamentales de la Programación ¿Qué debe guiarnos a la hora de tomar buenas decisiones?  
  El Primer Código ¿Por dónde empiezo a escribir?  
  Caso práctico: Transmisor de Morse Un primer caso práctico de cómo empezaríamos a escribir código  
  Diseñando el dominio de datos Otra parte por la que podemos empezar es diseñando los tipos de datos  
  La Suma de las Partes Interfaces.  
  Pensando en Grupo Pensando en Grupo  
  Errar es humano Cómo enfrentarnos a nuestros fallos  
  Cómo seguir a partir de aquí Cómo seguir adelante desde aquí  
  Extras: Apéndices, ayudas, explicaciones Material de apoyo y otros contenidos.  

Segunda Parte

La segunda parte es un caso práctico más o menos completo, en el que buscaremos implementar un juego de mesa. He evaluado varios juegos y me he decidido por Espías y Confidentes, un juego no muy conocido pero que tiene algunas mecánicas interesantes y una complejidad bastante asequible. Esta parte aún no está disponible.

  Introducción al Proyecto Introducción a la segunda parte  
  Análisis de Espías y Confidentes El primer análisis sobre el juego. Partes, ideas, dificultades...  
  Planteamientos generales Una primera consideración sobre el planteamiento  
  primeras-propuestas Empecemos a delinear los puntos generales de una solución  
  xxx zzz  
  xxx zzz  

En general cualquier juego de mesa creo que es un buen ejercicio. Los juegos de mesa, generalmente tienen una serie de elementos y reglas que son buenos para razonar sobre ellos y además, existen juegos con complejidades muy variadas, de muy sencillos a muy complejos. Puede ser buena idea para el lector que, independientemente de seguir el caso presentado aquí, desarrolle el suyo propio con algún otro juego de mesa que le sea familiar. Uno bastante sencillo, con reglas simples y familiar para cualquiera puede ser el Trivial Pursuit. Otro, más complejo en reglas, mecánicas y elementos podría ser el Monopoly. Lo mejor, en cualquier caso, es que elijamos uno que nos guste. Eso hará que tengamos más ganas de llevar el proyecto a cabo. Si además lo conocemos ya suficientemente bien, entonces tendremos más facilidad para analizarlo correctamente1).

Sobre el título

Originalmente había pensado titular el libro “Pensando como un programador”. En cierto modo creo que es un título más preciso, ya que el contenido explica cómo piensa un programador concreto (yo). Sin embargo, “Pensando en Programar” además de ser más amplio y forzarme más a intentar que no sea solo mi experiencia personal la que quede reflejada sino una opción más abierta sobre formas de pensar, también continúa la tendencia de otras dos ocasiones anteriores en las que he llegado a escribir algo. “Pensando en…” se inspira -tontamente- en la frase clave de la película Firefox: “Recuerde, debe pensar en ruso”, que representa la idea de que para utilizar y aprovechar un recurso de forma avanzada muchas veces debemos cambiar o adaptar nuestra forma de pensar.

A la vez, intenta transmitir también que programar está asociado de forma directa a la actividad de pensar, y que esto es más importante que cualquiera otras actividades aunque también puedan ser necesarias.

Sobre la licencia

Todo el contenido, al igual que el resto del contenido de este sitio, se consideran de Dominio Público, que básicamente significa que puedes hacer lo que quieras con ello. Incluso copiarlo y decir que lo has escrito tú.

1)
Aunque cuidado con confiarnos demasiado con cosas que creemos que ya sabemos o ideas preconcebidas que tengamos, porque pueden llevarnos a idear soluciones basadas en esa familiaridad aunque puedan no ser la mejor opción