martes, febrero 19, 2008

¿Qué te hace falta para ser el mejor programador del mundo?

martes, febrero 19, 2008 por Martín

Piensa en ti mismo, en como eres, en las cosas que haces, en como programas, en las herramientas que utilizas, y contesta a esta pregunta, ¿qué te hace falta para ser el mejor programador del mundo?

Es una buena pregunta, ¿verdad? Bueno, en realidad es la típica pregunta que se hace en las entrevistas. De este tipo de preguntas que no tiene una respuesta única pero que sirve para ver como el entrevistado reacciona y que camino coje para buscar la respuesta.

Y es que la definición de buen programador es tan ambigua. ¿Es mejor programador alguien que codifica muy rápido o quizás alguien que codifica mucho más lento pero lo que hace siempre funciona?, ¿Es mejor programador alguien que conoce muchísimas herramientas o quizás alguién muy especializado en un lenguaje o sistema concreto?, ¿Es mejor programador alguien que conoce muchísimos lenguajes o alguién que conoce uno sólo a la perfección? ¿Es un buen programador alguien que conoce muchísimos patrones, buenas prácticas y domina la ingeniería o alguién que no conoce nada de eso pero que tiene un instinto nato que hace que todo salga bien? ¿Es mejor programador alguien que trabaja en equipo o alguien que quiere hacer todo el sólo? ¿Es mejor programador alguien que es muy social o alguien que es muy arisco pero muy superior codificando?

Demasiadas preguntas abiertas para el especificar un buen programador. Me voy a permitir hacer un paralelismo para explicaros mi opinión. Personalmente, a mi, me gusta mucho jugar al fútbol. Hace muchos años, era un fenómenos físicamente, aunque está mal que yo lo diga :-) En fin, que aunque era un tirillas, aguantaba jugando al fútbol cinco horas seguidas si me ponías. Con los años, he ido perdiendo condición física. Es lo que tiene la mala vida. Pero lo cierto es que mi juego siempre fue mejorando a medida que ganas fuerza, potencia, pero sobre todo... experiencia. Lo malo es que llega un momento en el que te vas haciendo cada vez más mayor y echas en falta poder llegar a ese balón, poder adelantar a alguien en carrera con un autopase, o simplemente poder echar una carrera sin tener que parar cinco minutos a resoplar (que sería lo más aproximado a mi juego actual, y eso en caso de que realmente pudiese echar una carrera :D)

Con la programación me pasa un poco lo mismo. Hace diez años me atrevía con lo que fuese. Que si ensamblador, que si C, que si probar a crackear algo, que si hacer un motor 3D, que si una demo, que si esto, que si lo otro. Si había que estar días y días al ordenador escribiendo sin parar, no había problemas. Ahora mismo, bueno, cuando llevo más de una hora ya empiezo a flojear bastante. Sin embargo, creo que ahora soy mucho mejor programador que antes.

¿Sería el programador ideal alguién con la vitalidad de un chico de 18 años y la experiencia de un hombre de cincuenta? Es muy posible. Sin embargo es pedir un imposible.

De todos modos, con animo de contestar a la pregunta que planteaba anteriormente, sin un imposible, me vuelvo al mundillo del futbol. ¿Qué necesita un futbolista para ser el mejor futbolista del mundo? Pues probablemente jugar en el Madrid, o en el Barcelona, o en el Milán o, vamos, en cualquier equipo realmente famoso. Adicionalmente, necesitará un cierto grado de carisma para protagonizar muchos titulares, ser un goleador (pocos porteros y defensas han sido los mejores) y hacer muchas filigranas, aunque no terminen en gol.

Con la programación se podría hacer un simil que seguramente desembocaría en el mejor programador del mundo. No creo que haga falta que lo explique mucho, ¿verdad? Estar en Google/Microsoft/Oracle/Yahoo/..., anotarse los tantos de los programas famosos (aunque sean otros los que preparen las jugadas), aparecer en las revistas del sector, etc. En resumen, el mejor programador del mundo necesita estar en la mejor empresa del mundo.

Pero bueno, a los que nunca seremos el mejor programador del mundo, nos queda consolarnos con que todos los equipos, y todas las aficiones tienen su jugador preferido. Incluso, quien sabe, seguramente hay millones de jugadores de fútbol anónimos que son mucho mejores que Kaká, pero que simplemente no tienen la oportunidad ni el equipo para demostrarlo. Igual de cierto es que hay muchísimas super-estrellas que las mueves a un equipo mucho más modesto y son incapaces de jugar decentemente, o que hay estrellas de equipos modestos que las mueves a un gran equipo y se convierten en jugadores mediocres.

Y a vosotros, ¿qué os hace falta para ser el mejor jugador programador del mundo?

comments

7 Respuestas a "¿Qué te hace falta para ser el mejor programador del mundo?"
chuidiang dijo...
5:56

