You'll likely never have to implement a linked list in C in the real world…Any company that puts a bigger emphasis on linked lists and sorting algorithms in the hiring process than on OS and networking fundamentals is a good sign to start running away.Not true.
Networking and operating system fundamentals are important, no doubt. But there's also ample documentation, and it's relatively easy to find practical examples about how to work with (say) multithreaded code.
But you'll be better at exploiting your knowledge in this area if you're familiar with the underlying tools and algorithms. For example, how are you going to write good multithreaded code unless you understand semaphores and mutexes? How are you going to parse and search data rom your network service, unless you know when it's appropriate to store it in a doubly-linked list, or maybe a skip list…
I've known programmers to do preposterously inefficient things because they don't understand the underlying constraints and rules of the system they are working with. In particular, developers I've worked with who don't have a formal CompSci background tend to be more likely to implement complex ad-hoc solutions to problems where there are well-understood general classes of implementation (sometimes included in whatever stdlib or framework they are using!) which will solve the problem for them.
Understanding the principles underneath it all is something that all great programmers I've known share in common. That doesn't mean that it's impossible to be a good programmer without a CompSci degree, and it doesn't mean that software engineering is any less important to an actual deliverable product. But writing it off in the way you do isn't really justified.