¿Cuál es la mejor manera para que un desarrollador centrado en el backend aprenda frontend, principalmente CSS?

Aprende de los expertos. Aquí están algunos de mis favoritos:

  • Chris Coyier (@chriscoyier) – Uno de los grandes maestros de CSS. Él es el hombre detrás de http://css-tricks.com/, así como el screencast asociado. Es uno de los autores de http://codepen.io/, (inspirado en jsfiddle), una herramienta invaluable para descubrir y crear fragmentos de código front-end. Él también es gracioso.
  • Ethan Marcotte (@beep) – Autor de Responsive Web Design (http://www.abookapart.com/produc…), una de las siete excelentes ofertas de A Book Apart. Él está a la vanguardia de la tendencia reciente hacia sitios web de diseño receptivo para dispositivos móviles.
  • Nicolas Gallagher (@necolas) – Autor del invaluable normalize.css, y colaborador del proyecto HTML5 Boilerplate. Su github (https://github.com/necolas) habla por sí mismo.

Utilice todas las excelentes herramientas a su disposición.

  • Como se mencionó anteriormente, codepen.io es genial. Hay una gran cantidad de productos similares para fragmentos de front-end, incluidos jsfiddle.net, tinkerbin.com, y una oferta más reciente de Mozilla llamada Thimble (https://thimble.webmaker.org/en-US/).
  • Algunas de las otras respuestas ya han hablado sobre esto: el WebKit Web Inspector es su mejor aliado (seguido de cerca por Firebug para Firefox, si le gusta ese tipo de cosas). Le permitirá alternar las reglas CSS, activar los estados activos / activados y ayudarlo a visualizar lo que sucede en la página y por qué.
  • http://www.css3files.com/ es otro gran recurso. Es un desglose extremadamente completo y elegante de muchas de las reglas CSS3 más nuevas (así como algunas más antiguas), completo con una lista de soporte de navegador actual para cada uno.

Algunas otras cosas a tener en cuenta:

  • Aprenda sobre el diseño basado en cuadrícula. Esto será extremadamente útil cuando trabaje con un diseñador gráfico sólido, y aún más útil cuando no lo esté. Aquí hay un gran lugar para comenzar: http://twitter.github.com/bootst…
  • Si bien el Inspector web es su mejor aliado, Internet Explorer es y seguirá siendo su mayor enemigo . Lo importante aquí es asegurarse de que conoce las diferencias en la compatibilidad del navegador. Pruebe su diseño con múltiples navegadores y con múltiples dispositivos si está trabajando con dispositivos móviles.
  • Engañar. Use una herramienta como http://prefixr.com/ para ayudar con los prefijos de proveedores para que su diseño sea más consistente entre los navegadores.
  • Mejor aún, use un precompilador CSS como LESS o SASS para hacer su trabajo por usted. Créame, como desarrollador centrado en el backend, permanecerá despierto por la noche pensando en todas las veces que dejó caer la D de su principio de diseño DRY mientras luchaba con CSS. Cuanto más grande es el proyecto, peor se ponen las cosas. Con un precompilador, puede usar esas cosas familiares y maravillosas que siempre ha dado por sentado: variables, funciones, etc. (Una nota más sobre esto: si está pensando en el rendimiento de su sitio, le recomiendo usar el comando proceso de construcción de línea empaquetado con estas herramientas, en lugar del analizador / compilador dinámico JS. Esto será mucho más fácil para el cliente).

Diría que zambullirse y hacerlo es la mejor manera de aprender.

Si se está enfocando en CSS, entonces podría intentar crear algunos diseños básicos de HTML y CSS (por ejemplo: diseño de columna 2/3 usando flotantes) para comenzar y hacer que funcionen en x-browser. Encuentre a alguien con buena experiencia en el front-end para proporcionar una revisión de código.

Luego, podría construir sobre eso estableciéndose desafíos adicionales. Algunas cosas en CSS no son tan intuitivas y obtendrás una mejor comprensión al experimentarlas por ti mismo.

Áreas clave en CSS para mirar:

  • CSS Cascade
  • Restablecimiento de CSS y por qué es necesario
  • Modelo de caja
  • Especificidad: evite la trampa de especificar en exceso.
  • Carrozas
  • Posicionamiento

Si se queda atascado y necesita una solución, utilice todos los medios un recurso en línea, sin embargo, un consejo es evitar cortar y pegar soluciones. Asegúrese de tomarse el tiempo para comprender cómo funciona la solución. De esta manera, reunirá un don para comprender si la solución dada es realmente la correcta.

Si se toma en serio la comprensión de las tecnologías front-end, le sugiero que evite los marcos de cualquier tipo (al menos inicialmente) para que pueda obtener una buena comprensión de los fundamentos antes de usar una abstracción.

  1. Encuentre un buen desarrollador / desarrollador híbrido cerca de usted (un compañero de trabajo, conocido de una reunión, etc.)
  2. Pídales una sesión de tutoría en una cafetería y ofrezca una pequeña cantidad de dinero y / o retire la pestaña
  3. Practica diligentemente: aprende construyendo y cometiendo errores
  4. Seguimiento con preguntas
  5. Lee vorazmente

Preguntarle a alguien que tenga un marco de referencia común puede acelerar el proceso de aprendizaje, ya que sabrá de dónde viene.