¿Honestamente? A quien quieras. Y esa es la parte difícil. No te diré que elijas Node o Python o Ruby on Rails, pero puedo decirte qué buscar antes de decidir y dónde buscarlo. Aquí va.
La palabra “tecnologías web” abarca una gran cantidad de tecnologías que abarcan el ‘front-end’ y el ‘back-end’ de la pila de tecnología. Entonces, ¿por dónde empiezas?
- HTML / CSS: Parte del ‘front-end’ de la aplicación web. Primero debe asegurarse de estar cómodo con HTML. Después de eso, migre para comprender CSS. Y quiero decir que realmente lo entiendo. Practique creando diseños: fijos, fluidos, convirtiendo listas en menús de navegación, efectos de desplazamiento, etc., todo SIN Javascript. Intente replicar una página de Quora o Facebook y vea qué tan cerca puede replicarlos, desde el punto de vista del diseño. No color / estética
- JavaScript: también forma parte del front-end. Ahora, no aprendas todo desde cero. La mayoría de las personas comienzan a aprender JS en su camino y mejoran a medida que avanzan. Es muy fácil de aprender e igualmente fácil de abusar, al igual que PHP. Comprenda el idioma y pase un tiempo con la API DOM. Una vez que comience a odiarlo, migre a jQuery. Es otra API DOM en esencia. Hace que sea mucho más fácil acceder al DOM, reduce la curva de aprendizaje y realmente te gusta la codificación JS. Recomiendo leer “JavaScript the Good Parts – Douglas Crockford” una vez que haya aprendido el idioma.
- Frameworks JavaScript MVC: Estas son cosas como Backbone.js, Angular.js, Ember.js, etc., toneladas de ellas. No empieces a aprenderlos ahora. Espere. Siéntase cómodo con los puntos 1 y 2 anteriores antes de sumergirse en esto. Deje que su código se vea como espagueti antes de comprender el valor de MVC en el cliente. Es una experiencia emocionante cuando trasciendes el uso de marcos MVC. Mantenlos en tu radar pero no te preocupes por ellos por ahora.
- Back-end : Ahora, esto es un poco complicado. Depende de lo que te guste. Viniendo de C ++, puede que le resulte más fácil elegir Java, ya que es similar. Sin embargo, si se siente cómodo con los lenguajes dinámicos / scripting, Python / Ruby también son buenos candidatos. PHP es una buena opción, pero como dije, puedes abusar de él y escribir código horrible. Es cierto para cualquier lenguaje, pero es más fácil hacerlo en PHP en mi humilde opinión. Así que este es difícil. Es similar a preguntar qué lenguaje de programación debería aprender a continuación.
Ahora, el backend es una bestia completamente separada. No se trata solo de un lenguaje de programación. Se trata de marco (s). Tenga en cuenta el plural. Hay cosas como micro frameworks y full stack frameworks. Tienen sus ventajas / desventajas. Sugiero ir micro ya que estás aprendiendo desarrollo de aplicaciones web. Habrá más para aprender pero más valioso a largo plazo y sabrá mejor cuál es el valor agregado que le brinda un marco completo de pila y podrá depurar mejor los problemas con ellos, en mi humilde opinión. Para una visión detallada sobre eso, eche un vistazo a mi respuesta a esta pregunta: ¿Rails y Django abstraen demasiado para los principiantes?
- ¿Por qué Javascript para frameworks es tan diferente de lo que un principiante aprende en Internet a través de libros y videos?
- ¿Qué porcentaje de nuevas aplicaciones se escriben en HTML5?
- ¿Es aceptable en una empresa de desarrollo web escribir comentarios en un estilo informal?
- ¿Es una señal de alerta cuando un campamento de programación incluye una cláusula de confidencialidad que cubre los términos del acuerdo en sí?
- ¿Yourneeds.asia es la mejor empresa de SEO?
Entonces, ¿qué tienes que aprender en el backend? API de base de datos: es decir, comprender las API de acceso a datos de bajo nivel en el idioma de elección. Por ejemplo, JDBC si usa Java. Encontrarlo engorroso y luego pasar a otra cosa o adoptar marcos ORM como SQLAlchemy (Python) o DataMapper (Ruby) o Hibernate / Spring-JDBC (Java) o NHibernate (.Net). También puede obtener marcos de aprendizaje de inyección de dependencia (DI) como Spring y comprender su necesidad / valor (¿o exageración?).
No se detiene aquí. Hay un resurgimiento de MVC en el lado del servidor, por lo que también tendrá plantillas / lenguajes para generar / poblar dinámicamente los HTML. En Java tienes Freemarker / Velocity y muchos otros en diferentes idiomas. Entonces, al menos, esto es lo que necesitará aprender:
Parte frontal: HTML / CSS / JS
Backend
- Lenguaje de programación para la capa empresarial / lógica de dominio
- Templating language / framework (en el idioma de elección anterior)
- Clases de acceso a la base de datos (sin procesar por ahora. Puede aprender los ORM más adelante).
El front-end debería ser fácil. Inicie los tutoriales de Google, únase a StackOveflow y no dude en hacer preguntas sobre Quora. Para el backend, depende del idioma que te guste y luego puedes tomarlo desde allí. Siéntase libre de hacer una pregunta aquí o StackOveflow para esa elección y lo ayudaré a tomar una decisión de cualquier manera que pueda, con el apoyo del resto de la gente que participa. Sugiero escribir aplicaciones web “hello world” en el varios / idiomas que seleccione para decidir cuál le gusta. Preferiblemente intente almacenar / recuperar la cadena “Hello World” de la base de datos para tener una idea de las API de acceso a la base de datos.
Algunas sugerencias: Restlet o JAX-RS para Java o Play! para la pila completa Bottle / Flask (micro) o Django / Pyramid para Python, Rails (pila completa, mucha magia) para Ruby o ve con Sinatra.
¡Espero que esto ayude! Mucha suerte y bienvenido al desarrollo web. Es divertido, ya sabes know Te tomará un tiempo dominar todo, pero ten paciencia y pronto darás los frutos (dulces) de tu trabajo. Y lo más importante, APRENDE 🙂