Muy bien, supongamos que aprende rápido.
Lo más importante que debe comprender, antes de aprender cualquiera de esas habilidades individuales, es el panorama general:
Cómo funciona una aplicación web, dónde reside, cómo se comunica el usuario con su aplicación, la diferencia entre el cliente y el servidor, cómo interactúan, dónde vive el código, etc.
Si tuviera que definir un orden en el que se debería aprender cada habilidad, sería:
1) HTML y CSS:
Van juntas y deben considerarse como una habilidad única. Estas son las habilidades más básicas que necesita saber para poner un sitio web simple (dije “sitio”, no aplicación) en la web.
HTML define cada elemento en su página (texto, párrafos, botones, formularios, etc.) mientras que CSS define la apariencia de cada elemento y su lugar dentro de una página.
Con un conocimiento básico de HTML + CSS, puede crear un sitio web estático bastante complejo (un sitio estático es aquel que no interactúa con el usuario. Simplemente muestra texto e imágenes).
2) Una vez que sepa cómo construir un sitio estático básico, debe aprender cómo agregar algo de interactividad. Por ejemplo, cómo crear un efecto de desplazamiento sobre un botón, una imagen o un enlace. Esto se hace con javascript, que es el único idioma admitido por todos los navegadores web.
Tenga en cuenta que hoy en día, es posible crear una aplicación web compleja completa utilizando solo JavaScript, pero hablaremos de ello más adelante. Describamos cómo se crearon las aplicaciones web hasta hace 5 o 6 años …
Javascript solía ser un pequeño lenguaje, solo compatible con navegadores web, destinado a ser utilizado para agregar interactividad simple a elementos html (efectos de desplazamiento y validación de formularios, por ejemplo).
Cualquier otra tarea compleja, se codificó en otros idiomas (como java, php, c, c ++, perl, python, etc.). Como ninguno de estos idiomas era compatible con los navegadores, las aplicaciones fueron ejecutadas por los servidores.
Un servidor, es la máquina donde se aloja su sitio. Contiene todos los archivos de su sitio web / aplicación que se envían al cliente (el navegador web de los usuarios cuando se accede a su URL).
Cuando codifica una aplicación en un idioma del lado del servidor, este idioma actúa como un “preprocesador”. Eso significa que la aplicación realiza un proceso o cálculo bajo demanda, formatea el resultado en html adecuado y envía la salida al navegador a través de Internet.
Eso tenía la ventaja de que podía usar cualquier idioma imaginable que quisiera, ya que puede configurar su servidor a voluntad. Al final, la salida es siempre un código HTML que puede ser interpretado por cualquier navegador.
La desventaja de este enfoque es que cada pequeña solicitud debe transmitirse a través del cable del navegador al servidor, y la salida de nuevo del servidor al navegador. Esto lleva tiempo y consume mucho mal.
En los últimos años, Javascript creció. Solía ser un perro lento, pero ahora es un lenguaje bastante rápido y eficiente. Así que ahora es más conveniente codificar toda la lógica de su aplicación en javascript. Javascript es interpretado por el navegador en lugar del servidor.
Eso significa que todo el proceso se realiza directamente en la computadora del usuario, como si fuera una aplicación de escritorio (como Word o Excel).
Esto hace que las aplicaciones sean más rápidas, más receptivas y se comporten de manera similar a las aplicaciones de escritorio tradicionales instaladas en su computadora.
Para ver un ejemplo, solo use Gmail para ver a qué me refiero. Hace unos años, todos usaban aplicaciones como Outlook para administrar sus correos electrónicos, mientras que ahora la forma más común es a través de Gmail u otras aplicaciones basadas en la web.
Entonces, por las razones anteriores, diría que la segunda habilidad que debes aprender es Javascript.
3) Conocer HTML, CSS y JAVASCRIPT por sí solo no es suficiente para crear una aplicación, ya que casi el 99% de ellos necesitan administrar la información extraída de algún tipo de fuente de datos (esto podría ser una base de datos relacional o un almacén de datos NoSQL).
Las bases de datos relacionales son las tradicionales, las bases de datos más comunes, y todas usan un poco de lenguaje para administrar sus consultas: SQL.
Entonces, si desea escribir un motor de blog, por ejemplo, tendrá que almacenar miles de publicaciones, así como los perfiles de sus usuarios y la información de inicio de sesión.
También deberá tener todas estas publicaciones disponibles para cualquier persona que visite estos blogs.
Entonces, la base de datos es el lugar donde almacena toda esta información.
Su aplicación (que podría codificarse en javascript, ruby, python, etc.) tendrá que interactuar con su base de datos para extraer información y luego procesarla antes de enviarla a la pantalla del navegador. SQL es el pequeño lenguaje que realiza estas consultas.
4) Como dije, puedes crear una aplicación web completa con solo conocer un lenguaje de programación: javascript. Javascript ahora se puede usar en el lado del servidor gracias a Node, un proyecto que aprovecha el motor V8 js (creado por google) y lo transfirió al lado del servidor.
Sin embargo, hay miles de buenos lenguajes que son más “para todo uso” (no solo para la web), más maduros y, en muchos sentidos, más potentes y expresivos que javascript.
Además, siempre debe saber cómo codificar en el lado del servidor, ya que hay muchas situaciones en las que este es el mejor enfoque (por ejemplo, si desea mantener la seguridad total para aplicaciones críticas, como la bancaria).
Por lo tanto, recomiendo aprender al menos un lenguaje de programación de propósito general. Le servirá bien para otras tareas no relacionadas con la programación web.
Mi favorito personal es Python. Altamente legible, fácil de escribir y mantener, potente, sucinto y muy divertido.
Otro lenguaje con características similares es Ruby. Ambos compiten en el mismo nicho (pequeños lenguajes divertidos y potentes).
Los últimos 2 comentarios:
a) Hay otro lenguaje que está de moda entre los desarrolladores, que es Coffeescript.
Es un lenguaje que se compila en Javascript (por lo que se ejecuta en todos los navegadores), y que toma muchas ideas de Python y Ruby, lo que lo hace tan divertido como estos lenguajes. Lo recomiendo si quieres divertirte mientras desarrollas.
3) Ya mencionaste jQuery. jQuery no es un lenguaje, es una biblioteca javascript creada para que trabajar con javascript sea mucho más fácil, rápido y divertido. ¡Es obligatorio! Pero primero, debes saber javascript, ya que es un complemento de este lenguaje.
Ahora volvamos a su pregunta: ¿Cuánto tiempo llevaría aprenderlo todo?
¡Depende de ti amigo!
Solo puedo intentar predecir cuánto tiempo tomaría crear una aplicación SIMPLE, pero completamente funcional y completa.
Algunas habilidades son transferibles. Por ejemplo, una vez que conoce un lenguaje de programación, aprender un segundo es relativamente fácil, ya que la programación generalmente se basa en los mismos principios, solo que con una sintaxis diferente.
HTML y CSS se pueden aprender en una semana, o incluso menos. No tienen ninguna dificultad, solo necesitas tomar un tutorial y seguir los ejercicios.
Aprender javascript significa aprender el arte de la programación. Para un principiante completo, es difícil de decir. Diría que puede aprender lo suficiente para escribir aplicaciones simples en un mes o dos, siempre que aprenda rápido y disfrute de la experiencia.
HTML + CSS + un conocimiento básico de JAVASCRIPT + una base de datos simple (como SQLite) son las habilidades básicas que necesita saber para crear una aplicación web totalmente funcional.
Para un estudiante inteligente y rápido como usted, yo diría que 3 a 4 meses.
Si ya aprendió HTML + CSS + JAVASCRIPT, no veo ninguna razón para creer que tendrá algún problema para aprender lo que queda, así como la gran cantidad de herramientas, editores, marcos y bibliotecas que utilizará en sus desarrollos.
La mayoría de estas herramientas se crean para facilitarle la vida y no son obligatorias (por ejemplo, jQuery). Pero pronto se dará cuenta de que necesita estas herramientas para evitar reinventar la rueda una y otra vez.
¡Buena suerte!
Luis