martes, 26 de abril de 2011

¿Cómo ser un Desarrollador Web?

El mundo del Desarrollo Web, es uno de los más movidos si en cuanto a programación estamos hablando. Las tecnologías web cada vez avanzan más y más, y si nos quedamos quietos, fácilmente podemos quedar siendo "obsoletos" ante el medio; éste mundo, de desarrollar Aplicaciones Web es algo muy atractivo para muchos, pero no es para todo el mundo, así como no todos pueden cantar, no todos pueden pintar... no todos pueden programar.

Ser Desarrollador Web, implica muchas características que no todos tienen, la más importante de ellas, es la que comparten todos los programadores: La Lógica.
Si, la lógica es la característica más importante que deberás tener si deseas ser un Desarrollador Web, de ésto depende que sepas o no dar una adecuada solución a los problemas que se presentan en la programación; ésta lógica, va muy ligada a las matemáticas, el encontrar el camino más fácil y efectivo entre las diferentes posibilidades de solución, el conocer los procedimientos lógicos que se necesitan para llegar a un punto específico. La lógica se consigue con una adecuada preparación: Matemáticas y Algoritmos, son las bases para llegar al cometido; si al final, en definitiva no puedes, no le luches! No puedes obligarte a hacer algo que no está entre tus capacidades... vuelvo al ejemplo de arriba, no podrás pintar si no tienes el arte.

Si eres una persona que tiene la lógica que se necesita para programar, podremos decir que el 40% del trabajo está hecho, el resto corre por cuenta de tu disciplina, el dedicarle a la preparación el tiempo que merece... siendo mediocre no aprenderemos nada y tendremos siempre unos conocimientos incompletos, siempre debemos fijarnos las metas de estudio y así seamos nosotros mismos nuestros profesores, debemos cumplirlas.

Para ser Desarrollador Web, tienes que aprender algunos lenguajes, pero antes que nada, saber que una vez aprendas, el camino sigue, debes seguirte documentando, porque las tecnologías avanzan y la competencia se mueve.

Como primer paso, dedícale varias horas diarias a aprender HTML.
Dependiendo de tu dedicación, en unos 10 días podrás estar manejando el lenguaje de manera decente, obviamente, faltaría la práctica para perfeccionar.
Yo cuando estaba en etapa de aprendizaje, lo que hacía entre temas era ponerme un ejercicio lo suficientemente "complicado" como para determinar que entendí el tema una vez lo solucionara. Por ejemplo, suponiendo que acabas de ver las etiquetas de Tablas, para probar si entendiste, puedes probar maquetando un sitio con éstas etiquetas; OJO, maquetar sitios con tablas a nivel profesional no es buena idea, pero mientras aprendes, te servirá de práctica.
Al finalizar con HTML, puedes echarle una ojeadita a HTML5 y sus grandes ventajas para que empieces aprendiendo "A la Vanguardia". Incluso, puedes empezar directamente con HTML5 y saltarte el HTML, y ser un programador que trabaje siempre con lo último, implicando esto que tus sitios en la mayoría no sean compatibles con navegadores viejos, además, recuerda que HTML5 todavía está en Borrador. Lo dejo a tu criterio :).

Una vez termines con HTML/HTML5, puedes seguir con CSS, verás que el camino es un poco más largo, con CSS las cosas ya no son sólo de memorizar como en HTML. Cuando usas Hojas de Estilo en Cascada también deberás saber que uno de los puntos claves es el orden a la hora de Maquetar un sitio, saber diferenciar entre Clases e Ids y en qué momento usar una o la otra. Además, debido a que Internet Bugsplorer lleva años sin respetar los estándares, muchos de los atributos que uses no se verá reflejado de manera correcta dentro de éste navegador, por lo que deberás aprender los llamados Hacks, que no son más que trucos para hacer que los sitios se vean bien en todos los navegadores. Nunca maquetes en IE, siempre deberás usar otro navegador más éstandar, como Firefox o Chrome y luego harás en IE los ajustes pertinentes.
Siempre deberás tener a la mano una instancia de navegador para cada Motor de Renderizado, en el caso de Gecko, el adecuado es Firefox, para WebKit, puedes usar Chrome/Chromium o Safari, aunque mejor si tienes uno de los primeros, para Presto, obviamente deberá ser Opera y Trident lo tendrás con alguna versión de IE.
Aprender CSS es de paciencia, tus grados en éste lenguaje serán el día que maquetes un sitio completamente con CSS, separando la estructura de la presentación. Creo que si eres disciplinado, lo podrás lograr en unos 15 días.

Con ésto estaríamos terminando la parte de la maquetación, hasta ese punto nada de Lógica, de hecho cualquier persona puede ser fácilmente un Diseñador Web sin tener nada de lógica de programación aprendiendo los dos lenguajes antes mencionados.
Como últimas recomendaciones, puedes echarle una ojeadita a CSS3 y sus ventajas. Además, te recomiendo que aprendas a manejar algún Framework para CSS, los dos más famosos con 960 Grid System y Blueprint (El que yo uso :)), te economizarán mucho tiempo de trabajo (Aunque el uso de un Framework tiene igualmente sus desventajas).

