Saturday, September 5, 2009

LA GUERRA DE LOS FREELANCER: Seleccionar las mejores armas.

Para gustos se han hecho los colores y yo diría que hasta los lenguajes y tecnologías informáticas. Seleccionar cuál de ellas es la mejor para usted significa seleccionar su mejor arma: significa convertirse en una “máquina de matar” como suelo llamar cariñosamente a mi PC.

Pero, ¿Cuál es la mejor arma? ¿Cómo comienzo? ¿Por dónde comienzo a estudiar?

Una y otra vez escucho tales preguntas. Intentare darles algunos indicios de lo que puede ayudarlos.

¿Cuál es la mejor arma?

Para mi es la que más se adecúe a las disimiles situaciones que enfrentaremos.

No hacemos nada teniendo un Misil Intercontinental si nuestra guerra es más convencional, de ciudad, por ejemplo. La guerra nos pone en situaciones diferentes cada día y si no tenemos un arma que sea capaz de adaptarse a cada una de ellas estamos en desventaja frente al enemigo.

En el peor de los casos debemos tener la capacidad de adaptarnos muy rápidamente a una nueva y no vacilar en cambiarla siempre que sea necesario.

En nuestro caso nuestros posibles escenarios de batalla son las disimiles plataformas de desarrollo: Desktop, Web y Mobile así que debemos ser capaces de seleccionar como arma principal una que sea posible utilizar en todos.

He visto a muchos recién graduados que enseguida les ha dado por estudiar y/o especializarse en PHP. Yo no tengo nada en contra de PHP pero mi pregunta es: ¿Cuántas situaciones de batalla podrás resolver con esta arma? La respuesta es evidente: Solo proyectos Webs lo que te reduce automáticamente tus posibilidades a un tercio. Si vamos aun más allá, ese tercio se reduce aun más ante los posibles enemigos a los que se enfrentará, por solo mencionar un par más de ellos, las plataformas de .Net y de Java. Resumiendo, estos principiantes están reduciendo sus probabilidades a tan solo un 11-12% en el mejor de los casos.

Entonces pues, al momento actual de la tecnología, la selección estaría entre .Net y Java. Entre los 2 tienen sus ventajas y sus desventajas por lo que su posible mercado debería ayudar a decidir cual utilizar. Mi experiencia me dice que es mucho mayor el mercado de .Net que el de Java. Además en lo personal recomiendo .Net pues es, por mucho, más sencillo, estandarizado y fácil de asimilar para un principiante. Y la ventaja más importante para un principiante: La documentación de .Net es 100 veces mejor.

Yo recuerdo, y ya lo mencione antes, que el primer lenguaje que estudie fue Delphi y lo continué estudiando apenas me gradué. Por aquel entonces la empresa en la que trabajaba era de Cartografía y utilizaban el sistema AutoCAD, todo un clásico o un gigante en su rama. En aquel momento estaba potenciándose mucho el desarrollo en Visual Basic pero aun no llegaba a ser tan aceptado ni tan completo como el Delphi. AutoCAD utilizaba LIST (ni el nombre recuerdo ya) como lenguaje de scripts, MapInfo (otro sistema de Cartografía) utilizaba una versión llamada MapBasic, Access utilizaba VBA, y de pronto AutoCAD incorpora a Visual Basic para Aplicaciones (VBA) también.

Esto fue un hecho que me hizo recapacitar: si AutoCAD, un gigante, lo acababa de incorporar no era por gusto. El Delphi sería mejor y más completo pero me limitaba mi campo de acción. Implicaba que para desarrollar para “mi mercado” debía especializarme en Delphi y además en Visual Basic: no era rentable! Ese fue el fin de la era Delphi con un reinado de tan solo 4 meses.

A pesar que ya había dedicado unos 3 meses de estudio no vacile ni un segundo en SACRIFICARLOS y comenzar con Visual Basic. Como ya les dije, fue una de las decisiones técnicas más importantes para mí. Aunque parezca mentira ese Visual Basic puro, detenido en la versión 6, aun me da “comida”. (Porque para mí VB.Net no es más que un parche comercial).

No obstante, en su momento, tampoco vacile ni un segundo en sumarme al fenómeno .Net y C# como lenguaje principal pues venia mejor a mas situaciones de guerra. Así la lista de ejemplos puede ser inmensa.

¿Cómo comienzo? ¿Por dónde comienzo a estudiar?

Sin atolondrarse, con algo simple, metas simples, un poco cada día. Localice un poco de manuales sencillos y después pase a los más profundos.

Intente primero con manuales en su lengua nativa, aunque no sean los mejores. Hay detalles lingüísticos que son muy sutiles para comprender una idea y los necesitamos 100% legibles, sin traducciones malas hechas por nuestra mente.

Una vez vaya dominando la tecnología use como referencia la propia documentación de la plataforma, le aseguro que no habrá una más completa y llena de detalles.

Un consejo extra: Estudie y domine el idioma del “enemigo”.

Si domina el idioma del enemigo le será más fácil estudiarlo, comprender sus planes, aunque en este caso no se trataría del enemigo sino más bien del Amigo: necesitará conocer el idioma del fabricante de su arma para estudiar su manual de instrucciones, jeje.

Es necesario dominar el idioma Inglés. Aunque pueda localizar casi de todo en Español le será más difícil. Siempre podrá localizarlo todo en Ingles, al seguro.

Los estudiantes y los principiantes dicen: Es que ese libro que me indicas esta en Inglés!!

Si, es verdad, ese está en Inglés pero lo más triste del caso es que 1000 más los estarán. Entonces no queda otro remedio que estudiar y bajo ningún motivo hacerle rechazo.

Yo recuerdo en época tan lejana como mi primer o segundo año de la Universidad que había una asignatura cuyo único librito estaba en Inglés y se trataba nada más y nada menos que de “Lenguaje Ensamblador”: la asignatura asesina del año (la que desaprobaban más los estudiantes históricamente).

Nunca olvidare que demoré media mañana en leer apenas 12 o 15 líneas del libro y creo que para no entender mucho al final, jeje. Pero la Perseverancia se premia por si sola y hoy soy capaz de leer muy rápido cualquier documentación.

Con esto solo quiero animarlos a que estudien y se esfuercen, NADIE NACE SABIENDO, TODO SE LOGRA CON VOLUNTAD que no es otra cosa que la suma de Sacrificio y Perseverancia.

Próxima entrega:

LA GUERRA DE LOS FREELANCER: Librando batallas.