I guess I'm 'Over' now. I can't really point you to a good book. There are so many resources online that I wouldn't bother with a book that is very likely outdated as soon as it hits the shelf. Start with tutorials and work up from there. There are TONS of sites dedicated to learning the languages now.

I can't speak to how long it would take you to be 'employable'. How fast do you learn? What can you carry over from other languages? Building webapps is different from desktop programming. There are no platform specific APIs. You learn the language, setup an environment, and go. Vagrant is your friend. You can download and run a VM locally that can be setup to run almost anything you want in terms of OS and technology installed on it.

Honestly it doesn't matter that much which book or tutorial you use. You're going to remember how to program and use what you know to solve problems, which is how you get back into the swing of things. If you learn the latest then you'll have a little bit of a leg up if you actually start working and doing it for real (assuming you end up in a job where you need to write C++). And if you're using a 15 year old book it might be harder to get tools.

But again, those are fairly minor things so you're not going to ruin anything by sticking to the really old stuff.

If you're going to learn C++, make sure your learning at least C++11 spec, if not C++14. A lot has changed since the last time you used it, especially with memory handling. Look at std::shared_ptr and std::unique_ptr along with r-value references (ie., MyObject&& foo) and move semantics. The language now has explicit notions of memory ownership which really improve the usage and make memory leaks and invalid dereferences less likely.

But to be honest, C++ is a systems language used where performance matters (games, operating systems, database engines, etc...). If you want to work in one of those areas, you'll probably need some formal training. I don't think working through a book or tutorials will be enough to land you an interview.

Web and app development seems to be more accessible. My brother-in-law did a 3 month crash course on web development (I think it was Ruby on Rails or something) and managed to transition from a mechanical engineer background to a web developer position. He had no previous programming experience, but is a "techy" kind of guy with a lot of motivation. The technology he uses has completely changed (as it does every 6 months in that industry) but he's been able to keep up with it and be successful, mostly from self learning.

Java would be good for enterprise gigs, but honestly I think Kotlin is going to be the next thing in the JVM world since IntelliJ made it and Android has adopted it.Go is big with devops and distributed programming stuffElixir if you want to be esoteric, but I think it's got potentialPython for general purpose stuff, but mainly the jobs will be web stuff using Django, or data analysisJavaScript rules the world right now with Node and web site stuff

You can do games in the browser with JavaScript now days with things like phaser.io

With web assembly coming around the corner that's going to open up a lot of languages for web coding soon.

And that's just a small subset of stuff. Not even getting into things like Clojure, Rust, R, or Haskell.

And then there's the infrastructure side with Docker, Kubernetes, Unikernels, AWS, GCP, blah blah blah, the list goes on.

Hey Jawib and Perception, you two have PhDs, right? Quit your jobs and come work for me and help me make my game. I can't pay you in $$, but I can pay you in equity. Plus it'll be a good opportunity to get some experience.