Beej's Guide to Network programming (http://beej.us/guide/bgnet/) is also pretty good. It was effectively used as the textbook in my networking class. (There was also an actual textbook, but almost nobody bothered to read it.)
The alternatives are mostly necessary when you're dealing with large numbers of connections (thousands), which most people aren't.
Of course there's also the slight problem that select()'s interface with the file descriptor packing macros and the unusual requirement to figure out which file descriptor is the largest numerically that might push people to the alternatives. That is also a valid reason IMHO.
More reading: http://www.kegel.com/c10k.html
Jens Gustedt has also written a rather nice ebook on how to program in modern C: https://gustedt.wordpress.com/2016/11/25/modern-c-is-now-fea...
Used it to implement ICMP echo heh.
But for a guide on programming sockets, which is all it sought to do, yeah it's excellent.