domingo, 4 de noviembre de 2018

Lectura recomendada: "Mindfulness: Atención plena" (Serie Inteligencia Emocional de HBR). de Harvard Business Review, Daniel Goleman, Ellen Langer, Susan David, Christina Congleton

Siempre me he sentido bastante inquieto al no lograr, con los libros de autoayuda, la perfecta ejecución de la meditación. Encontrar un libro que no use como "mainstream" ese concepto, es muy importante. Crucial. Este es el libro.

La meditación consciente está de moda. No me preguntaré que piensan los que llevan tiempo en la meditación con el objetivo de simplemente, ser. Me gusta leer todo lo relacionado con el management y poder aplicarlo también en el día a día de cualquier profesional IT. Sea cual sea su perfil laboral.

Este libro que se lee en pocas horas, muestra que podemos hacer con nuestra mente para poder disolver en agua, algunas veces en vino (mejor los fines de semana), los patrones "toxicos" que podemos llegar a vivir en nuestro quehacer diario laboral.

Entrevistas interesantes que instruyen con casos reales del mundo laboral para aprender como actuar para: "prestar mas atención, recordar mejor, ser más creativo, anticipar el peligro". Usando Mindfulness para situarse en el presente. Dedicando una atención plena a lo que estamos haciendo.


Puede parecer utópicas algunas de las partes que se incluyen en las entrevistas realizadas por los autores. Pero hacen pensar. Y mucho.

En realidad, muchos de los conceptos que se intentan consolidar están relacionados con la "economía de la atención". Hoy es casi igual de importante nuestra capacidad de concentración que, nuestras habilidades técnicas o directivas.

El libro habla de la agilidad emocional para, no autoconvencerse o reprimirse lo que uno pueda sentir; sino dialogar con uno mismo de manera consciente, en coherencia con tus valores.

La inteligencia emocional sera una de las 10 habilidades que hoy en día se incluyen en todos los puestos de trabajo grupales.

Párrafos como el siguiente, hacen pensar: "Puedes superar la paradoja del poder practicando la ética de la empatía, la gratitud y la generosidad. Sacará a la luz el mejor espíritu colaborador y de trabajo de la gente que tienes a tu alrededor. Y tú también saldrás beneficiado, con una reputación impecable, un liderazgo de largo recorrido y con el placer que proporcionan las dopaminas que resultan de promover los intereses de otros."

Dentro de los programas de formación de los principales "players" tecnológicos (Google, Facebook), se enseña esta técnica para desarrollar la autoconciencia a través de prácticas diarias de mindfulness.


Otros de los pasajes que te dejan sin aliento: "estas técnicas pueden «reformatear» el cerebro. Como resultado ocurren tres hechos críticos: primero, aumenta tu capacidad de concentración; segundo, ves las cosas con claridad creciente, lo que mejora tu juicio; y tercero, desarrollas la ecuanimidad."

La ecuanimidad está exaltada y defendida por, prácticamente todas las religiones. Esto no asegura nada según como se mire. Pero desde hace algunos años, se incluye en el management moderno. De momento de manera "romántica" y un tanto utópica...

Pero para poder retener al talento actual y, sobre todo el del futuro próximo, cualquier directivo debe leer con detalle este libro. Si no se aplica con éxito, el talento se marchará, para encontrar un puesto de trabajo donde el mindfulness esta presente en el ADN de la compañía.

Felicidades a Harvard Business Review por compartir las entrevistas a todo aquel susceptible de profundizar en la materia. Disponible en Amazon en formato átomo o digital (Kindle).

Cita:
"Tenemos dos vidas. La segunda empieza cuando nos damos cuenta de que solo tenemos una". Confucio

jueves, 30 de agosto de 2018

Lectura recomendada: "Computer Science Distilled: Learn the Art of Solving Computational Problems". Wladston Ferreira Filho

Para todos aquellos que quieren conocer de manera no excesivamente reglada, los fundamentos de las ciencias de computación o, aquellos que hace tiempo que no refrescan conceptos técnicos, este es un libro interesante que nos adentra de una manera amena los conceptos clave para aprender como resolver problemas mediante algoritmos.

Existen muchos libros con literatura técnica reglada, obviamente que hacen una tremenda función a los profesionales y estudiantes de ingenierías informáticas, grados o módulos...el motivo de esta entrada es no debatir sobre ellos.

    
Básicamente ante la amalgama de cursos, webs y libros para aprender de manera "relativamente" fácil la creación de código mediante algoritmos, quizás una aproximación inicial "no reglada", puede hacernos ver si vemos interesante pivotar nuestra carrera para adentrarnos en el mundo de las ciencias de computación.



