Mostrando entradas con la etiqueta filosofía. Mostrar todas las entradas
Mostrando entradas con la etiqueta filosofía. Mostrar todas las entradas

domingo, 10 de diciembre de 2017

Don't Panic!

A la hora de programar, uno de los errores más comunes en los que se puede caer es el de rendirse prematuramente y entrar en pánico: relegar el funcionamiento de nuestras ideas a la suerte y cambiar pequeñas cosas progresivamente, en intentos mecánicos y poco planificados, con la esperanza de que esa "magia oscura" que reina sobre los programas, finalmente comprenda lo que queremos decirle y la computadora haga lo que debe.

Hmm, súmale uno...
Bueno, no, réstale uno...
¿Y si cambiamos el menor por menor o igual?
¿...o mejor por mayor o igual?
¿...o mejor por un no igual?

Una vez aceptamos la verdad, resolver cualquier problema se hace mucho más sencillo y natural. El secreto es elemental y, sin embargo, completamente elusivo en nuestros primeros años como programadores: no hay tal cosa como la magia oscura. Todo lo que un programa hace es consecuencia lógica de aquello que escribimos, con reglas bien establecidas y concretas que podemos seguir meticulosamente, si tenemos la disposición y la paciencia para hacerlo.

Por esto, la mejor metodología a seguir cuando se programa es la de planificar antes de echar la primera línea de código, entender lo que se está haciendo e investigar cuando hayan dudas. En resumen: no entrar en pánico. Incluso las tecnologías que podrían parecer más extrañas se fundamentan en ideas y reglas básicas que pueden entenderse con calma y detenimiento.

En una época en la que la información es completamente ubicua, no tiene sentido estancarse al intentar entender un problema. Con tanta gente que programa, ha de haber al menos otra persona que se ha topado con un problema similar. ¡Ojo! Esto no quiere decir que en internet estará la solución exacta al problema, ni que se resolverá con un simple copy+paste (no suele funcionar así e, incluso si funcionara, de nada sirve arreglar un problema si no se entiende cómo se arregló, pues nos estamos condenando a repetirnos y a caer en los mismos problemas).

Una de las mayores fortalezas que puede desarrollar un programador es el reconocimiento de patrones. Y no me refiero a la técnica relativa al aprendizaje de máquina, sino a reconocer patrones en lo que hacemos y saber aprovechar esos patrones para ayudarnos a hacer nuestro trabajo. Muchas veces, las ideas se repiten y son aplicables a una gran cantidad de tecnologías y aplicaciones. Por eso, debe ser prioridad de cualquier programador aprender todo lo que pueda, sobre todo lo que pueda. Cuanto más experiencia tengamos, más fácil será reconocer patrones en las herramientas que usamos y los problemas que resolvemos.

Aunque parezca material de charla motivacional, el trasfondo es muy cierto e importante. He visto pasar mucho que la gente se hunde en sus propias inseguridades, temerosos de detenerse, pensar, entender y actuar. No me considero alguien particularmente brillante o talentoso, pero en la medida de lo posible intento no entrar en pánico. Todo problema que surge en nuestras vidas como programadores tiene una explicación y, en la mayoría de los casos, la solución está en nosotros mismos; sólo hace falta ser perseverantes, investigar y no conformarse con resolver sin entender lo que estamos haciendo. Con el tiempo, los patrones se harán evidentes y podremos resolver más y más problemas. ¡Es un ciclo de aprendizaje que crece y se realimenta a si mismo! Y todo comienza con no entrar en pánico. :)

Gracias por leer, hasta una próxima entrada. :D

martes, 3 de noviembre de 2015

Las cuatro interrogantes

A través de mi estancia en la universidad, y en general en el entorno académico, he visto que existe una variedad de estilos de pensamientos que abarcan desde lo más abstracto, hasta lo más concreto. Las personas que pertenecen al mundo académico, tienen como su norte la creación, uso y difusión del conocimiento. Sin embargo, cada uno resuelve este objetivo desde una perspectiva distinta.

