I have been a server-side programmer for most of my career and have only recently started spending more time on web development. I am amazed at the number of things I need to master in order to write a decent web application. Just to list down a few tools/technologies I need to learn,
Server side programming language (Java/JSP, ASP, PHP, Ruby or something else)
A decent web framework (for any medium to big size application).
HTML & CSS
At least a basic knowledge of web design - layouts, colors, fonts etc.
A good understanding of web security.
A good understanding of Performance/scalability issues.
Testing, browser compatibility issues etc.
The list goes on.
So, my question to seasoned web developers is - How do you guys manage to learn and keep yourself updated on so many things? While developing a web application, how do you handle the complexities involved in these areas and yet manage to write an application that is well designed, user friendly, secure, performant and scalable.
As a web developer, does one have to be a jack of all trades or should one specialize in one or two areas and leave the rest to other members of the team ?