I fundamentally disagree with this. New things for the web appear all the time, undeniably, but their appearance doesn't invalidate your expertise with older things, especially given that the new things are rarely either entirely novel or a complete replacement for the older things.
Thanks for the feedback. I do see your point as well; even though web languages and design techniques are constantly changing, our end goal is usually the same. However, I still run into too many web "experts" who think they've learned it all and, in my opinion, that's an outlook that will quickly make you obsolete on the web.
The author's final point is quite valid - to not become complacent about your expertise.
But the idea that expertise does not exist is flawed. I'm old enough to have been working online since before "the web", and while there are rapid changes in the specific toolkits, the core technology moves slower.
Sure, the hosting is now virtual not physical. SSL exists. Websockets exist. Javascript is its own beast now. The layers of caching and load balancing can be scary to us plain old developers. But the core HTTP request/response cycle, and the rendering and running of HTML and scripts has not had a fundamental paradigm change. DNS still drives end user connectivity, and the same old 7 layer network model still applies.
So yes, some things change, but don't throw the rest of it out just because you are picking up a new language or three. The picture is bigger than that.
Excellent comment, I fully agree with what you're saying. My intent was never to suggest "throwing out" previous knowledge but to instead recognize there's always more to learn and to keep building on that. Once you stop learning, the web quickly surpasses you.
I never stopped, and sometimes feel a little overwhelmed... I try to stay abreast of what's going on, even outside of what I'm working with. At least enough to have knowledge of what's on the horizon or in my peripheral...
That said, even with what I'm actively tracking, mostly JavaScript heavy web applications, Node/iojs, ES6/ES2015, ES7/ESNext, BabelJS, React, Riot, Mercury, Angular, etc.; It's a lot to keep up with. Everything gets to be pretty significant very quickly. That doesn't even include advances in .Net (ASP.Net/MVC, core-clr, etc), Java, Python, Go, the list goes on. It's impossible to know every tool. But it is possible to know and understand the concepts behind web applications, which aren't changing quite as quickly. I understand how SPDY/HTTP2/WebSockets and even bits of WebRTC work. If you understand how the pieces fit together, and how to bend them to your will...
If you understand how web applications work, you might be an expert.
If you aren't afraid to look at and consider new tools, you might be an expert.
If you know when to be pragmatic about your software design, you might be an expert.
If you don't loosely apply a software design pattern because it kind of fits, you might be an expert.
There's no absolute, it's just a matter of knowing more than most, and being able to apply it in practice.
This is huge in my opinion. I've noticed the market for labor in my area has changed quite a bit just over the past year and this is primarily about what framework employers expect you to know or be familiar with. This could be extremely frustrating for many people.
An expert is not someone that knows everything, but someone that knows more than you... And enough to be resourceful, if we are talking about profesional work.
I'm pretty sure than the author knows way more about web development than his customers, so he's the expert then...
There are lots of "local experts" that do an amazing work pleasing their customers without having to know absolutely everything.
Yeah, I think missing that expertise is a spectrum and not a binary is a big mistake. There are plenty of sub-par programmers who would never survive in a high-skill environment, but who consistently satisfy their clients. This is an important reality to acknowledge and understand.
I've been doing webdevelopment for almost 15 years. And I think little has changed. Yes now we have transparency, animation, dropshadows, simple Ajax, and so on. But in the end we are still dealing with the same simple request and building webapps is still difficult.
I think his view of blacksmithing in history is pretty narrow and was constructive to fit his broader point. I'd assume the most respected blacksmiths were constantly testing different metals, weapon and armor types and shapes, smelting techniques, etc.
Fair enough and thanks for the comment. The point I was trying to illustrate was the pace at which technologies evolve and few are quicker than the web industry. I wholeheartedly agree that the best blacksmiths were constantly improving but it was relatively slow compared to how quickly the web changes (i.e. they didn't have new tools/materials to learn every single day).
What about doctors and lawyers? Their professions change day-to-day, and often at the whim of political leaders. Something as broad as "law" you can't be an expert in, but you can be an expert in patent law or family law or whatever.
That's an interesting point and I suppose if we broke it down and asked can you be an expert in just HTML or CSS, the answer would likely be yes. However, if that's all you knew, you'd have a hard time being hired. The message I was trying to convey is to have a web career, you need to be constantly learn new things all the time.
One person I'd definitely consider an expert is John Lindquist (https://egghead.io/ and https://github.com/johnlindquist) - not just because he's always up to date but also because he's got some keen insights about many of those modern technologies (especially Angular). But as far as I can see tracking them is basically a full-time job, even for him.
There's a fundamental difference between knowing the language/framework of the week, and being an expert in something. Expertise does not necessarily imply broad-stroke coverage of available tools. It means you use the tools you have to their maximum potential, even finding novel uses for them.
I think the only way to be close to an expert is to have total control over the web development process from start to finish, and re-use the same technologies that you have experience with. For example, if you've made 100 web apps in PHP and native JS, you will be much more productive and make higher quality software than someone who keeps jumping to new languages and frameworks.
Still, JS and CSS can be combined in novel ways to provide new experiences or new ways of doing old things. Plus there are new capabilities coming to JS all the time, things that literally weren't possible to do before. And smartphones and tablets are still somewhat new.
So, OK, you can be an expert in building a website for desktop browsers. But that's about it.