Talk about selling yourself short. You've been a web developer for 15 years. I would think you've progressed a little further than entry-level.
Talk about selling yourself short. You've been a web developer for 15 years. I would think you've progressed a little further than entry-level.
In the world of web development, the developer who knows just enough to skate by without a proper understanding of algorithms and design patterns seems to be the rule rather than the exception.
Kudos to him for acknowledging it and trying to do something about it.
That's a bad strategy for himself.
He shouldn't acknowledge it and he should go to work for one company that do not care about that.
You're not wrong that some developers will simply skate by, but is the developer wrong to simply skate by? Specially as a web developer, I think too many people think that the barrier of entry is high, and it really isn't.
The majority of technology I know how to work with I have picked up out of necessity to make something work (or work better). Even database internals I know little about how they work, because I don't think there's an inherent need. I've worked with many database engines (usually whatever the business wants to use), and I just know enough about DDL/DML and indexing to make things work (note that I'm talking about SQL/noSQL DBs here).
I re-invent the wheel constantly in different languages for pet projects that will never even see GitHub. I act out some of the more modern tutorials to get me more familiar with how other people code. But at no point have I yet had to stop and say "this damn bubble sort isn't fast enough!"
I don't even use an ORM, but I think the majority of web developers don't know SQL and just use an ORM, and I think that's still OK, because they haven't hit the point where they need to use raw SQL to address a performance issue. But when they do, wouldn't they be as likely as I have been to look up documentation, StackOverflow and the rest of the web to get what they need done? And isn't that enough? If the guy sitting next to me knows how to implement a performant/redundant/concurrent database solution from scratch, he shouldn't be sitting next to me in the first place, he should be working on improving database software! And I'll use his tool when he ships it, but that still doesn't make me a caveman.
It's a life choice, neither right or wrong. However, if a person is no more skilled than the lowest common denominator, that person is effectively an easily replaceable commodity and commodities, as a rule, do not command a high price. The rise of coding bootcamps should really be a worrying sign to those who are just skating by.
In your estimation, what are the most important algorithms and design patterns to know for web development?
On the design pattern side, MVVM and MVC are integral to modern web development. Inversion of control and delegates are used in many JavaScript frameworks in server side frameworks like Node and .NET
Knowing about different search algorithms comes in handy, as does knowledge of data structures and encoding. With understanding basic CS fundamentals, you can better understand how the framework is doing things under the hood and make informed decisions with how to proceed with a given implementation. It also really helps with troubleshooting when things go wrong.
I would argue that in 2016 to be a web developer one should either be capable of (1) full stack or (2) building thick client type applications to run in the browser. I would argue that the simple build a website type jobs are dying out and being replaced by Wordpress installers.