Bem, o primeiro passo é simples, que é escolher uma linguagem de programação. Isso implica arranjar um compilador e, se necessário, um ambiente de trabalho para essa linguagem (IDE), que na maior parte das vezes pode ser o WordPad.
Depois, a forma mais fácil de aprender é arranjar um tutorial/livro com código e ir testando o código e modificando, até perceberes realmente o que faz.
Quanto a IPs, eu diria que se programares até determinado nível, depois podes começar a dar-te com Sockets de comunicação e é nessa altura que irás começar a perceber realmente como funciona o TCP/IP (pelo menos deves tentar perceber).