From my experience what keeps a lot of people from learning or rather frustrates them, especially in tech, is the fact that the more you know (starting to get the big picture) you begin to realize how much stuff you actually don't understand or know about.
Do you need to know how Ethernet works for making a website? Probably not. Do you need to know how HTTP works? Most likely, at least if you start to fiddle with REST and APIs. Do you need to know how TCP works to understand HTTP? Well, some might argue. Do you need to know how IP or networking in general works? Well, if you want to configure your own web server you probably should know the basics. The rabbit hole goes on ... and most people just give up. Eventually someone will end up at epoll/select and will dive into native ASM of some high-perf Intel NICs while toying around with jQuery, you never know ... Yes, I exaggerated a bit, but you get the point.
Do you need to know how Ethernet works for making a website? Probably not. Do you need to know how HTTP works? Most likely, at least if you start to fiddle with REST and APIs. Do you need to know how TCP works to understand HTTP? Well, some might argue. Do you need to know how IP or networking in general works? Well, if you want to configure your own web server you probably should know the basics. The rabbit hole goes on ... and most people just give up. Eventually someone will end up at epoll/select and will dive into native ASM of some high-perf Intel NICs while toying around with jQuery, you never know ... Yes, I exaggerated a bit, but you get the point.