Friday, November 03, 2006


bueno aqui dejo una entrevista hecha a un guru de la progrmacion como es Linus Torvalds


¿Cómo aprendiste a programar? ¿En alguna escuela del rubro o ni siquiera te molestaste en terminar alguna?

Yo no aprendí a programar en algún instituto o universidad, sino que con mis propias lecturas y simplemente haciendo las cosas. (inicialmente en un Commodore VIC-20 y después en un Sinclair QL)
a pesar de esto, creo que la universidad fue muy útil. Mejor que ir a alguna escuela de ingeniería, fui a la universidad de Helsinki, la cual es muy teórica, así que ahí la enseñanza no se concentró mucho en la programación (la programación fue solo una pequeña parte, que terminé haciendo aparte de todas formas), pero la mayoría de los cursos se trataron más de conceptos fundamentales y cosas como análisis complejos.
Los cuales parecen aburridos e incluso una pérdida de esfuerzos a veces, pero creo que fueron útiles y disfruté de la mayoría. Y pienso que quizás soy un mejor programador por eso.

¿Cuál crees que es la herramienta más importante que cada programador debería tener?


Es una cosa a la que llamo… gusto
Tiendo a juzgar a la gente con la que trabajo no por lo hábiles que puedan ser (algunas personas pueden producir un montón de código increíble), sino por cómo reaccionan frente a los códigos de otros, y también obviamente por cómo su propio código luce, y qué enfoque le dan. Eso me dicen si tienen… buen gusto o no. Y el asunto es si una persona no tiene buen gusto a menudo no es muy buena juzgando los códigos de otros, y su propio codigo la mayoría de las veces no termina siendo maravillosamente bueno.
Pero esto no es lo único. Una cosa que es muy útil, especialmente es un proyecto de codigo abierto, es simplemente la capacidad de comunicar correctamente qué es lo que quieres hacer y cómo lo vas a hacer. La capacidad de explicarle a otros el porqué haces algo de cierta manera es muy importante, y no todos poseen esa capacidad.
A pesar de esto, al final hay también personas que sólo producen buenos códigos. Quizás no sean buenos explicándolos y quizás ni siquiera tengan un buen gusto, pero los códigos funcionan bien. Algunas veces necesitan a otra persona (uno que sí tengan aptitud de definir gusto) que quizás manipule el código en un forma donde sea útil en gran medida, pero sólo la capacidad de escribir códigos claros para problemas difíciles es obviamente una parte bastante fundamental de cada programador.

¿Crees que la matemática y/o la física son herramientas importante para un programador? ¿Por qué?

Personalmente creo que tener conocimientos amplios de matemáticas es algo bastante bueno. No estoy seguro acerca de la física, pero estoy convencido que comprendiendo matemáticas y teniendo un buen conocimiento base te ayuda a ser un mejor programador. Y es tan sólo porque los modelos mentales son similares – puedes construir las reglas que quieras, pero deberías ser consecuente contigo mismo.

¿Cuál crees que será la siguiente gran cosa en programación de computadores? ¿ X-oriented programming (la mejor forma de decir esto es en ingles), computación cuantica, qué?

No creo que veamos un gran salto. Hemos visto un montón de herramientas que ayudan a hacer del trabajo rutinario algo más fácil – con niveles altos de lenguaje y tal vez la integración de bases de datos simples en el lenguaje principal. Pero la mayoría de las palabras que están de moda han sido sido de uso muy limitado.
Por ejemplo, personalmente creo que Visual Basic hizo más por la programación que lo que hizo los lenguajes orientados a objetos. Todavía hay gente que se ríe del Visual Basic y dicen que es un mal lenguaje, y han hablado acerca de los lenguajes orientados a objetos por décadas.
Y no, VB no fue un gran lenguaje, pero creo que las interfaces fáciles de bases de datos en Visual Basic fueron fundamentales más importantes que lo que es la orientación a objetos, por ejemplo.
Así que creo que habrá un montón de mejoras y las mejoras en el hardware hará más fácil la programación, pero no espero ninguna ayuda en la productividad o revoluciones en como la gente hará las cosas.
Al menos no hasta que nos acerquemos a la Inteligencia Artificial real. Esta hará cualquier cosa que nuncá podrás programar.

