What kind of hacking do you want to do? Hardware, reverse engineering, Red Teaming, application analysis.
All of those require similar but different skill sets. What you do for Red Teaming is slightly different to IoT hacking.
This is the community for all things hacking and cybersecurity, try keeping it legal. That said I don't take any responsibility for anything that happens/comes from this group but I will try being the best mod that I can to prevent anything from happening.
What kind of hacking do you want to do? Hardware, reverse engineering, Red Teaming, application analysis.
All of those require similar but different skill sets. What you do for Red Teaming is slightly different to IoT hacking.
I want to focus mainly on grey hat stuff. Based on that which hacking category should I choose and where can I find resource to learn them?
What you are likely look for is penetration testing or offensive security. I would use those as your search key phrase.
Find your niche, something you understand well and like at the same time. It might be few CVEs, few services, some interesting scheme from hacking forums. Take it, practice it in testing environment, evaluate it then hunt for real targets. When you start getting targets pwned you will feel good and it will give you motivation to proceed further. You can take something from "Top 10 exploits" google search query, most of them are simple and vulnerable machines can be found online
A basic grounding in computer science would be a good starting place.
Do you know the difference between the various processor architectures and operating systems? Do you know the difference between real time computers and interrupt based systems? Are you familiar with the seven layer network model and which layers the different services interact with the hardware and application software? Are you grounded in cryptography and the system of public and private keys, modulo operations, prime number factorisation?
This is assuming that you already understand coding and are proficient in at least one language. None of these skills and knowledge on their own are indispensable or completely necessary but these things are what computers are made of, how they communicate and how they are secured.
Where can I learn those things?
I'm probably in the same boat as you, I have zero formal CS education. The way I originally learned was various: by embarking on small projects, fixing broken computers so I could play games, reading books, watching videos. The key thing in learning any subject is to recognise that when you don't understand something it's usually because some foundational knowledge is missing. You cannot properly understand a computer file system before you grasp the concept of binary numbers, bits and bytes, for instance.
Lately I've been using Chatgpt. You can ask it to write code in any language. Ask it to solve a particular problem and then start dismantling the answer, step by step. When you don't understand the answer, ask it to elaborate. For your purposes, you could ask it to script a port scanner on your home network. This is key skill for any aspiring hacker and if you can get that working on your LAN, those principles can be adapted to WAN. Get a copy of the CIA vault 7 library, ask chatgpt to explain snippets of the code. I would imagine you have to preface your questions as coming from a 'white hat' perspective or it may balk.
tryhackme.com has some basic courses for free, the rest is behind a subscription.
I have the key to my room, but you notice that the key shape is the same as yours with some minor modifications, so you shave down your key slightly and use it to enter my room.
Or, you notice that the keyhole is large and hollow, so using a very long and thin metal stick, you poke the stick through and drag my jacket to the door, where you slide out my credit cards. You haven't broken in, but you have sensitive information on me by probing.
Or you put on a disguise and ask for the key to the room so we can check it to see if it’s been compromised by BaDAcToRs.
You shouldn't learn hacking, you should learn lots upon lots about what you want to hack and think how to make it do what you want it to i.e give you shell. I would start with networking. There's awesome book by Don Colton about it, and it's free.