What should every programmer know about web development?
I am currently a Junior PHP developer and I really LOVE it, I love internet from first time I got into it, I always loved smartly-created websites, always was wondering how it all works, always admired websites with good design and rich functionality, and finally I am creating web-sites on my own and it feels really great.
My goals are to become expert web-developer (aiming for creating websites for small and medium business, not enterprise-sized systems), to have a great full-time job, to do freelance and to create my own startup in future.
General question: What do I do to be an expert, professional and demanded web-programmer?
More concrete questions:
1). How do I choose languages and technologies needed? I know that every web-developer must know HTML+CSS+JS+AJAX+JQuery, I am doing some design as well because I like it and I need it for the freelance as well. But what about backend languages? Currently I picked PHP because it's the most demanded language in my area and most of the web using it, but what would happen in the future? Say, in 3 years, I am good at PHP and PHP frameworks by then, but what if some other languages get more popular? Do I need to switch to them? I know that good programmer is not about languages and frameworks but about ability to learn and to aim the goals, but still I think that learning frameworks for some languages can take quite some time. Am I wrong?
2). In general, what are basic guidelines to be expert web-developer? What are most important things I should focus on?