Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple APILearn More
In a career as a web developer, advanced knowledge of data structures and algorithms is largely useless (there's libraries for that).
Focus on learning web tools and being productive with them instead...
For example, if you understand the ins and outs of Webpack then you're already well on your way to becoming the smartest developer alive
What @unsignedint said!
I know most of the (simple) data types and algorithms as well from college. I use them sometimes, but most of the time they are already written for you. A while back I had to implement Bin Packing into a custom e-commerce solution. I think that was the last I really wrote an algorithm.
Knowing the most basic data structures an algorithms can really help sometimes. Applying them in the right situation is far more important than writing them. I think the last time I wrote one of the basic structures like LinkedList was when I was still in college.
C0D4671302yAs a webdev you will find very little use cases to actually implement an algo.
Most webdev is about frontend and a supportive backend.
Unless you jump up to a corporate / enterprise environment you shouldn't be to worried, even at large e-commerce / CRM levels it's still rare to stumble upon the need... or I've been seriously lucky for all these years...
Some interviews may hit you with them, but then their more concerned on you passing a test they probably didn't create for you.
A lot of the time your tech test will be a real world scenario to build out - in my experience anyway, and as such is what I do to.
I don't need to know you can put an algo in place, I need to know you can actually do the work.
But that's not to say don't learn the algos, you just might find a day in your life you will need them.
@C0D4 I think I might be lucky as well, although most of the time I'm more or less thinking about a proper OO design than about data structures.
Sadly, PHP is missing generics. If you validate your design against SOLID principles, generics are sometimes an unmissable tool in a language.
how I would love to start some of my projects again with good structures in place.
Sadly I've inherited a lot of bad choices and rushed projects with a lack of foresight.
No one seems to care they are fragile as hell, as long as they keep working with what ever requirements get thrown at them, this is where I try to refactor things where I can without the change list blowing out.
Baby steps 😢
Doing java and php work, I would love for generics to come across. But for now I'll settle for the return types and comment blocks
@C0D4 Yeah, I know the feeling. It's not like everything is perfect here (look at my latest rant, it should pretty much explain it).
But 2 or 3 years back we took some time to setup a private packagist for composer packages with some libraries we have written for ourselves (ranging from coding standards to libraries for scheduling and running async jobs). For those packages we really validated every single class and method signature against SOLID. Since then we have been using those packages in multiple projects without any problems at all.
Offtopic: But again, generics would have made things soo much easier. Image you have JobHanders which can handle specific jobs types only. The handle method on the JobHandler accepts a JobInterface, but you still have to check if it is actually a Job which this handler can run. Generic would have made the design of the package so much more elegant.
@codefreak Run like your life depends on it!! Before you know it you will be stuck in a dead end job which is holding you back.
"...but it works, let keep it like this" is my number one reason (and almost only reason) to get me mad at a coworker.