Personalmente, me encanta usar libros; el aprendizaje siempre es muy rápido ya que la información está muy estructurada. Sin embargo, siempre es bueno aprender de muchas fuentes diferentes, por lo que definitivamente también recomiendo ver videos sobre desarrollo web (por ejemplo, Lynda, Treehouse, http://egghead.io ) y, si tienes la oportunidad, ir a reuniones o participar cursos de capacitación para personas en su área.
Para cualquier cosa, te recomiendo que aprendas Git, si aún no lo sabes. Le permite no solo colaborar con otros desarrolladores, sino también controlar diferentes versiones de su código, experimentar con sucursales y contribuir a proyectos de código abierto. Github o Bitbucket son buenos lugares para comenzar si está buscando lugares para colocar su repositorio. También recomiendo probar la unidad de prueba para cualquier idioma que esté usando (por ejemplo, Jasmine para Javascript, PHPUnit para PHP).
Si ya conoce PHP, definitivamente debe ingresar a MySQL (recomiendo videos Lynda, o Beginning PHP and MySQL de W. Jason Gilmore). Luego, una vez que tenga una sólida comprensión de eso, depende de en qué desee concentrarse más; ¿back-end como trabajar con PHP, más como administración de bases de datos o más desarrollo web front-end / full-stack?
Si es back-end (o si solo quieres ser un maestro de PHP), recomendaría PHP Objects, Patterns, and Practice de Matt Zandstra para comprender mejor los patrones de OOP en PHP. ¡También es una buena idea aprender más sobre la configuración de Apache y cómo usar los archivos .htaccess! Definitivamente recomiendo configurar su propio servidor (uno al que tenga acceso SSH) para practicar también. (Ah, y es una buena idea aprender cómo funcionan los certificados SSH y SSL también).
Es una buena idea consultar algunos marcos MVC (Modelo, Vista, Controlador), que aceleran considerablemente su flujo de trabajo. Si recién está comenzando, definitivamente recomiendo CodeIgniter, aunque Laravel, Zend y Symfony también son muy populares. CodeIgniter es, en mi opinión, más fácil de comenzar, sin embargo, y la documentación también es muy fácil de revisar. Además, si es algo que le interesa, también puede acceder a un CMS (sistema de gestión de contenido) como WordPress, Drupal, Magneto, etc.
Bases de datos! La optimización de la base de datos es un problema, y definitivamente es algo que, personalmente, necesito repasar más. Hay una variedad de sistemas de bases de datos diferentes: relacionales (por ejemplo, MySQL) y NoSQL (por ejemplo, MongoDB) son solo algunos. También hay lo que se conoce como tiendas de valores clave y así sucesivamente. El tipo de sistema de base de datos que usa realmente depende del tipo de datos que necesita almacenar y sus circunstancias particulares. Si es MySQL, le recomiendo consultar MySQL de alto rendimiento de Baron Schwartz.
Además, cuando llegue a las bases de datos, le recomiendo que aprenda sobre el almacenamiento en caché. Aprenda sobre Varnish, Memcached y Redis … ¡Y pruebe / aprenda cómo trabajar con Amazon Web Services y CDN!
Si se inclina más hacia el desarrollo de pila completa (¡como yo!), Es una buena idea familiarizarse con más herramientas de desarrollo front-end como preprocesadores CSS (LESS, SASS), Bootstrap, Node / npm, Grunt o Gulp para agilice su flujo de trabajo (por ejemplo, ver carpetas o archivos por usted y compilar automáticamente MENOS archivos o minimizar / concatenar javascript) y, por supuesto, los marcos JavaScript (como Angular JS, EmberJS, etc.). También hay herramientas de plantillas HTML como Jade que a algunas personas les gusta usar. (Personalmente, realmente no uso Jade).
En términos de libros generales, me suelen gustar las referencias de bolsillo de O’Reilly / guías de bolsillo para diferentes idiomas (por ejemplo, JQuery, Javascript, Python …) ya que no solo son una referencia rápida, sino un buen repaso cuando lo necesita (¡y son pequeños, agradables y portátiles!). Los libros de cocina (p. Ej., O’Reilly MySQL Cookbook, PHP Cookbook, Web Site cookbook) también pueden ser bastante perspicaces y enseñarle nuevos trucos. Sin embargo, personalmente, tengo ganas de salir y tomar clases de capacitación, asistir a reuniones o simplemente hablar con otros programadores es lo que te ayuda a mejorar más rápido. Y, por supuesto, ¡codificación!