Adaptación a la representación del Prof. Jorge Baralt

Me gustaría compartir hoy una reflexión que tengo tiempo pensando, y trata de agrupar el estilo de pensamiento académico en torno a cuatro interrogantes fundamentales: ¿Para qué?, ¿Cómo?, ¿Por qué? y ¿Qué? Cada una de éstas corresponde a un estilo, y representa (con sus diferentes matices) a cuatro tipos de pensamiento que he visto en la universidad.

¿Para que?

Las personas que viven el ¿Para qué? son esencialmente pragmáticas. Se ocupan de conocer y de explorar, con el principal objetivo de aplicar a otras circunstancias. Estas personas tienen una mentalidad práctica y proactiva. Cada ocasión en la que aprenden algo nuevo, están pensando en cómo aplicar ese conocimiento a situaciones particulares que conocen y manejan.

¿Cómo?

Las personas que adoptan el ¿Cómo? son naturalmente curiosos por la tecnología y hábiles para resolver problemas. Son los "ingenieros de corazón". Exploran herramientas y tecnologías novedosas que los ayuden a hacer mejor su trabajo y, aunque usualmente se interesan en saber como funcionan, más se interesan en cómo utilizarlas. Sin embargo no son iguales a los ¿Para qué?, ya que estos últimos ven las herramientas como medios para un fin. Los ¿Cómo? ven la herramienta como un fin en si mismo.

¿Por qué?

Estas personas, que llevan el ¿Por qué? son los verdaderos científicos. Su llamado intelectual no va hacia la aplicación, o la tecnología, sino a descubrir por qué las cosas son como son. Les apasiona realizar experimentos y comprobar sus hipótesis. Cada nueva respuesta trae consigo una infinidad de otras preguntas. Quieren saber como funciona el mundo, el universo, el tiempo, todo.

¿Qué?

Los más elusivos y escasos, las personas que siguen el ¿Qué? son aquellos que no se conforman con entender el mundo, sino que buscan fundamentarlo, demostrarlo, construirlo y hasta destruirlo en su discurso. Estas personas elaboran teorías, incluso formales, pero no buscan medirlas o aplicarlas. En ellos convergen las otras interrogantes, pues a través de la abstracción intentan modelar éste y posiblemente muchos otros mundos.

Quizá algo curioso de esta clasificación es que va de lo más concreto (pragmático) a lo más abstracto (filosófico) y en verdad a las personas de cada categoría les cuesta entender a las personas de las categorías más abstractas. Sin embargo, estas mismas personas pueden y normalmente se aventuran a la interrogantes que conciernen a las más concretas.

Además, esta clasificación está en linea con la división pictórica que propone el prof. Jorge Baralt: El conocimiento humano es como un puente para vehículos.
  • Finalmente se construye el puente para que pasen los vehículos. Ésta es la praxis.
  • Pero los vehículos no pueden transitar sin el piso del puente sobre el que puedan estar. Ésta es la tecnología.
  • Mas un puente necesita de bases que lo sostengan en pie, y lo mantengan estable y rígido. Ésta es la ciencia.
  • Pero, ¿dónde está el puente? ¿qué es lo que atraviesa y cuál es su razón de ser? ¿Sobré que se levanta? Podría ser un puente sobre un lago, en cuyo caso, el agua es la filosofía. O más bien el lecho (comentario hecho a posteriori por el mismo Jorge), ya que no es importante si hay o no agua, sino que exista una base sobre lo cual fundamentar todo lo demás.


Así bien, los ¿Para qué? son pragmáticos, los ¿Cómo? son tecnólogos, los ¿Por qué? son científicos y los ¿Qué? son filósofos. Claro, con todos los matices y particularidades que puedan surgir.

Y esto era lo que quería compartir hoy. Este es el tipo de cosas extrañas y locas en las que pienso cuando me ven callado y sin ver a ningún lado en particular. xD

¿Que opinan?

Hasta una próxima entrada. :D

jueves, 15 de octubre de 2015

Ni ciencia, ni tecnología, sino todo lo contrario

