- Pulse on the Industry and the User
It's impossible to know where web development will go in 5 years, but those who follow standards bodies or at least read tech blogs have a much better understanding of upcoming changes and growing trends.
It's not enough to follow the industry. Web developers must also understand their users and how they use the product. Analytics tools like StatCounter and Google Analytics are my favorites for gathering basic metrics of user interactions. A web developer should know if a third of the traffic is from a mobile device or that visitors are from Spanish-speaking countries. Maybe it's time to think about optimizing for mobile and internationalization.
I list this as the number one skill because being proficient here will trickle down and facilitate the other skills.
Things are changing and a lot has already changed. HTML 5, CSS 3, ECMAScript 5, and so on. If you can see these things coming, you will be able to adjust your priorities.
Developers must have an understanding of the state of the browser market and to some extent even the OS market. Did you know users of Windows XP are unable to upgrade to IE 9? Want to guess what the most popular operating system is? (hint: it's XP). Knowing this, do you think it's a good idea to drop support of IE 8, even though 9 is out? Maybe for your user base, that could be a good idea. But my point is that you should know where all of the pieces are on the board before you make your move.
- Programming Competency
All web developers must be able to test their code in multiple browsers. It's easy to test for our own personal browser of choice and ignore the rest, but the web is about diversity and the browser landscape is very diverse.
If you are going to write code, you must be prepared to make sure that it works.
Developers must be able to write code that is flexible enough to be used in different ways. Search engines and screen readers for the blind are two examples of machines interpreting your code. Sites that are heavy with Flash or foreground images for UI tend to struggle here.
Accessibility at it's core is really about usability. Can the user use your product? Web developers must know about any obstacles between the user and the product to better design it. Is the product usable on small screens like mobile devices or even older monitors? Do users know to click on a particular button to continue to the next page or is the page difficult to understand?
Know your user, set limits to what you will and will not support, implement a cross-compatible solution, and test thoroughly.
I leave security for last, but really it's a top priority. Every web developer must understand how malicious people can use their product to attack the site or other even other users.
If the web developer has skill #1, they should be familiar with the security concerns of the industry and common defenses.
One non-skill that I think deserves recognition on this list is motivation. Web developers should be passionate about what they do and never stop learning more. Read those blogs, pick up a few higher-level books, and go to the networking events like conferences and local meetups. Strive to learn more, improve skills, and educate others.