Rob Conery's publishing site selling programming books and courses, including The Imposter's Handbook and A Curious Moon on PostgreSQL.
Commenters repeatedly recommend The Imposter's Handbook for self-taught programmers and A Curious Moon as an engaging intro to Postgres.
>I see a pattern and I feel the older generation is way more capable and knowledgeable when it comes to Computer Science in general. I am pretty sure a lot of people are or were in the same boat as me.
The older generation are in this place because back then none of the technologies you listed existed and so they had to know the more low level things.
A book that might help some of your knowledge gaps (at least directionally) is The Imposter's Handbook[1] by Rob Conery.
If you're specifically aiming to get away from CRUD take a look at the various Domain Driven Design books by Eric Evans[2] and others. This is the opposite direction to your ask though (more high level than low level).
If you want to go deeper in Java, read Effective Java[3] and Java Concurrency in Practice (JCIP)[4]
Lastly, if you want to experience the reasons why some of that early comp-sci stuff happened the way it did, playing with expensive hardware is the least effective way to find understanding of constraints. Instead consider grabbing devices with significant limitations like an Arduino, ESP32, or similar (I'm partial to the Wio Terminal[5] and M5Stack[6] as interesting easy to get started devices, but others would suggest various Arduinos or Raspberry Pi devices). Realistically you're going to learn much more by coming up with a self-challenging project and completing it than just by learning it for the sake of learning.
[1]: https://bigmachine.io/products/the-imposters-handbook/
[2]:…
I share the author's optimism. I work for a start-up, and we just released a mobile app that uses Elixir on the back end. I'm the architect on the project, and this was my first time using Elixir professionally. I've been blown away by the speed and stability of the product, the ease of hot deployments, and the intuitiveness of Elixir's syntax. Behaviors are amazing, and for the first time in my career, concurrency isn't a huge pain in the ass. The codebase is extremely easy to maintain and organize, and Elixir just takes baby sips at our cluster's resources. Elixir has far exceeded my expectations, and has provided me with one of the smoothest product launches of my 27-year career. I cannot speak highly enough about it.
Regarding learning Elixir, I thought LearnElixir.tv was great, but wasn't nearly as impressed by LearnPhoenix.tv. The latter is good, and definitely worth the money, but it didn't feel like it went into nearly the depth and breadth that LearnElixir.tv did. I also recommend the books "The Little Elixir & OTP Guidebook," by Benjamin Tan Wei Han, and "Programming Elixir," by Dave Thomas. Elixir School (http://elixirschool.com) is great online resource, and the Hex docs (https://hexdocs.pm) are clear and well organized. Finally, "Take Off with Elixir" (https://bigmachine.io/products/take-off-with-elixir/) is a great video/book offering.
I'm having a lot of fun with it, can't wait for winter vacation to build stuff :)
There's a lot of niceties you get out of the box (mix is pretty nice and the testing framework is included, the REPL is good, love that they improve the error messages and consider an unclear error message a bug). I'm already used to pattern matching from Prolog so that's a great plus (I wanted to use Erlang initially but Elixir has won me over). I also feel like I'm thinking in a functional way much clearer (I'm using the PragProg book and this video tutorial https://bigmachine.io/products/take-off-with-elixir/ which both stress it, both resources highly recommended).
Once I start dipping into OTP I'm sure I won't be looking back anytime soon. It's been a while since I was this excited about a language.
Phoenix (web framework) is also pretty awesome. The abstraction of chaining a request through a bunch of functions to generate a response is very fitting. Plugs make sense.
tl;dr: Try it!
What three books? (Especially interested in data transfer protocols - I got a little bit into it for game development, but never found anything resembling a good source).
I learned a lot of these things from taking Harvard's CS50 online, reading the blog posts I linked (and doing problems), and I would imagine this book (https://bigmachine.io/products/the-imposters-handbook/) would help out - a friend recommended it, but I never got around to it.
https://www.amazon.com/Code-Language-Computer-Hardware-Software/dp/0735611319
^Covers logic gates and the basics of how a computer is built to an incredible degree, but it's VERY time intensive. Still, I really recommend it.
A colleague of mine read and thoroughly recommended 'The Imposter's Handbook' for devs in this situation - it's a CS overview for developers without CS degrees. Data structures, Big O etc.
I don't think going to university after 15 years of industry experience will reap any benefits. Something like this could just plug the gaps in your knowledge for less than a hundred dollars and a fraction of the time.
https://bigmachine.io/products/the-imposters-handbook/
Posting this since I don't see it mentioned yet.
Scott Hanselman and Rob Conery created the Imposters Handbook. I believe both of these guys are self-taught, and they are incredibly good at what they do.
They put it together precisely for self taught developers with no formal CS background.
https://bigmachine.io/products/the-imposters-handbook/
https://bigmachine.io/products/the-imposters-handbook-season-2/