¿Quién soy?
Me llamo Josep, soy un desarrollador de aplicaciones informáticas de veinticinco años de edad. Estoy especializado en el desarrollo para sistemas Microsoft Windows y en la programación de aplicaciones web dinámicas. También me gusta prestar mucha atención al diseño de la interfaz de usuario y a su usabilidad, para conseguir que produzca un impacto visual positivo, que el aprendizaje de la nueva herramienta se produzca de forma natural y, que su uso sea sencillo, todo esto, manteniendo los requisitos funcionales de la aplicación.
¿Porque me gusta desarrollar aplicaciones informáticas?
El primer contacto que tuve en mi casa con el mundo de la informática, fue con un modelo de la mítica Atari VCS 2600 (Rainbow). Si hablamos de ordenadores personales, fué con un clónico IBM PC que utilizaba Windows 3.11 como sistema operativo. Desde entonces he sentido fascinación por la tecnología y por las posibilidades que esta ofrece a la hora de dar solución a problemas reales. Poco a poco me di cuenta de que, lo que daba verdadera utilidad a los computadores eran sus programas y aplicaciones. En el año 2000, a los quince años de edad, compré varios libros sobre Macromedia Flash 5 y empecé a estudiar esta tecnología por mi cuenta. Aprendí a trabajar con la línea de tiempo, a realizar animaciones, a manejar eventos y a programar con ActionScript. Esto despertó en mi, definitivamente, el interés por la programación. Actualmente, Flash pertenece a Adobe Systems Incorporated y se encuentra instalado en el noveinta y nueve por ciento de los ordenadores de escritorio conectados a internet, así que, parece que fue una decisión acertada el aprender a usar esta herramienta.
¿Que he estudiado?
En el año 2003 terminé mis estudios de Bachiller. No tenía nada más en mente que no fuera estudiar una carrera universitaria de tecnologías de la información. Fuí aceptado en la Universidad de Alicante para cursar una Ingeniería Técnica en Informática de Gestión en la Escuela Politécnica Superior de dicha universidad. Estuve cinco años estudiando y, básicamente, aprendí a programar aplicaciones en C/C++ para consola, Oracle, MATLAB y Prolog. Todos los conocimientos "súper útiles" que necesitas para el trabajo en la vida real:
También me matriculé, por iniciativa propia, en varias asignaturas optativas que enseñaban un poco de PHP, otro poco de ASP (no ASP.NET) y un poco, muy poco, de JSP. Por supuesto, a lo largo de esos cinco años, aprendí muchas otras cosas, pero ninguna de ellas puede aplicarse directamente al oficio de programador.
El año 2008 abandoné mi carrera universitaria y me matriculé en un Ciclo Formativo de Grado Superior enfocado en el desarrollo de aplicaciones informáticas. Terminé el año 2010. Aprendí a realizar scripts en Bash y comandos básicos para consolas de sistemas UNIX, programación visual para sistemas Microsoft Windows utilizando el framework .NET y C# como lenguaje de programación, bases de datos "reales" como MySQL y Microsoft SQL Server, jQuery y PHP (además de HTML y CSS, por supuesto), administración básica (con Microsoft Windows Server) de equipos conectados en red e implantación de tecnologías para empresas (Active Directory de Microsoft), introducción al ERP Microsoft Dynamics NAV, formación y orientación laboral, y por último, prácticas en un entorno real en producción. Creo que hay una gran diferencia respecto a lo que me aportó la universidad.
¿Que conocimientos tengo en el desarrollo de aplicaciones nativas?
En el proceso de desarrollo de aplicaciones para sistemas Microsoft Windows utilizo el entorno de desarrollo integrado propio de Microsoft, Visual Studio. En mis estudios he aprendido a explotar las posibilidades del framework .NET utilizando el lenguaje C#, pero este mismo framework permite trabajar igualmente con otros leguajes como por ejemplo C/C++, Python y, Visual Basic, con los que también he tenido contacto. Una característica interesante que brinda el conjunto formado por .NET y C#, es la posibilidad de realizar aplicaciones para otros sistemas operativos distintos a Microsoft Windows. El proyecto Mono permite, utilizando estas tecnologías, realizar aplicaciones para sistemas GNU/Linux, Mac OS X, iOS (gracias a MonoTouch) y Android (gracias a MonoDroid). De esta manera, una misma aplicación puede exportarse a diferentes plataformas ahorrando costos y tiempo de desarrollo.
¿Que hay del desarrollo web?
Personalmente, lo que más me gusta es el desarrollo web, por su facilidad de implantación, su naturaleza multiplataforma y las posibilidades de escalabilidad que ofrece. A la hora de trabajar con tecnologías web, intento, siempre que puedo, utilizar tecnologías abiertas, como son HTML, XML, CSS, JavaScript, PHP y MySQL. Para tareas que deban manejarse mediante código JavaScript utilizo jQuery, una bilioteca con la que me siento muy cómodo. Además de esto, procuro, siempre que sea conveniente, incorporar las nuevas prestaciones que ofrecen los navegadores web modernos, como las nuevas propiedades de CSS3 y los nuevos elementos y funcionalidades de HTML5. Pero, desafortunadamente, Internet Explorer es un lastre que hace que todo este proceso evolutivo avance de forma muy lenta. Para depurar el código, utilizo tanto Firebug (en Firefox) como WebKit's Inspector (en Safari y Google Chrome). Toda la programación web la realizo utilizando el editor de código hecho por Allan Odgaard, TextMate, para los CSS el editor especializado hecho por Macrabbit, CSSEdit, y para la transferencia de archivos mediante FTP, Transmit, de Panic. Si tengo que editar o hacer algún pequeño gráfico, Adobe Photoshop CS5. También mencionar que, ahora mismo, estoy empezando a estudiar y aprendiendo a utilizar un framework de desarrollo en PHP llamado Yii Framework.
¿Que equipo utilizo para trabajar?
Desde Windows 3.11 he probado todas las versiones de este sistema operativo, también he probado distintos sabores de GNU/Linux (Mandrake, Debian, Red Hat, Suse, Ubuntu y algunos otros) e incluso FreeBSD y OpenSolaris. El año 2006 probé por primera vez Mac OS X 10.4.4 "Tiger", la primera versión de Mac OS X compatible con procesadores Intel, en un Hackintosh (hardware de PC utilizando el sistema operativo para equipos de escritorio de Apple). Un año más tarde compré mi primer equipo Apple, un MacBook con Mac OS X 10.5 "Leopard" Core 2 Duo 2 GHz con 2 Gb de SDRAM. Sigue siendo mi equipo de trabajo principal, con una diferencia, ahora ejecuta Mac OS X 10.6 "Snow Leopard". No me planteo volver a comprar un equipo que no ejecute Mac OS X y no sea de Apple.
¿Algo más?
Siempre me gusta aprender cosas nuevas, interessantes y útiles. Me gustaría aprender a programar en Objective-C para tener acceso completo a las APIs Cocoa y así poder desarrollar para iOS y Mac OS X (por el momento he aprendido AppleScript...) y, ¿porque no? vender mis propias aplicaciones en el App Store y en el Mac App Store de Apple. También tengo en mente algunos proyectos web en los que empezaré a trabajar cuando termine de aprender a utilizar Yii Framework.