I'm a web developer interested in learning network. I work on Windows platform. Many of my friends and colleagures believe that to learn netwrok, I should become familiar with Linux platform. Should I? I mean, can't I learn network and it's concepts thoroughly on Windows Server platform?
Is Linux Necessary for Learning Networking?
linuxnetworkingwindows
Related Solutions
Interestingly enough I periodically have the same problem in the opposite direction. I'm primarily a UNIX coder, but I periodically have to port stuff to Windows. I can't tell you the number of times I've wanted to pull my hair out because I can't find the appropriate check box for a compiler option buried in one of 35 preference setting pages for a project. I'd rather just open up the proj file and add the XML myself.
Moving in either direction, the secret is to have patience, and learn the tool set for the platform you are trying to work in. Of course you are going to be frustrated, it's new, and it's unfamiliar, and you are reduced to newbie status all over again. There is no way to avoid this.
In your particular case there are some additional tools you should be aware of. The first is DDD, a GUI front end for gdb. It's not as slick as Visual Studio, but it will hold your hand. However, I'd really recommend biting the bullet, and set about learning the ins and outs of gdb. In truth, if you are a regular user, there isn't a lot of difference between memorizing which commands to type vs memorizing which dialog box you have to bring up to change a setting.
You also need to know about tools like CScope and CTags. As much you may resist, I would suggest learning VIM or EMACS. They integrate well with tag tools I just mentioned. When in Rome, do as the Romans do. You can find extensions for VIM and EMACS that will do code completion for you. My own experience with tools that offer code completion is is that yes, it does saving some typing, but in general typing is easy. Thinking is what's hard. Your opinion may differ, particularly if you have carpal tunnel syndrome.
As for make. Make is admittedly horrible, but you probably just going to have to suck it up and learn it.
If you want to do web development on Linux you should get to know Linux well. The truth is that if an employer uses a web technology that doesn't require windows, they will save themselves some money and give their developers Linux machines.
Such employers will want employees who are productive on Linux, so regardless of your knowledge of a framework or IDE, knowing Linux helps you be more productive, and consequently the employer will be more profitable.
Linux workflows are often different to Windows workflows. You can automate linux more easily with small command line tools, both existing and custom coded by yourself. Knowing the environment helps you to achieve this. One of the biggest paradigm shifts for example is probably "where are things" with regards to configuration files, and the fact that in Linux you are more likely to edit configurations in a text editor than click through a configuration dialog.
Another way to think of it: You are being considered besides 1 other potential employee who is on par with you on language/framework skills, but he knows Linux better.
ON THE OTHER HAND
There are many Windows based web development Jobs, or mixed environments where you might do some PHP and .Net in the same job position. ASP .Net MVC is great fun, and that requires Windows knowledge. IIS can even run PHP applications these days
My final recommendation would be that if you like web development the best option would be to know Windows and Linux very well. Linux has gotten increasingly easy to use, so it's not that much effort to learn anymore. In many cases development is on Windows but the servers are Linux. It would also be good for you to settle in to the web development framework you like the most, and see on what kind of platforms it runs. Then focus on it's primary runtime platform as your specialty.
Best Answer
Network terminology and concepts should be fairly OS agnostic. Though linux may help you get a better understanding of network concepts, this will probably be due to the fact that you will have to have some basic networking knowledge to set up a linux server (depending on the distribution). So basically, no, you dont need to use linux to learn networking principles. It may help, but it is by no means a requirement.