jueves, 17 de abril de 2008

¿'Networker' o 'Programmer'? ...esa es la cuestión

Esta semana di un seminario de Java, enfocado a demostrar cómo utilizar la tecnología Java para comunicar dos programas en una arquitectura cliente-servidor utilizando Sockets de TCP/IP. El tema en sí es interesante, desde mi punto de vista, y más porque tuve que explicar un poco sobre cómo ocurre la comunicación entre dos equipos en una red, por TCP/IP, antes de mostrar (y demostrar) el código Java de los programas cliente y servidor, para lograr que se comunicaran. Fue un seminario interesante, especialmente porque el tema era nuevo para muchos, y eso es lo que lo hace interesante.

Al final alguien me preguntó qué era más difícil aprender: redes o programación. Es una pregunta difícil, pues hablamos de dos áreas que, aunque relacionadas por la tecnología, son muy distintas entre sí. En primer lugar, porque las redes de computadoras se basan en tecnologías de comunicación que requieren varias disciplinas de las ciencias, mientras que la programación requiere una habilidad muy particular para idear la lógica que permita la ejecución correcta de los algoritmos necesarios para lograr algo. En sí el trabajo con redes requiere implementar una serie de principios ya probados y que funcionan prácticamente por sí solos mientras se cumplan las condiciones requeridas, tal es el caso de los protocolos de red, o de las tecnologías de interconexión que ya se han estandarizado. Pero programar es un arte, un arte que precisa imaginación, habilidad para resolver un problema de la manera más simple y eficiente posible y plasmarlo en un código comprensible para una computadora; programar es crear, es inventar. En resumen, son disciplinas muy distintas entre sí.

Semanas atrás un amigo me pedía mi recomendación para que le dijera qué curso le convenía tomar: uno de redes o uno de programación. Mi respuesta fue: "aprende lo que te guste hacer más". Al final decidió tomar el de programación, y espero que le esté yendo bien. Los últimos años he estado dando cursos de capacitación en programación en Java y cursos de redes (networking) con equipos Cisco, específicamente para aquellos que quieren certificarse como CCNA, y son definitivamente mundos distintos.

Yo comencé programando a la edad de 12 años, ya lo había comentado anteriormente, con una computadora Timex Sinclair y una Radio Shack de bolsillo que me dio mi tío Israel. Mi tío me regaló también mi primer libro de programación y con ese libro aprendí (en otra ocasión contaré la anécdota). Años después conocí acerca de las redes para transmisión de datos, de protocolos y tecnologías de redes, pero como dicen por ahí: "nadie puede negar su origen".

¿Entonces qué soy?, ¿networker o programmer? Un poco de todo, creo yo.

:wq!