Is becoming fluent in linux a worthwhile use of time for a would-be computer scientist? I bought a laptop about a week ago and threw linux on it but it's giving me so much trouble; I've reinstalled the OS at least 4 times since I got it. First of all, are unix skills, as opposed to say Windows, still relevant for computer scientists? Both in terms of job skill, and in terms of use potential? And might I learn just as much if I used a mac instead?
And what about trying a distro using it as a VM? And I never had any trouble with any Linux distro I tried so far. I don't really know about a day to day work of a CS, but I think Linux's potential fascinating if you are a power user, and not an end user. Also, I don't think using a Mac based OS would suffice. You would learn a bit of the Unix environment, but Linux's strength is in its open source code and the modularity that comes with it. There isn't that much freedom in a Mac. If you wish, you could use a Mac as a step into Linux, but never replace one with another, IMHO. But again, I might be wrong. I don't make my living off CS and I don't really know about everyday life of this kind of career. :-)
I know a guy who works for Microsoft and he told me he use Linux operating system for coding software
thinkpad20, I think the answer is yes, but I'll admit I may be biased--I've worked as a linux sys admin. As a practical point, in those programming shops where I've worked, programmers are using linux, and it's a definite bonus if they can get around without having to ask a sys admin for help. If you're working for a company whose presence is mainly web based, you'll probably be using linux (see the recent discussion about linux's presence on the web). Knowing linux will add to your self-sufficiency, credibility, and even your upward mobility. I've seen programmers with linux skills move into other roles because of their dual knowledge. Now, will knowing linux make you a better programmer? I'd like to think so, but maybe not. In fact, my manager at one job, the VP of IT, was a Windows guy and a better programmer than the lot of us. That being said, he could still get around in linux. I'm not going to jump down this rabbit hole of a tangent. I agree with bmp also about a virtual machine. If you're struggling to install linux, do it virtually. Also, which distro are you installing? Ubuntu, Fedora, etc., should be pretty painless to install. Just don't grab something like Slackware that requires more hand holding. And if you're having a specific problem with the installation, feel free to post it here.
I'm running Arch linux, which is the OS I used for a few years back in college - back then I was rooming with some linux hackers who could act as my tech support; much harder when I'm going it alone. I've been able to install it, and get it working OK. But just to give an idea of the kinds of issues I've had - well, some are my fault (once I accidentally deleted my fstab, another time I switched my path variable to a single folder) and others seem to be almost capricious. The machine will occasionally boot to a blank screen - I think this is related to the intel video card in the laptop, and I can implement a fix to it, but then it will work just fine without the fix at times. Sometimes x refuses to start, citing no screens, and then upon a restart it pops right up. One time it couldn't find my boot partitions on the hard drive and I had to rebuild the fstab with a program called mkinitcpio - (this was unrelated to the previously mentioned fstab deletion). I've been unable to get the wireless card to connect to my router, despite following several guides on the subject. As a side note, and not to go off on a tangent, but it seems like a ton of the basic setup things in linux - things like installing a video card, or connecting to a network, or choosing xorg settings, etc, could easily be handled by wizards with simple bash scripting. What's to be gained by slogging through a tedious series of lspcis, modprobes, document edits and the like, opening oneself up to misstypes or missteps, when the steps of many how-to's could easily be transferred into relatively simple bash scripts that ask you a few questions and do everything else automatically? I suppose perhaps this is just a product of using a minimalist distro like Arch, but even so, it would only be a few bytes of code to include these sorts of scripts - which could be used at the user's discretion. Meh.
Archie's philosophy is to let everything to the user. That both increases your control over the OS, but makes it harder to use it. It's a minimal OS, I would say. As you are beginning with Linux, follow keketsu's advice and avoid distros like Slackware and Archie. Have you considered Fedora, Ubuntu or Mint? All three have setup wizards that can help you with that. And by the way, crashing your own OS is very common when using Linux. I deleted the gnome environment like 3 times, :-D. What I think Linux gives you in a programming career is the DIY philosophy. You have to search, fiddle, experiment and modify. That kind of mental state is quite good for imaginative works(developing new algorithms, a different web app, etc).
I agree with bmp. There's something to be said from starting with a minimal OS. In fact, if you don't start with one, chances are you'll never return to one. Those minimal installs force you to really understand what's going on under the hood. Could a bash script make the install easier? Sure. But then why not opt a full GUI like Fedora? Here's what I think. If hacking away at Arch is causing you to doubt installing a linux box altogether, go for something easier. Better to be playing with something rather than nothing. If, on the other hand, you're going to stick it out regardless and you're frustrated by all the funky fstab-xorg-kernel woes, well, you're in good company and keep up the good work. I've spent countless hours trying to figure out how to get a display to function correctly, but working through problems like that is what separates Power Users from mere Users. Again, running multiple VMs is probably the best option. Install Ubuntu in one, Gentoo in the next, etc. It's good to get a feel for how different distros work. You can have a linux system to play around with that always works (especially if you snapshot it at a working point), and have others to play around with when you want to go the extra mile and do things from scratch. Are you still having specific problems? Or have you resolved the ones you listed?
You will want to learn GNU/Linux (Linux for short) and other Unix-like systems if you want to be able to do more than just developing software for the masses. Most servers out there are running on Unix-like systems, particularly Linux.
Join our real-time social learning platform and learn together with your friends!