EL libro puede servir de consulta o leerse en su totalidad como una novela, sin demasiada dificultad en el idioma. Con  un inglés accesible y algunos emoticones, el autor profundiza en los conceptos mas interesantes de consolidar, mediante enunciados que desarrollan un problema a resolver.


El idioma no es un handicap. Para todos aquellos que estemos acostumbrados a leer en inglés (nivel medio), se entiende todo lo que nos intenta instruir el autor. Citaré cada capitulo indicando un pequeño resumen de los temas tratados.

- "Basics": En el capítulo inicial el autor da nociones básicas de lógica, enumeraciones o recuentos y nos habla de probabilidades.


- Complexity: Dentro del capítulo de complejidad, intenta enseñarnos el concepto de cómo medir la eficiencia en tiempo y recursos de memoria de un determinado algoritmo. Determinados programas pueden consumir un espacio de memoria muy grande o necesitar mucho tiempo si y sólo si, la cantidad de datos en la entrada es ingente o desmesurado.

- "Strategy": Nos instruye en cómo elegir la mejor estrategia de diseño de algoritmo para un problema particular. Argumenta las estrategias de diseño siguientes: fuerza bruta, algoritmo codicioso, divide y vencerás, programación dinámica, algoritmo de retroceso, algoritmo de ramificación y acotamiento, decrementa y vencerás, método heurístico. Todos con ejercicios de ejemplo con su correspondiente pseudo-codificación.

- "Data": Cuando los programas (algoritmos) necesitan operar con datos, generalmente usamos módulos externos (librerías) que tienen "clases" y a su vez métodos definidos en cada uno de los tipos de datos abstractos (ADT). Nos habla de colas, pilas, árboles, arrays y tablas hash.

- "Algorithms": Introduce los algoritmos que un buen programador debe estar familiarizado (listas, grafos...). Ademas muestra algoritmos de búsqueda y ordenación.

- "Databases": Habla del software específico para el tratamiento de datos almacenados en memoria externa (disco duro). Los DBMS son vitales para cualquier solución sectorial de informática. Introduce el SQL, los conceptos de indexado, transacciones y relaciones entre tablas. Además indica que para determinadas soluciones, es mejor utilizar las bases de datos no relacionales (NoSQL). Obviamente teniendo en cuenta de no duplicar información en diferentes columnas de diferentes tablas...


Menciona las bases de datos distribuidas, así como pinceladas conceptuales de las bases de datos distribuidas (replicación y compartición). También cita los formatos de serialización mas conocidos: SQL, XML, JSON y CSV. Sirven para poder hacer un backup de los datos de la base de datos o, para poder exportarlo a otro sistema (restaurando los datos serializados). 



- "Computers": Entender las velocidades de acceso en el tiempo a la  memoria RAM, como mejora el computador ese cuello de botella mediante cache L1 y L2, entender las diferencia entre lenguajes de programación interpretados por una máquina virtual en lugar de ejecutados por un traductor (compilador) directamente al hardware de la máquina (CPU, RAM y HD o SSD), son conceptos tratados en este capítulo. Habla de código máquina con ejemplos de acceso al bus de datos + bus de direcciones.

- "Programming": Básicamente en este último capítulo el autor, usando pequeños trozos de pseudo-código, nos enseña los conceptos básicos de codificación. Variables, métodos, funciones, controles de flujo, iteraciones...diciéndonos al final que tendremos las agallas para poder abordar la codificación en cualquier lenguaje de programación.



Totalmente recomendable su lectura, para poder sacar polvo de los conocimientos adquiridos en la universidad o, para saber que es lo mas importante consolidar si la estamos cursando. O para dictaminar si no es lo que os puede gustar en el caso de escoger un camino de "developer" en este mundo IT.

Existirán pasajes técnicos del libro que no serán usados de manera práctica en nuestro día a día. Sólo en el caso de formar parte de equipos de desarrollo de fabricantes conocidos, la estrategia y la estructura de los datos, serán consumidos y explotados en nuestros proyectos.

Procesos de entornos de programación empresarial (ERP), precisan de ordenadores (hardware) muy potentes. Y aún así, ciertas demandas de los usuarios pueden presentar lentitud en sus respuestas por pantalla. Es importante conocer donde podemos tener un cuello de botella en nuestros algoritmos y, intentar refinar el desarrollo de software para mejorar su rendimiento.

Remarcar también la excelsa referencia al final de cada capítulo. En el caso de necesitar ampliar conocimientos, los links indicados son muy buenos.

Buen trabajo de Wladston Ferreira. Felicidades.

La cita:

"No tengo ningún talento especial. Sólo soy apasionadamente curioso." Albert Einstein.