With all due respect, the question was about more modern times. I feel like this was better advice in the 90s and early 2000s. It's not like knowing those things is bad, I just don't know how applicable it is now.
Today the scope is far too big and there are far too many different hacking disciplines now. The advice above was probably more suited to a time when people used to be granted shell access to university computers. We live in a world where people don't even run web applications in on servers anymore, rather containers hosted in cloud platforms.
That said, you really should develop a sound understanding of how computers work at a low level, it doesn't have to be perfect; but it helps you understand how even modern systems can be flawed (under all the shiny cloud marketing, they're computers after all). I would start with doing a course like: https://www.nand2tetris.org/.
Once that foundational knowledge is understood, learn how computer networks work (IP, TCP, UDP), network stacks and then higher level protocols like HTTP, HTTP(s) and other layer 7 protocols. Learning about databases is good too, basic SQL skills are useful.
By this stage you will probably bee having too much fun building new things using all the knowledge you've acquired rather than breaking other peoples stuff; Then again I guess it can still be fun to experiment with that too.
Understanding permissions leads to understanding of privilege escalation, interprocess communication, /proc, logging, avoiding logging, understanding /etc... Yep, that's where I would start.
Today the scope is far too big and there are far too many different hacking disciplines now. The advice above was probably more suited to a time when people used to be granted shell access to university computers. We live in a world where people don't even run web applications in on servers anymore, rather containers hosted in cloud platforms.
That said, you really should develop a sound understanding of how computers work at a low level, it doesn't have to be perfect; but it helps you understand how even modern systems can be flawed (under all the shiny cloud marketing, they're computers after all). I would start with doing a course like: https://www.nand2tetris.org/.
Once that foundational knowledge is understood, learn how computer networks work (IP, TCP, UDP), network stacks and then higher level protocols like HTTP, HTTP(s) and other layer 7 protocols. Learning about databases is good too, basic SQL skills are useful.
By this stage you will probably bee having too much fun building new things using all the knowledge you've acquired rather than breaking other peoples stuff; Then again I guess it can still be fun to experiment with that too.