I've been doing doing a wide variety of basic development work but I still feel like I don't know anything. I've tried to find courses or other material that is more than explaining what data types are or going through if statements/loops etc. There are tons of these courses out there which is great but they aren't what I'm looking for.
When attempting to find "intermediate" or "advanced" courses it's often way beyond what I know and I feel like I'm missing a bunch of knowledge. I wish I could jump in and learn things about ML as that seems interesting.
I've built a few applications and notably one larger one. (Most of these are never built without looking things up and copying and pasting problems I run into from Stack Overflow).
Routinely I spend a bunch of time doing things like code fights and hacker rank which is fun but also gives a false sense of satisfaction. "Neat, I can code these weird loops that check the index and solves whatever the problem is." It's akin to doing well on a math test because you know how to solve those kinds of problems because you've done the chapter review.
Currently I maintain and build pretty basic websites and focus on performance and semantics. I've had to write some simple js to interact with APIs for mail and forms to feed into systems. Nothing complex so this doesn't really grow me. Most of the time it's adding more html/css. It's updating the website and making sure it's up to snuff.
Other routes I've attempted to take is latching onto a framework to build something but most of those guides you spend the majority of the time setting up it's environment with a million dependencies and then hours later you have a to do app. Again, zero knowledge gained.
Is there a book out there or even a class on coursera (or other something similar) that skips all the basic syntax and gets right into solving problems or how to approach them but also holds your hand really close?
https://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena...
https://www.amazon.com/Introduction-Algorithms-3rd-MIT-Press...
As a second suggestion, I'd recommend to learn a language somewhat different from JavaScript-like (or C-like) languages, something that challenges your mind to think a little differently and understand and create higher order abstractions. There are many choices, but to avoid confusion and being my favourite, I'll point to one: read the "Structure and Interpretation of Computer Programs" by Abelson and Sussman. It teaches Scheme in a gentle and inspiring way but at the same time it teaches how to become a better programmer:
https://mitpress.mit.edu/sicp/
Or if you want made of dead trees:
https://www.amazon.com/Structure-Interpretation-Computer-Pro...
I can't recommend it enough. If you read it, do the exercises, don't limit to read through them.
Maybe it's even better if you start with this, and THEN read the books on algorithms and data structures.
Enjoy your journey!