¿Qué tecnología web debe aprender un desarrollador de C ++?

¿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?

  1. 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
  2. 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.
  3. 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.
  4. 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?

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 🙂

Te sugiero que aprendas solo JavaScript. hoy puede usar JS tanto en front-end como en back-end, crear aplicaciones de red muy agradables. JS funciona de manera no bloqueante y es importante comprender sus implicaciones.

También espere ECMAScript 6 “Armonía”, es el nuevo estándar en desarrollo que responde a algunos de los problemas de ES5. Tiene buenas características para el desarrollo de la biblioteca.

Un ejemplo de implementación de ES6: paulmillr / es6-shim

Otras tecnologías como HTML / CSS son para el marcado y la presentación que lleva un día conocer con más características. HTML / CSS para sitios web es algo así como XML / JSON para servicios web. tu habilidad mejorará con la práctica.

Y ahora, para la sorpresa, ¡puede compilar código C ++ en JavaScript y ganar comprobación y optimización del tipo de compilador! compruebe este proyecto: kripken / emscripten. eso tiene mucho valor para ti.

Creo que esto le dará una gran ventaja a tus habilidades en los próximos años 🙂
Después de que aprenda algo de JS, lea este libro: JavaScript efectivo: 68 formas específicas de aprovechar el poder de JavaScript (serie de desarrollo de software efectivo): David Herman: 9780321812186: Amazon.com: Libros, puede evitar muchos problemas que JS tiene y entender es mejor.

Es bueno comenzar con el aprendizaje de HTML / CSS / Javascript / PHP / SQL.
La razón es porque, se usan con mucha frecuencia en sitios web / aplicaciones web / sistemas web, muchas pequeñas empresas (apuntemos a las pequeñas), especialmente una empresa no tecnológica con una pista casi nula sobre el desarrollo web no se molestaría mucho en otras tecnologías web y si tuvieran que presentar un requisito de trabajo, encontrarían los requisitos más populares (básicos) ya sea en línea o un amigo de TI aconsejaría construir el sitio web de su empresa, etc.

Agregando,
Esos scripts / idiomas mencionados son uno de los fundamentos básicos y creo que es el más fácil de entender desarrollando sitios web / aplicaciones web / sistema web, etc. antes de ingresar a otros marcos o tecnología web como CodeIgniter, Flex, Ruby on Rails, Node.js, Django etc.
Una vez que haya dominado la base, será más fácil usar casi cualquier framework o tecnología web. La base que ha dominado asegurará que si esos marcos tuvieran errores, tal vez pueda solucionarlo antes de que lo hagan (en la necesidad de tiempo), comprender la jerga CSS / HTML / SQL, etc.

Bueno, siempre puedes comenzar con HTML / CSS / JS, etc.

Pero si quieres apuntar a algo, prueba Node JS y Angular JS. Estos son muy prometedores y muy “comercializables” en este momento. ¡Además, sería divertido aprender!

http://angularjs.org/
http://nodejs.org/

HTML + JavaScript .. Una vez que te acostumbres. Luego ingrese a los complementos como Sandro sugirió … pruebe diferentes complementos … NodeJS, JQuery, etc.

Java 🙂