I would classify network programming as intermediate to advanced, not necessarily because its hard, but because there are a lot of things you need to account for when writing good/stable net code. Its the kind of thing that you should probably only attempt if you already have a good grasp on programming already.
There's the basic building blocks, establishing connections over UDP/TCP, server/hosts, sending/receiving data, etc. which I would recommend learning first. Then moving on to more complex things like ensuring connections remain synchronized, dealing with dropped connections, lag/timeouts, etc. The specific type of network model you use, stuff like asynchronous lock-step and such, may largely depend on the kind of game your making, be it turn based, RTS, or FPS.
edit: Oops, should probably include security design as well. Remember: Never Trust the Client.
Depending you can either go with a centralized server run by yourself, or just stick to LAN and have people use something like Hamachi for internet play. And yeah, I've found the documentation on such things to be a bit on the convoluted/dry side.
-
BrushTone v1.3.3: Accessible Paint Tool
-
AudiMesh3D v1.0.0: Accessible 3D Model Viewer