Desde que inicié mi carrera, he estado en una disyuntiva que me ha acompañado a lo largo de mi crecimiento como persona y como profesional; y ésta trata de saber si soy más del tipo técnico o del tipo científico. Me gustan actividades que involucran cada tipo y no me gustan tanto otras, que pertenecen a ambas igualmente. Entonces, ¿cómo me identifico?

Hmm...

A lo largo de mis estudios de pregrado, siempre quise convencerme a mi mismo que era del tipo científico. Despreciaba de asuntos puramente prácticos, e intentaba aprender más y más sobre ciencias avanzadas en computación. Sin embargo, siempre me ha molestado el empirismo científico. Y aunque respeto su utilidad, no me siento cómodo aplicándolo y razonando sobre él. Siempre he preferido las análisis formales y precisos, que no dependen de estadísticas y suposiciones.

Además siempre me ha gustado programar. El detalle, es que no me gusta programar cualquier cosa. Las aplicaciones web, móviles, etc., no me llaman la atención. Las tecnologías nuevas normalmente me tienen sin cuidado. Sé manejar una buena cantidad de lenguajes de programación, pero las herramientas industriales construidas alrededor a estos me son ajenas. Los programas que me gusta implementar son de problemas algorítmicos retadores, o de soluciones elegantes a problemas conocidos. En otras palabras, me gusta jugar con la programación. La veo como un arte, una forma de expresión, un gusto absolutamente puro.

Me gusta programar, y me gusta el pensamiento científico, pero nunca me sentí completamente cómodo siendo de un sólo tipo; cosa que usualmente no veo en otros colegas. Conozco gente que es sumamente práctica (que incluso puede usar conocimiento científico en aras de mayor practicidad) y conozco gente sumamente científica (que incluso puede hacer uso de herramientas computacionales prácticas para apoyar sus experimentos). Pero yo no logro identificarme con ninguno de estos grupos.

Continué con esta disyuntiva, y conocí nuevas ciencias, nuevas herramientas y nuevos tipos de pensamiento. Conocí a personas con pensamientos divergentes e ideas innovadoras. Comencé a leer un poco más sobre diferentes temas y eventualmente me di cuenta... No me identifico con el tipo científico, ni con el tipo técnico, por que no pertenezco realmente a ninguno de estos grupos. Soy una persona que pone en duda todo lo que aprende; que le apasiona tomar cualquier tema y hacer preguntas, y más preguntas, y quizá luego más preguntas; que prefiere el pensamiento abstracto y detallado incluso sobre las cosas más básicas. He comprendido, que mi tipo de personalidad y llamado intelectual, va más hacia la filosofía.

¿Ahh? ¿Filosofía? Así es, pero no la filosofía poética que en bonitas palabras revela poco más que edificios sobre cimientos de arena. Más bien de la filosofía formal, entendida como un proceso estricto de razonamiento cuya repercusión pudiera ser elevada, pero de formas mundanas. La aplicación racional del pensamiento a los temas más diversos, y también a todos los temas, agrupados, abstraídos. Me he sentido más cómodo hablando y pensando sobre este tipo de temas. Y me he dado cuenta que siempre ha sido así. Reviso las cosas viejas que he escrito y es consistente con esto. Además siempre me ha gustado más plantear las preguntas, o incluso plantear soluciones abstractas, que realmente implementar una solución o medirla.

Ahora que he entendido esto, no estoy seguro de qué seguiría. Posiblemente busque hacer un PhD eventualmente, pero con énfasis en el "Ph" (por Philosophy) y no tanto en la componente científica. Además, quiero continuar leyendo y aprendiendo sobre diferentes corrientes de pensamiento, para eventualmente consolidar la mía propia. Ahorita estoy leyendo a Descartes (que me parece genial). El siguiente en la lista es Kant (considerándome inclinado hacia el racionalismo, leer la crítica de la razón pura me parece necesario para consolidar una posición integral y bien informada).

Y bueno, este pequeño descubrimiento personal es lo que quería compartir por ahora. Los dejo hasta una próxima entrada. :D