Está en la página 1de 3

ENTREVISTA A UN PROGRAMADOR

1.- Cmo aprendi a programar?

Luis Miss:

Aprend por mi cuenta a programar en una calculadora HP usando el lenguaje de pila de


notacin polaca inversa (RPN) cuando tena 17 aos. Haba intentado aprender a
programar antes, pero nunca terminaba de "captar" el concepto. Las calculadoras
cientficas HP 28c y 48g eran bastante poderosas y tenan excelente documentacin.
Escrib un visualizador de mallas 3D para la 48g - tena un libro de grficos 3D y muy
laboriosamente logr traducir un ejemplo desde Pascal al lenguaje de pila RPN. Fue muy
inspirador verlo funcionar. Luego compr una PC y Turbo Pascal, y comenc a estudiar
programacin con ganas. Ya programaba bastante bien cuando ingres a la universidad
para el curso de Ciencias de la Computacin.

2.- Las escuelas le resultaron de alguna utilidad?

Fui a la Universidad y consegu un ttulo terciario en Ciencias de la Computacin.


Definitivamente vali la pena, y le recomiendo a todos los programadores que consigan
un ttulo en sistemas si pueden.

Dicho esto, creo que en especial la Universidad me result muy til. En vez de ir a una
universidad de ingeniera, fui a la Universidad, que es bastante terica, as que la
enseanza no se centra mucho en la programacin (que era una pequea parte, y de
todas formas termin hacindolo "por otro lado"), sino que la mayora de los cursos se
enfocaban en los conceptos fundamentales y en cosas como anlisis de complejidad.

Si bien puede parecer aburrido e incluso una prdida de tiempo, creo que fue til y lo
disfrut la mayor parte del tiempo. Y probablemente soy un mejor programador gracias a
eso.

3.-O acaso ni siquiera se molest en terminar la escuela?

Durante la secundaria tom clases sobre computacin. Me enganch totalmente: me


enamor de la programacin, y busqu universidades que dieran cursos de software.
Eventualmente fui a la Universidad. Era el segundo ao que ofrecan un curso en
software, y fue absolutamente maravilloso: el plantel y los estudiantes trabajaban juntos
para hacer que los materiales resulten mejor, y todos aprendamos un montn. Este curso
me dio una excelente base para el desarrollo de software.

Las universidades me ensearon muchas cosas tiles, incluso la mayora de las bases
que sera mi trabajo futuro. Adems, aprend bastante programando por dinero - donde
comprender el problema real, entrega a tiempo, etc. son temas ms importantes que en
un entorno educacional.
4.- Cul cree que es la habilidad ms importante que debera tener un
programador?

Habilidades para comunicarse en forma escrita y verbal. Nunca vas a llegar muy lejos
como programador si no puedes transmitir tus ideas a otras personas de manera efectiva.
Los programadores deben leer asiduamente, practicar escritura, tomar cursos de
escritura, e incluso practicar el hablar en pblico.

Pero bueno, no es lo nico. Una cosa que es muy til, especialmente en proyectos de
cdigo abierto, es la habilidad de comunicar bien lo que se quiere hacer, y cmo se va a
hacer. La habilidad de explicar a otros porqu haces algo de determinada manera es muy
importante, y no todos tienen esta habilidad.

5.- Cree que las matemticas o la fsica son un conocimiento importante para un
programador? Por qu?

Hay una gran rama de la matemtica que es muy importante para los programadores,
llamada "matemtica discreta" o "matemtica concreta". Incluye disciplinas como la
probabilidad, combinatorias, teora de grafos, pruebas por induccin, y otras herramientas
tiles. Aliento a todos los programadores a que estudien matemtica discreta todo lo que
puedan. Incluso un poquito es mejor que nada.

En cuanto a la matemtica tradicional, bueno, no la uso tan a menudo, pero siempre


resulta til cuando la necesito. Por ejemplo, slo us clculo matemtico una vez durante
el ao pasado como parte de mi trabajo. Tena que estimar la carga en la hora pico del da
para un servicio cuya carga "segua al sol" aproximadamente por una curva senoidal. La
forma ms simple para estimar era integrar sobre 1/24 de la curva en una hora especfica.
Si no hubiera sabido clculo matemtico, no hubiera podido hacer estimaciones
razonablemente exactas.

Dira que mis conocimientos bsicos de matemtica me hicieron entre un 5% y un 10%


mejor programador. Si supiera mucha ms matemtica, sin dudas sera un mucho mejor
programador de lo que soy hoy en da, por lo que estudio y practico matemtica varias
horas por semana.

6.- Cul cree que ser la prxima "gran cosa" en la programacin?

Creo que la programacin de aplicaciones web ir gradualmente convirtindose en la


programacin ms importante para el lado del cliente. Creo que va a volver obsoletas a
las herramientas del lado del cliente: GTK, Java Swing/SWT, Qt y por supuesto todas las
propias de cada plataforma como Cocoa y Win32/MFC/etc.

No es algo que vaya a ocurrir de repente. Ya ha venido pasando durante los ltimos diez
aos, y bien podra llevar otros diez aos ms para que las aplicaciones web "ganen". Las
herramientas, lenguajes, APIs, protocolos y navegadores van a tener que mejorar mucho
ms todava. Pero ao tras ao se acercan un poquito ms, y finalmente decid cambiar
todo el desarrollo de mi aplicacin a una programacin basada en navegadores.
As que creo que van a ocurrir muchas mejoras incrementales, y las mejoras en hardware
van a hacer ms fcil la programacin, pero no espero ninguna gran mejora en la
productividad o una revolucin en la forma que la gente hace las cosas.

7.- Programacin orientada a X, el lenguaje Y, computacin cuntica, o qu cosa?

No trato de predecir el futuro. No creo en la adivinacin. La mejor manera de predecir el


futuro es implementarlo.

La prxima gran cosa en la programacin va a ser eclipsada por la prxima-prxima gran


cosa en la programacin, y as, y as. Estoy cansado de esta bsqueda sin fin de grandes
cosas, porque mientras tanto la gente se olvida de los temas reales: tener los
fundamentos correctos. Necesitamos mejorar un montn al hablar con nuestros clientes,
enfocarnos en entregar valor, y tener orgullo por lo que hacemos. Un desarrollador que
puede hacer estas cosas puede entregar software con cualquier herramienta, y no
necesita preocuparse por andar siguiendo tendencias y modas.

8.- Si tuviera tres meses para aprender una tecnologa relativamente nueva, cul
elegira?

De hecho tengo 3 meses (part-time), y los estoy usando en aprender Dojo


(http://dojotoolkit.org) y AJAX y DHTML avanzado. Estoy aprendiendo mientras escribo
una aplicacin web bastante ambiciosa. Dojo es muy interesante, y estoy seguro que ir
mejorando con el tiempo.

9.- Qu hace que algunos programadores sean 10 o 100 veces ms productivos


que otros?

Creo que si te detienes a pensar porqu todos los atletas no son igual de buenos, ah
tendras tu respuesta. Thomas Edison tiene una cita acerca de los genios que tambin te
puede dar algunas pistas.

10.-Cul es su libro favorito relacionado con la programacin?

Si quers decir "libro favorito de programacin", entonces quizs SICP (mitpress.mit.edu/*


sicp*/).

Dicho esto, muchos otros libros que disfrut un montn no eran de programacin en si,
sino acerca de arquitectura de computadoras y hardware. Obviamente est el libro de
Patterson y Hennessy sobre arquitectura de computadoras, pero yo prefiero incluso ms
el libro "Programacin en 80386" de Crawford.

También podría gustarte