Hola:

Me pasa como a tí. De joven echaba miles de líneas de código sin parar a descansar. Ahora, descanso más que programo, pero creo que lo hago mejor que entonces -lo de programar-.

Si por mejor programador entendemos "ser reconocido como el mejor programador", entonces sí, es necesario lo que comentas, un sitio donde se reconozcan tus habilidades.

Sin embargo, sólo para "ser el mejor programador", aunque nadie se entere, creo que necesitas un algo innato y un montón de experiencia y me hace la impresión que lo primero es mucho más importante.

Se bueno.


Albin dijo...
9:25

IMHO no creo que haga falta estar en G ni Y! ni en MS ...

Si me miro a mi mismo, bueno, aprendo rápido, necesitaría más tiempo para aprender (en vez de gastarlo en proyectos de siempre-lo-mismo), y quizás una persona que te de unas pautas para ir más rápido en vez de tener que recorrer el camino solito, y me pido también un poco más de capacidad de concentración, que ando muy despistado, y eso de que "cuesta menos probar que pensar" lo recurro demasiado, y para proyectos grandes es necesario tener buena memoria de cómo funciona internamente una cosa, para cuando haces otra, que todo sea coherente... conocer patrones y buenas practicas es bueno, y si lo tienes en cuenta a menudo, al final junto con la experiencia, se forma tu instinto, y finalmente son una misma cosa, que te dice "haz lo correcto" o "aunque sea lo correcto, parece que a la laga puede ser contraproducente".

Si te miro a tí, sin ánimo de hacer la pelota, que no te debo nada, pues con parecerme a tí ya me conformaría.

Social o antisocial, no creo que sea demasiado importante, que uno va al curro a currar, no a hacer amigos ni a estar todo el dia de risitas.

Si tienes instinto y capacidad de aprender, tampoco importa mucho si sabes un solo lenguaje, o una docena, cuando llegue el momento estarás a la altura, aunque en ambientes Java, si entras de novato total, por bueno que seas, hasta que conoces todas las tecnologias y puedes tomar una buena decisión sobre cual usar... pero bueno, se me entiende, yo creo.

Si que creo que todos deberíamos hacer algo mas de deporte (a mi no me gusta el fútbal), para desconectar y por salud.

Con la edad, no es que se pierda fuerza o ganas de estar días programando sin parar, yo creo que nos hacemos mas reflexivos, menos impulsivos, dominamos más la ilusión o no es tan intensa, y eso afecta a que no estemos tan locos, pero también a que el código sea mejor y quizás por eso te consideras ahora mejor, porque lo ves todo más como un sabio calmado, y menos como un aprendiz atolondrado. Yo creo que ese es mi caso, a mi escala.


Pentacour dijo...
10:28

Diría que es relativo. Un crack en visual basic que saca programas robustos como churros en su empresa será considerado un buen programador.
Pero de manera general, diría que es una mezcla entre tener algo innato, experiencia y disciplina. Hacer cosillas de joven en 50 lenguajes diferentes está bien y sería el camino, aunque le faltará experiencia. Para mi, un buen programador es alguien capaz de afrontar con solvencia cualquier proyecto, aplicando las tecnologías que conoce o nuevas. Luego estará el mejor programador en tal herramienta, en tal lenguaje, etc.
Y no, aunque lo intento, yo no sería un buen modelo :)


Martín dijo...
22:13

Albin. ¡Qué te has pasado! Muchas gracias por tus comentarios, son realmente un enorme alago, aunque desproporcionadas, que yo no me considero un ejemplo para nadie, más bien intento aprender de todo lo que vais comentando en el blog.

Yo tampoco considero que haya falta estar en una gran empresa, como las que citaba, para ser un gran programador. La verdad, es que ni mucho menos. Es simplemente que a esos programdores, como a los jugadores de los equipos grandes, siempre se les prestará más atención, incluso aunque después fuesen "jugadores" mediocres en otros equipos.

Estoy también bastante de acuerdo en lo que comentáis del instinto. Al final ese instinto es realmente lo que hace que nos guste esta profesión, que a veces no compensa tanto como puedan hacerlo otras.


ignacio dijo...
17:42

Me ha gustado mucho tu reflexión, aunque yo añadiría una opción a convertirse en una estrella "mediática" y es la de desarrollar Open Source, esta es una buena forma, si no la mejor, de adquirir visibilidad para que esos "grandes" se interesen por ti.

Un saludo,


Martín dijo...
17:16

@Ignacio.

Desde luego, y está en línea con lo que ya escribía hace tiempo.


javer andres dijo...
18:03

hombre soy de colombia y estoy haciendo mis primeros pinitos en programacion, soy autodidacta y de verdad compartarto su vision y su comentario de una manera sincera y totalmente deacuerdo.

"no se si voy a ser el mejor pero estoy dando lo mejor de mi"