viernes, 14 de enero de 2011

Organizar tu vida

Estudié Informática. (De hecho se me da mucho mejor que escribir Blogs!!).

La Informática no sólo es una profesión interesante y actual, con suficientes actualizaciones como para estar todo el tiempo entretenido con algo, sino que es también una fuente de conocimientos prácticos para la vida diaria. No me refiero a que yo mismo pueda arreglar mi propio ordenador, o programar aplicaciones para mejorar el rendimiento de alguna empresa... lo digo porque muchas cosas que se aprenden como parte de la ingeniería pueden aplicarse perfectamente a cualquier otro campo de la vida cotidiana. Veamos algunos ejemplos:


SJF: "Shortest Job First" (el trabajo más rápido primero). Cuando un procesador tiene varias tareas que completar, lecturas y/o escrituras en el disco duro, procesos dibujando en la pantalla, programas escaneando en segundo plano, el antivirus, la conexión a Internet, etc, etc... debe seguir una estrategia que optimice los resultados. En vez de proceder secuencialmente (o sea, realizar las tareas una a una en el orden en que aparecen) lo que debemos hacer es seleccionar aquellas tareas que más rápidamente finalicen para ejecutarlas antes que las que más tarden. De esa manera vamos acortando la lista de tareas pendientes y el ordenador parece más rápido pues vemos cosas funcionando, mientras, las tareas pesadas y más lentas se van postergando, al fin y al cabo íbamos a tener que esperar por ellas un buen rato, por lo que un rato más no se notará.

Es una estrategia que prima la obtención de resultados antes que el orden de los mismos. Un típico ejemplo es el de la cola interminable: en vez de esperar en la cola hasta que nos toque es mejor dejarlo e ir a hacer otras cosas y más tarde volvemos a la cola. Si aun así nos pasamos el resto del día en la cola, al menos habremos hecho ya todo lo demás.


Refactorización. Se trata simplemente de ir avanzando de la mejor manera posible, pero haciendo altos en el camino para volver atrás para revisar el camino andado. Cada vez que volvemos atrás nos aseguramos que todo ha ido bien y corregimos todo aquello que no lo esté. Nos sirve para avanzar con más velocidad (gracias a la seguridad de las revisiones) y es una buena estrategia para empezar una tarea de la que no conocemos todos los detalles, pues el propio avance nos irá aportando experiencia que se reflejará luego en las propias revisiones y en los siguientes pasos.

Adquirimos seguridad y velocidad. La aplicación práctica es obvia: planificar el futuro y estudiar el pasado constantemente siempre nos ha ayudado a avanzar y a comprender mejor lo que hacemos.


Divide y vencerás: Si una tarea es demasiado grande o pesada para "atacarla" directamente lo que se debe hacer es fragmentarla; dividirla en tareas más pequeñas, módulos, pasos, ladrillos, etc, tareas que se puedan realizar independientemente de una manera más rápida y eficaz. Las tareas más fáciles se realizarán sobre la marcha y al final se unen todas las piezas de nuevo para finalizar así la tarea inicial. Esto es fundamental. La modularidad es hoy en día una de las piezas clave no sólo de la informática sino de cualquier otra ciencia. Y como no, de nuestra vida.


Hay muchísimos más ejemplos, pero creo que por hoy está bien. Otro día recopilaré unos cuantos más.

Haz la prueba, ¡¡funcionan!!


Un saludo!

6 comentarios:

  1. mmmmmmmm
    me parece muy interesante. Sobretodo lo de la "Refactorización", que además es un término que desconocía.

    No, si tendrás razón y tendré que estudiar informática xD

    1beso! (de los optimistas, claro)

    ResponderEliminar
  2. tu blog pesimista no me deja comentar.
    Y eso que esta frase "Amamantamos a nuestras crías aún a sabiendas de que están condenadas a la esclavitud" iba a darme mucho juego ^^

    otro beso!

    ResponderEliminar
  3. Estos términos, en el mundo de la informática, suelen ser "americanismos", una versión españolizada de palabras inglesas (a pesar de tener mejores traducciones nuestro bello idioma).

    Supongo que será por ahorrar tiempo no buscando en un diccionario la palabra más adecuada. Solemos estar muy atareados.


    ¡¡Gracias!!

    =:)

    ResponderEliminar
  4. Perdón por el comentario anterior, ahora que lo leo quedó un poco soso e incluso incompleto.

    Decía que los americanismos (o anglicismos) se usan demasiadas veces pero que supongo que será por ahorrar tiempo (chorrada, pero bueno...).

    Y lo de solemos estar muy atareados supongo que será por la cantidad errores que cometemos programando, que luego vamos corrigiendo poco a poco.

    Los tiempos que corren son muy exigentes así que hay que improvisar muchas veces (en vez de sentarse a diseñar las cosas como es debido) y eso provoca que se cometan errores.

    Pero claro, programar por amor al arte es diferente. Es por ello por lo que me atrevo a recomendar esta ciencia (salvo que te guste sentir la presión de tu jefe/cliente, como a muchos que conozco).

    En fin, esto es otra cosa.


    Salu2!!

    =;)

    ResponderEliminar
  5. no era mi intención meterme con el precioso término "refactorización". A mi es que me encantan las palabras.
    Afortunadamente tenemos un idioma tan rico y abundante que ningún término es gratuito y además siempre me gusta aprender cosas nuevas.

    Fíjate, quién me lo iba a decir, a mis años, yo que había perdido toda esperanza y resulta que los yankis han acuñado esas palabras tan útiles.

    Vivir para ver oye xD

    ResponderEliminar
  6. Bueno, ya estoy "pensando" en la segunda parte del post, pero mientras, si quieres saber más, puedes mirarte "Las Leyes de Murphy" en Google. Imprescindibles para cualquier informático que se precie Xp

    Salu2!!

    ResponderEliminar