Si tuvieras tres meses para aprender una tecnología relativamente nueva, ¿cuál escogerías?


Hmm, me encantaría hacer FPGA, pero siempre he estado muy ocupado para sentarme realmente y comenzar a aprender. Me encanta la noción de jugar con el hardware: es obviamente una de las razones por las que terminé haciendo operaciones de sistema, que esto (junto con recopilaciones) es casi lo mismo que jugar con el hardware, sin diseñarlo realmente o construirlo tú mismo

¿Qué crees que hace a algunos programadores 10 o 100 veces más productivos que los otros?

Realmente no tengo idea. Creo que algunas personas son simplemente mejor, capaces de concentrarse en las cosas que importan, y creo que mucho de esto se logra simplemente haciéndolo. La mayoría de los buenos programadores, he sabido, comienzan bastante jóvenes.

¿Cuáles son tus herramientas favoritas (sistemas operativos, lenguaje de programación/escritura, editores de texto, versiones de sistemas de control, motores de bases de datos, otras herramientas con las cuáles no puedes vivir sin ellas) y por qué te gustan más que otras?

Realmente no estoy usando esa cantidad de herramientas en las que trabaje, con la mayoría de ellas he gastado tiempo simplemente haciendo que funcionen para mí. Lo relativo a sistemas operativos es claramente lo mejor de todo, pero obviamente también he escrito mi propia versión del control de sistema (git), y el editor de texto que ocupo (micro-emacs) lo he terminado arreglando a mi medida y ampliándolo encima también.
Lo único que me preocupa profundamente es mi lector de email. Yo uso pine – no porque sea necesariamente el más grande de los lectores de mails, sino porque estoy acostumbrado a él y hace lo que necesito hacer con un mínimo de esfuerzo.

¿Cuál es tu libro favorito relacionado a la programación de computadores?


Heh. Cuando leo estos días, tiendo a leer tanto ficción como cosas no relacionadas con la computación, viejo pero bueno “The Selfish Gene” de Richard Dawkins (el título del libro en español sería “El Gen Egoísta”)
Cuando se refiere a programación el único libro real del tema que se me viene a la mente es en efecto el clásico de Kernighan & Ritchie “The C Programming Language” (el lenguaje de programacion C), porque es un libro increíblemente útil y además es muy leíble y corto. Considerando que puedes aprender básicamente uno de los más importantes lenguajes de programación de nuestros tiempos, el hecho que sea delgado y leíble es simplemente una maravilla.
Dicho esto, muchos otros libros que he disfrutado un montón no fueron acerca de programación per se, sino que de la arquitectura de los computadores y de hardware. Está obviamente el libro de arquitectura de computación de Petterson & Hennessy, pero personalmente para mi es mejor “Programming the 80386″ de Crawford & Gelsinger’s, que fue el que usé cuando comenzé con linux
Por similares razones tengo una debilidad por “Operating Systems: Design and Implementation” (sistemas operativos: diseño e implementación) de Andrew Tanenbaum.

¿Cuál es tu libro favorito NO relacionado con programación?

Bueno, ya mencioné “The Selfish Gene” de Dawkins. En el lado de la ficción, hay un montón de libros que he leído y disfrutado, pero de muy pocos diría que son mis favoritos. Suelo no releer los libros y la selección podría cambiar en el tiempo. Es mayormente ciencia ficción y fantasía, ejemplo “Stranger in a Strange Land” de Heinlein, fue mi favorito cuando era adolescente, pero un poco menos claro para mi por estos días.

¿Cuáles son tus bandas/artístas/compositores favoritos de música?

No soy un real aficionado a la música, pero cuando escucho suelo oir varias cosas del rock clásico, que van desde Pink Floyd hasta los Beatles, de Queen hasta The Who.

0 Comments:

Post a Comment

<< Home