AIRBNB...
once you understand the concepts (loops, functions, syntax, etc.), the best way to learn is actually build something. Most people do a program that spits out fibonacci sequence or a calculator or a simple webpage to take user input.
This is what they teach you in the first couple of years in college; the basics. Then you get into the more complex stuff. Some college programs (the good ones) ask you to build an application from scratch. From scratch is pretty dumb when there are many frameworks out there to be used. I would suggest trying to build an app with django (https://docs.djangoproject.com/en/1.9/) and also look into nodejs (https://nodejs.org/en/). Of course, along the way you will have to learn some html, css, and jquery but it comes with time. That's the biggest thing. You have to invest the time into figuring it out. If you get stuck trying to figure out how to logically do something, ask questions but in the real world you have to be able to google and find the answers. This doesn't mean copy/paste code. This means look at examples and figure out how they did it and maybe improve it.
Based on those criteria, I'd say you're looking for a book like Infinite Country by Patricia Engel.
It's a relatively short read, but it packs real intensity.