Para entrar a la fase de programación, empezamos de lo más fácil a lo más complejo :).

Primero, con los conocimientos que tienes hasta esta fase, ya podrás hacer un sitio web bonito y con Full Diseño. Me imagino que querrás agregarle algunos efectos, el complemento para ésto de Javascript.
Javascript no es un lenguaje muy extenso, de hecho te puedes volver un experto y conocer hasta el más mínimo detalle de su funcionamiento en poco tiempo. Es el lenguaje para crear los efectos tan bonitos que vemos en muchos sitios, sin duda debes manejarlo si deseas ser un desarrollador web.
Aprender Javascript es relativamente fácil, aunque he de reconocer que programar en éste lenguaje a veces hace que nos enredemos con nuestras propias sentencias. Sin embargo, tienes una gran ventaja y te la explico luego del salto.
Cuando yo empecé a aprender Javascript, no existía Firebug, el debugger por excelencia, por lo que me tenía que valer de algunas técnicas un poco arcaicas para detectar los errores que estaba cometiendo en mis ensayos. Firebug te puede ayudar mucho en cualquier lenguaje de lado cliente (HTML, CSS, Javascript), te recomiendo que te familiarices con la herramienta.
Con Javascript tenemos los mismos problemas que mencioné sobre la compatibilidad, ya que IE interpreta las sentencias como le da la gana, así que paciencia, ya le irás entendiendo los caprichos.
Aprender éste lenguaje, dependiendo de tu dedicación, creo que no te tomará más de 3 - 4 semanas.
Otra recomendación importante es que luego de que aprendas JS, deberás tratar de trabajar con algún Framework Javascript, JQuery y Mootols son los más famosos, yo en los personal, los manejo ambos, aunque el primero es el más usado de todos.

Hasta éste punto, podrás trabajar desarrollando tus propios Templates Dinámicos, sin necesidad de programar de lado Servidor. De hecho, si deseas quedarte estático en ésta etapa lo puedes hacer y vivir de lo que has aprendido. Conozco muchos profesionales del medio que no saben PHP pero trabajan muy bien el Diseño Web.

Avanzando un poco, pasamos a el más largo de todos los caminos, es PHP. Yo llevo años desde que aprendí a programar PHP y todavía tengo de éste lenguaje muchas cosas que saber.
Conocer el lenguaje hasta el punto de poder desarrollar tus sitios es relativamente fácil, pero dominarlo a la perfección es un trabajo de muchos años, esfuerzo y dedicación.

Aprender PHP implica que conozcas qué es un Servidor de Aplicaciones, el más común es Apache, deberás entender para qué sirve, instalarlo y configurarlo.
Además, no es lógico que sepas programar sin saber qué es una base de datos. Aquí entra SQL (O NoSQL, pero esa es otra historia :)), otro lenguaje que deberás aprender.
Para bases de datos SQL hay muchos motores, siendo el más famoso MySQL, aunque también existe PostgreSQL, SQLite, entre otros. Deberás familiarizarte con el motor de bases de datos que elijas hasta el punto de los conocimientos Intermedios - Avanzados.
Como la idea no es saturarnos de lectura, puedes, antes de aprender PHP, familiarizarte con Apache, y luego de manera simultánea aprender PHP y MySQL (O el motor de bases de datos que elijas).

Cuando tengas conocimientos intermedios de PHP, puedes hacer una pausa en su aprendizaje y familiarizarte con la técnica AJAX (Asynchronous JavaScript And XML). Por si no la conoces, es una técnica que te permite realizar peticiones al servidor a través de Javascript y obtener/mostrar los resultados sin recargar el sitio (Entre otras muchas cosas). Es una técnica muy utilizada actualmente y vale la pena dominarla. Claro que los Frameworks Javascript te ayudan mucho a trabajar con éste recurso, pero mi recomendación es que aprendas cómo trabaja AJAX y luego, si quieres aprovechar las ventajas de los Framework Javascript para realizar éstas peticiones, lo puedes hacer.

A ésta altura, aunque tienes muchos conocimientos, no son todos los que necesitas, es bueno que te familiarices con XML y su uso. Aprender un poco (O mucho) de UML e Ingeniería del Software, además de Patrones/Antipatrones de Diseño te sería de gran ayuda para programar con mejor calidad.
Además, deberás aprender de PHP5, NO aprendas PHP4, ya es (A mi opinión) obsoleto.
Cuando programes en PHP, deja a un lado lo referente a la versión 4, como declarar las propiedades de una clase con la palabra "VAR", usa siempre el estándar de la versión 5 (¿6?).
Tengo muchas recomendaciones que darte, pero al ser tantas las voy a dejar para un nuevo artículo (Éste ya se me va haciendo largo).

Un último apunte, todo buen Desarrollador Web lee constantemente, trabaja con estándares, se basa en las buenas técnicas y se mantiene "a la última".
Publicar un comentario en la entrada