
Ask HN: How to start with network programming? - rochak
I want to know the best sequence of steps for learning network programming. I have done a lot of programming but none of it seems to help me get a better understanding of how networking works. Sure, I have read a lot of books for that but they don&#x27;t provide a practical and more pragmatic approach to learning networking. Also, what language would be best suited for this task? I am well versed in C++, Java and Python, have also done some web development in Django and Spring
======
ronin_123
So as far as I can understand , your goal is to understand how networks work.
If that is correct, then instead of jumping straight to socket programming get
a basic overview of networks through books by Andrew S Tenenbaum or by Jeff
Doyle ( TCP/IP). Set up a lab using tools such as eve-ng and look at how
routers work. Use wireshark to capture packets and get into the habit of
analysing them . This iwll give you a look at protocol headers . You may not
get an ASIC level of understanding of packet forwarding but I don't think you
really need that since most manufactures do it differently.

~~~
rochak
I have already been through the book by Forouzan. It was incredible. I'll
follow your advice to get a better at analysing packets and protocols

~~~
joshjje
I somewhat agree with him. I would, however, jump right into making something
you would find interesting as soon as you have a basic understanding of what
makes up a packet, the TCP/UDP protocols, and how sockets work, such as an IRC
chat clone, a simple networked game, a reusable self auto-updating library,
and so on. I would recommend creating something that you'll actually use or
remain interested in to stay motivated.

I find I do most of my learning while trying to research my way around a
stumbling blocks, but of course it always helps to read/research things
beforehand as well.

------
bauerd
[http://beej.us/guide/bgnet/](http://beej.us/guide/bgnet/)

