I am specially abled learner. Not dumb, not smart, just specially abled. And I am really in a tricky situation.<p>I did my engineering(computers) few years ago. Now, I am working as a backend helpdesk. It's a position where you are everything that doesn't write code. lol.<p>I mainly deal with backend engineering (no coding, just debugging, example why slow, find out if there is network issues causing failures of distributed transactions etc). I work with linux, sql, nginx http web servers, docker, kubernetes etc...<p>Thus I've huge requirement to brush up my computer networking, web security, distributed systems, operating systems concepts.<p>- Whenever I re-read the textbooks that were taught to us in college, I learn nothing, because I know everything written there.<p>- Thus I figured out that best way to learn was to use tcpdump/tshark/wireshark and learn to read packets and read the books whenever confused.<p>- Then I figured out that if I learnt penetration testing and ethical hacking in depth, I can indirectly re-learn all the concepts of computer networking.<p>- The fact is ccna is too unnecessasry for my position and network+ is too basic.
- Another thing I figured out is reading books like system design, distributed systems are also helpful.<p>I know all this makes me look like a troll. But I'm serious about learning. Please tell me what should I do, how should I proceed?
It seems you feel that you learn by doing instead of reading, which is fair enough.<p>Let's take networking for example, there are two ways which you could learn by doing, a bottom up approach focusing on the foundational tech, or a top down approach. Each are valid and have pros and cons.<p>1) Bottom up. Pick a project in a language of choice like transferring text/audio/video over the network between two peers. Write it using TCP, figure out why that's a bad idea for live streaming, do it again in UDP. You'll have to learn how to program against socket interfaces and other fundamental network stuff.<p>2) Bottom up extreme edition: write the underlying TCP/IP stack also.<p>3) top down. Write a toy networking application using something that provides an abstraction over sockets like ZeroMQ. Then you turn your toy application into a behavioural test suite by swapping out the calls to zeroMQ with your own library which is API compatible. Your library passes when the toy application works again.<p>Then you go read the zeroMQ source to figure out all the concepts and edgecases that it's normalising for you that you didn't think to consider in your replacement. This means you still employ the fundamentals needed in the bottom-up approach to get things working, but after reading the source you're also mapping out things which were unknown unknowns to you so you have a better mental map of where you might have opportunity to learn more.
If you really want to learn about networking or want to improve your knowledge, I really recommend you to get into pentesting. You can learn from online platforms like tryhackme, where you have a lot of hands-on labs to learn about networking, AD, Linux, etc (even for begginers and advanced users). Also you have platforms like HackTheBox where you can practice your pentesting skills by hacking virtual machines prepared for that, simulating real scenarios. It's hard, but its fun and you learn a lot. You can use them to achieve the OSCP if you like.<p>If you are interested and want to know more about it just DM me, I'm a Pentester.<p>Hope it helps!