Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm learning web development. My main OS is windows 7 but I've used Linux and currently dual-booting with Ubuntu. My Linux knowledge however, is pretty limited. I can work with the command line on simple tasks but that's pretty much it. I don't do any shell scripting, don't know very well the most important commands, nor the system in general.

I am interested in web development. Should I get myself familiarized more with Linux ? Is it a must for future job positions considering my field of interest?

share|improve this question
    
Possible duplicate programmers.stackexchange.com/questions/46716 –  ChrisF Mar 18 '12 at 23:28

4 Answers 4

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.

share|improve this answer

It certainly is a must since most of the web you see (stackexchange being one notable exception) runs on Linux and other Unix-like OSs. Most web development technologies and frameworks are Unix-native - despite the fact a couple of them also run on Windows, but few target Windows deployments.

A developer must thoroughly understand the environment the program runs. In most cases, it won't be Windows. You should learn Unix (and Linux) philosophy to be able to make your apps integrate more easily.

The good thing is that, with tools like Cygwin, you don't even need to leave Windows to get experienced with Unix-like environments - and you get a very capable command line you can use on Windows. With compilers and interpreters for a multitude of languages, source-control and text processing tools.

share|improve this answer
    
Just out of curiosity, can you mention a few examples of this: "Most web development technologies and frameworks are Unix-native" –  Jarle Hansen Mar 18 '12 at 21:32
1  
Pyramid, Django, Rails are the examples that readily pop up, since they are close to my work. PHP is another language that was born under Unix. MySQL and PostgreSQL, two relational databases that back countless websites were born on Unix-like OSs. In fact, except the ones Microsoft created, I can't remember anything that targeted Windows servers from the start. What I see are platform neutral things (such as the Java containers) that run under both Windows and Unices. –  rbanffy Mar 18 '12 at 21:51
    
Thanks. You were not talking about on which platforms the technologies were created, but where they run. And as most of these run on windows, your argument seems a bit weak to me. I would guess there are very few frameworks that only run on linux. Anyways, thanks for the information, and I think we both agree that it is important to learn linux/unix as I also stated in my answer. –  Jarle Hansen Mar 18 '12 at 22:06
1  
That doesn't change the argument you will gain zero understanding of a Linux server or the behavior of your code in production by using a Windows machine. And, while many of those also run on Windows, almost nobody deploys on Windows. –  rbanffy Mar 19 '12 at 0:38

It is not a must, but certainly an advantage. Most servers run some kind of linux/unix, so it will help you there. I would recommend that you do it, and maybe you even will prefer it over windows after a while :)

share|improve this answer

Just run your server in a virtual machine with linux. You can use VMWare or VirtualBox. Then you connect to the guest machine via Putty and learning linux command line is just a matter of time then and comes totally natural.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.