Alfabetización del lado del cliente
- Deben saber HTML muy, muy bien. Conocer hasta el último atributo y propiedad del elemento no es estrictamente necesario (aunque ayuda), pero conocer todas las etiquetas y cuáles son sus propósitos es muy importante; con demasiada frecuencia veo el código enviado donde se usa una etiqueta `div` en lugar de un` blockquote` o `textarea`. (Incluso O365 hace esto)
- Deben saber CSS y cómo funciona. Es particularmente importante que entiendan cómo funcionan los selectores (incluidos modificadores como: hover,> descendiente directo, + hermano, etc.). Deben tener conocimiento de las propiedades y lo que hacen esas propiedades, y deben entender el modelo de caja tal como se define en el W3C (no la interpretación de Microsoft del modelo de caja en IE). Estar familiarizado con un marco como Bootstrap o Foundation es una ventaja.
- Deben conocer Javascript o al menos un marco de Javascript como jQuery. Deben entender cómo funcionan los eventos JS y cómo conectarlos, así como también cómo manipular el DOM usando Javascript. Deben entender absolutamente cómo enviar solicitudes de Ajax y procesar las respuestas de Ajax.
Alfabetización del lado del servidor
- Deben tener fluidez en un lenguaje del lado del servidor como mínimo y ser capaces de comprender al menos 2 a 3 más.
- Deben poder escribir SQL manual para consultas CRUD básicas (INSERTAR, SELECCIONAR, ACTUALIZAR, BORRAR), así como también pueden hacer uniones y filtrar consultas con limitación de filas y cláusulas WHERE.
- Deben comprender los códigos de respuesta de estado HTTP más comunes y lo que significan (200, 301, 302, 400, 500).
- Deben entender cómo analizar los argumentos GET / POST, desinfectarlos, procesarlos y emitir una respuesta al usuario.
- Deben comprender algunos problemas básicos de seguridad web, incluidos los ataques de inyección SQL, CSRF y XSS, así como también cómo prevenirlos.
- Deben estar familiarizados con las prácticas básicas de seguridad con respecto a la administración de contraseñas, claves SSH, sales y Nonces.
Alfabetización de procesos
- ¿Cuál es la mejor manera de almacenar los registros de actividad de los usuarios, es decir, los clics de los usuarios en un sitio web, para crear algo similar al número de vistas en fotos y videos?
- Cómo acceder al editor CSS en mi sitio web gratuito de WordPress
- ¿Cómo pueden las empresas de diseño web minimizar las interminables solicitudes de revisión de los clientes?
- ¿Qué significa construir 'componentes de backend de alto rendimiento' con C ++ y cuáles son algunos ejemplos de dicho componente con respecto al desarrollo web?
- ¿Qué opinas de la empresa de hosting ipage.com?
- Deben sentirse cómodos trabajando con al menos un sistema de control de versiones (Git, SVN, Perforce …), y al menos comprender el concepto de confirmación / inserción / reversión.
- Deben comprender, conceptualmente, las diferencias entre los enfoques ágil y en cascada. Si tienen experiencia real con cualquiera de ellos, eso es aún mejor.
Alfabetización humana
- Deben poder comunicarse cortés y respetuosamente con los clientes.
- Deben poder escuchar las solicitudes de funciones del cliente e interpretarlas en patrones o enfoques de código reales; Si eso no es posible, deben poder escuchar la necesidad subyacente del cliente y sugerir alternativas posibles. (“Usted solicitó un sistema de navegación de Realidad Virtual, pero lo que escucho es que dijo que es porque quiere que el usuario sepa intuitivamente dónde se encuentra en el sitio web; creo que podemos lograr esto …”)