You'll probably be surprised at how much better at everyday programming you'll seem.
You'll probably be surprised at how much better at everyday programming you'll seem.
And disregard everyone who says "I don't actually need this in my job". They may have just forgotten how trivial it is for them to implement a binary search instead of a linear scan at the proper place with a second thought. Or they really don't... and have code out there that does in 15 seconds (or much worse) what could have been happening in the fraction of a millisecond.
But, like most "mathy" subjects, this is not something that you usually pick up on the go. At the very least you need a solid foundation, and that only comes through serious studying. Taking a textbook, opening it at the first page, and starting to work through it is one of the better ways to achieve that.
"Mathematics, you see, is not a spectator sport." - George Pólya
And a lot of these are graduates of their state’s flagship public university. I can only assume the schools are more than willing to just let students go through the motions. Every new grad filling their electives with AI/ML classes probably doesn’t help either
That said, if you're not wanting to do an actual course, I'd recommend Sedgewick's book. The trick when reading an algorithms book if you're not presently at its mathematical level is to skip all of the math you can't currently understand. You'll eventually pick up on it, but in the meantime, you'll also get a lot from just reimplementing the algorithms from the book in whatever your favorite language is, and doing whatever exercises you're capable of handling with a bit of effort.
This is the approach I’m taking. Too soon to say if it’s working out yet. I’m thinking long term rather than getting a job offer at X company in Y months. There might be other books that work better for you than the one I recommended. I’m also in my 30s and have a job I’m more or less satisfied with currently.
I recommend coming up with templates for the finite amount of problems.
Recursive Graph/Tree Linked List Array
The array problems can be the most unique, which means a template isn’t always possible.
Practice timing yourself. This is harder than it looks.
Stop problems that take you too long or they’ll wear you out. Come back and solve them again.