What is the proper way to achieve that kind of skill?

I don't know that there's any one specific "proper" way, and as the old saying goes "many roads lead to Rome." But I do think the spirit of this old saw applies:

A fellow goes to New York to attend a concert, but gets lost. He spots another fellow who’s carrying a violin case. “Sir, can you tell me how to get to Carnegie Hall?” The musician smiles and says, “Practice, practice, practice.”

Are there any must read topics/subjects?

I think many people approach this from different directions, but you can pretty much always figure that it helps to get "close to the hardware" and understand things from first principles as much as possible, and then build your knowledge up from that base. So if you start from literally understanding how you make a logic gate from a transistor, and then up to how AND,OR,NAND,NOR,NOT etc. gates are used to implement digital logic, and up through some basics of how a CPU executes code, yadda yadda, you're probably on a good path. Then from the code level, understanding assembly language for at least one architecture and having at least some notion of how the assembly mnemonics map to the CPU ISA and what's going on at the hardware level. What are registers and how are they used, how is data shuffled around between different parts of memory, etc. From there you can build up to understanding different parts of the computing "stack" - the operating system kernel, standard library, memory models, etc.

All of that said, I don't claim that the above is the way, just a way. I'm sure there are people who use the title "hacker" who didn't do any of that. Again - "many roads".

The other thing I'll throw out there is that math comes into play at some levels depending on exactly where your interests take you. It can't hurt to pick up some basic number theory, boolean algebra, computability theory, etc. Some of the kinds of things that come up in the book Hackers Delight[1] could be of interest.

Another thought - if you haven't read Steven Levy's book Hackers: Heroes of the Computer Revolution[2] give that a read. It's not a super technical book, being more about the "spirit" or essence of what "hacking" and "hackerdom" are. But I would say that might be as valuable as the technical stuff in many ways.

Also, reading the various pg essays[3] and/or Paul's book Hackers and Painters[4] probably can't hurt either.

Beyond that, there's a whole laundry list of books and resources one might mention as seminal or defining works of "hackerdom". Things like the TCP/IP Illustrated books by Stephens, The C Programming Language by Kernighan and Ritchie, The Cathedral and the Bazaar by esr, the Internetworking with TCP/IP books by Comer, Advanced Programming in the UNIX Environment by Stephens, a lot of early LISP material by McCarthy and others, a lot of the "AI Series" papers from MIT's CSAIL lab, etc., etc. And that's not close to a comprehensive list, if such a thing could be said to exist. Just some examples of the kinds of things people who associate with hackerdom tend to get into.

Last thought - I would cite "curiosity" as the most important defining trait for becoming a "hacker". If you're never satisfied with your current level of knowledge, always want to probe and dig deeper, and understand more and more and more and more of how things work and why things are the way they are, then in my book you're pretty much a hacker. I'd say try to cultivate that insatiable desire to learn and just dive in and don't worry too much about the "proper" road.

[1]: https://www.amazon.com/Hackers-Delight-2nd-Henry-Warren/dp/0...

[2]: https://www.amazon.com/Hackers-Computer-Revolution-Steven-Le...

[3]: http://www.paulgraham.com/articles.html

[4]: https://www.amazon.com/Hackers-Painters-Big-Ideas-Computer/d...