Si un programador competitivo de nivel medio quisiera comenzar el desarrollo web, ¿cómo sería su enfoque?

El | Desarrollo front-end

  1. Lea las especificaciones del W3C. (Especificación del Consorcio de la World Wide Web). Es más o menos el estándar para el navegador web en sí, pero debido a la disparidad política, idealógica y corporal, también deberá familiarizarse con:
    1. Microsoft IE Spec. (Especificación de Microsoft Internet Explorer).
      1. IE 8 – 11 tienen diferentes especificaciones.
    2. Mozilla FF Spec. (Especificación de Mozilla Firefox).
  2. Lea las especificaciones ES5 / 6. (Especificación de ECMA Script 5.1). Esto es para el lenguaje JavaScript en sí. Familiarizarse con él es clave para su éxito. La adopción de ES6 está próxima y pendiente de adopción generalizada, por lo que ahora es el momento de prepararse.
  3. Lea las especificaciones HTML5 / Canvas. (Revisión HTML 5 / Especificación de lienzo). Si tiene la intención de trabajar con WebGL / GPU, este applet es necesario, independientemente del navegador en sí.
  4. Aprenda JSON (JavaScript Object Notation). Esta es la sintaxis típica para la comunicación de datos entre el servidor / cliente.
  5. Aprenda AJAX (JavaScript asíncrono y XML). Esta es la API estándar para la comunicación de datos entre el servidor / cliente dentro de una aplicación web. Maneja datos, datos de formulario y cargas, así como también recibe datos. (Anteriormente, la publicación de datos requería al menos una recarga completa de la página).
  6. Aprende CSS. (Hojas de estilo en cascada). Debido a que esta sintaxis es poderosa, pero simplemente disfuncional (implementada de manera incorrecta), familiarizarse con ella no es sencilla y requiere mucha prueba y error y experiencia. Sea paciente y no se saque el cabello. Como programador, lo encontrará más arbitrario que lógico, lo que desafortunadamente es contrario al campo de la informática.
  7. Estudiar UX y Accesibilidad. (Experiencia del usuario). Este es el nuevo conjunto de prácticas centradas principalmente en la estética y la usabilidad de los sitios web. Es como una forma de arte / ciencia basada en tecnología y psicología. La accesibilidad es el término para hacer que su aplicación o información sea accesible para personas discapacitadas y discapacitadas, como ciegos, daltónicos, sordos, etc.

El | Media A pplets

  1. Opcionalmente, aprenda Flash y / o Java. Estos applets también son relevantes, sin embargo, ahora se recomienda usar HTML5 WebM, Web Movies, en lugar de Flashplayer para soporte, ya que Flashplayer es propietario y ha tenido una larga historia de dificultades de licencia, así como una buena cantidad de problemas de seguridad. .
  2. Opcionalmente, aprenda HTML5 Canvas y / o WebGL, Web Graphics Library. HTML5 Canvas es un applet en línea para renderizado 2D y 3D, ahora ampliamente adoptado para videojuegos y diversos medios creativos. WebGL es la API de OpenGL en JavaScript. OpenGL es un acceso de bajo nivel a la GPU, también conocido como aceleración de hardware o renderizado 2D / 3D.

El | Seguridad

  1. Study XSS (Cross-site Scripting) Estas vulnerabilidades permiten a los piratas informáticos implementar sus scripts en su sitio web.

El | Datos

  1. Conviértase en un desarrollador de back-end, o gane algo de experiencia, o trabaje con ellos para practicar mejor la estructura de datos y los patrones de comunicación.

El | Desarrollo general

  1. Concéntrese en la aplicación práctica y desarrolle su conjunto de habilidades y experiencia con el tiempo, acumulando metodologías de mejores prácticas en una variedad de situaciones. Gradualmente, a veces, rápidamente en otros, empuje a sí mismo a medida que continuamente pone el listón más alto. Inspírate en la inmensidad de la funcionalidad y la creatividad en la red mundial. Regularmente, a intervalos lógicos, tome sus mejores logros y comience de cero por completo. Adquirir una autodisciplina mental satisfactoria. ¡Trabaja duro, acepta las críticas y disfruta y exprésate también!
  2. Familiarícese con el software de código abierto, la programación modular y los marcos y dependencias comunes. También familiarícese con el funcionamiento de las empresas. En el mundo de OSS y en el mundo de los negocios, no encontrará ideales y metodologías perfectas. Simplemente haz tu mejor esfuerzo y sé lo más comprensivo posible. Aprenda de los éxitos y fracasos de usted y de los demás, y no tenga miedo de ir en contra de la norma por el bien de los principios adecuados.
  3. Aprenda a trabajar tanto de forma independiente como en equipo. Presta atención a los demás, incluso si no hacen nada del trabajo técnico. También puede compartir y aprender mucho de diseñadores, gerentes, evaluadores y especialistas en marketing. Comunícate de manera efectiva y documenta tu código.
  4. Asista a conferencias, presentaciones, hack-noches y trabaje en red / socialice / practique con otros desarrolladores y profesionales.

¡Encajarás perfectamente! ¡La mejor de las esperanzas!

Aprende los idiomas necesarios.

Comienza a escribir sitios. (Instale un servidor en su computadora para que pueda ejecutarlos localmente).

Además, ejecute Firefox con Firebug (y FirePHP si va a usar PHP) instalado para ayudar en la depuración, o configure algún otro método de depuración.

Muchos programadores de nivel medio ofertaron en todo tipo de proyectos en Upwork, etc.

Si desea mantenerse alejado de la multitud, debe especializarse en 1 o 2 tipos de proyectos y ser excelente en estas características más limitadas (como integración de gmap, tiendas web o redes sociales) en lugar de mediocrar en un amplio espectro.

Gracias por el A2A

Nunca he sido un programador competitivo. Así que no estoy seguro de cómo vincular eso con el desarrollo web. Comencé a hacer desarrollo web haciendo primero mis propios proyectos. Configuré mi propio servidor y comencé a jugar con Perl (hace un tiempo), luego pasé a php después de adquirir cierta competencia en php. Comencé a ofertar en trabajos en Upwork (luego en Odesk). Aterrizó algunos conciertos y nunca miró hacia atrás. Sigo aprendiendo nuevas habilidades. Lo último que he recogido es Python Django.