Yo, operador Java.

En esta entrada, voy a contar una anécdota personal que marco el camino que transito hoy en día...

Hace unos años, un amigo, que actualmente es un gran desarrollador y emprendedor de Córdoba, me dijo:

No te cases con ningún lenguaje. No crees fanatismo. Mientras tengas clara la lógica de la programación, lo único que cambia es como cada lenguaje resuelve.

En ese momento, era un estudiante de Ingeniería Química, que tenia ansias de aprender programación para crear cosas. No entendía la diferencia entre PHP y JavaScrip, y hasta este amigo me hizo una apuesta de que si lograba hacer un formulario de contacto utilizando solamente HTML, CSS y JavaScript me pagaba $100. Claro, quien se iba a imaginar que unos cuantos años mas tardes llegaría NodeJS y cambiaría las reglas del juego completamente?

En fin, han pasado aproximadamente 3 años desde esa conversación por el chat de facebook, y debo decir que nunca voy a poder terminar de agradecer lo que provocaron esas palabras al leerlas y procesarlas tiempo después.

Mi historia como programador comenzó con Java SE, en un curso de la Tecnológica de Córdoba, tuve buenos profesores, pero jamás logre terminar de entender el lenguaje... Sentía que en cierta forma no me estaban enseñando a programar, sino a operarlo.

Mis profesores me decían:

"La API de Java, provee muchas cosas ya hechas, para que el "programador" simplemente las utilice y así se ahorre trabajo."

Yo mas bien diría, para que se ahorre aprender partes fundamentales.

En dicho curso hice TPs que aprobé con notas mayores a 8, los programas en clase hacían exactamente lo que pedían los problemas escritos por los profesores. Obvio, yo me sentía el mas crack del universo escribiendo 50 lineas de código y haciendo funcionar el juego de la generala con IFs anidados infinitamente.

Fue fantástico cuando me presente a rendir el final, muy confiado... Reprobé.

Como pude ser?

Hice todo como en clase, me había "estudiado" todo el apunte de la cátedra, que pasaba?... La respuesta vino a mi un tiempo después, cuando me senté a querer hacer un programa por hobbie. No era un programador Java, era un operador Java.

Programador != operador

Definamos entonces estos dos conceptos tan importantes:

  • Un programador: es un profesional que entiende la lógica de la programación, la puede aplicar a cualquier lenguaje y situación. Aplica distintos caminos para una misma solución, y trata de encontrar la que sea mas optima, entiende el dominio del problema, y desarrolla una solución basada en ese dominio.
  • Un operador: utiliza una API, SDK, y sigue pasos lógicos tratando de que todo salga bien, utilizando métodos de terceros, no desarrollando jamas su lógica propia, siempre siendo una paria a la par de los programadores lógicos.

Si lo que acabo de escribir fue leído y comprendido bien, se notara el hecho de que digo que el operador "sigue pasos lógicos". Esto hace referencia a que esos algoritmos que nos enseñan, como el de la burbuja, o los de búsqueda binaria, etc., fueron ideados por programadores, y nosotros simplemente los aplicábamos, nunca terminando de entenderlos completamente. Lamentable.

Luego de este episodio traumático, tuve un momento en el que decidí que sistemas no era para mi, y decidí cambiarme de carrera e intentar en Ingeniería Química; no obstante mi cabeza siempre fue de sistemas, siempre me gustaron las computadoras, por lo cual después de 3 años de química, volví a sistemas.

Para mi suerte, esos 3 años, me permitieron desarrollar una lógica mucho mas profunda. En Ingeniería Química, tenia mucha Física, Matemática y Química, materias que me abrieron la cabeza y me forzaron a desarrollar una lógica que mas tarde logre extrapolar sin problemas a sistemas.

Fueron 3 años que estuve alejado de las computadoras, de mi verdadera vocación, pero que por contrapartida me permitieron desarrollar una ventaja competitiva con respecto a mis compañeros que nunca habría podido imaginar. Un efecto colateral beneficioso, digamos... ;)

Hoy, gracias a esa experiencia y perdida de tiempo, como muchos la tacharon, estoy incursionando en la programación avanzada sobre NodeJS, a pasos que hace unos meses atrás habrían sido inimaginables para mi.

La lógica, es una barrera que hay que superar antes de poderse llamar programadores. Lamentablemente, el mercado esta inundado de operadores de lenguajes, un problema de las universidades, institutos y del sistema educativo en su conjunto. Es comida para hoy, y hambre para mañana.

En esta entrada, quise contar mi experiencia, y como las palabras de un amigo, años mas tarde cobraron sentido cuando me cayeron las fichas. Los grandes programadores son aquellos que son lógicos cracks, pero que ademas son humildes y que no tienen problema en enseñarte, así como en ese momento el me ayudo a mi.

Entrada dedicada a mi amigo, Nicolas Fiorito.

Hasta la próxima entrada!

Show Comments

Get the latest posts delivered right to your inbox.