tags:

views:

1023

answers:

16

I mean this as a serious question. I have a chance at accepting a job offer with a company requiring skills in Unix (although they seem fine with my admittance of having only Windows experience, expecting me to be able to pick up Unix with the job).

Java is multi-platform. Every piece of software I've ever had to use is available on Windows. I know Unix is secure, but I'm a believer that it's only due to it's limited use and the assumption that it's administered properly. Why should I care about picking up Unix?

+13  A: 

Just like learning many different programming languages, learning different platforms broadens the scope of your understanding of operating systems, ways of accomplishing the same task, and ways of approaching problems.

I've never regretted my experience in various unix variants even though I am almost 100% in windows now.

John Weldon
Good answer, but I almost didn't upvote because you're almost 100% Windows now! :p
DeadHead
Lol :) If someone would just donate me a box, I'd get right back into Linux :)
John Weldon
seriously a 386 PC is virtually free and can run linux!
Rob Elsner
Heh! I'll take it! I have 4 or 5 'old' laptops, two 'old' desktops, and none of them are in any usable shape. ALL I NEED is 1 (or 2) Ethernet ports, reasonable hard drive, and a bare necessity motherboard :)
John Weldon
drop me a line i have spare stuff sitting around i don't need, if you pay shipping.
Rob Elsner
+6  A: 

You should care about learning new things.

Rob Elsner
A: 

You say, "software I've ever had to use is available on Windows": the Unix software that I've written has been server software, not client (end-user) software

ChrisW
+30  A: 

From a purely business-minded perspective, there are many jobs out there which will require familiarity with Unix and Unix-like environments, so becoming proficient will only increase your marketability.

From the perspective of someone interested in computers and programming, there's no reason not to learn Unix. After all, it played a major role in defining computers as we know them today. To ignore it would be to miss out on learning something quite interesting and different from Windows. Actually, just the fact that it's different from Windows is enough to teach you a lot about how the hardware and OS work (you'll see things more clearly than you would have as a Windows-only user).

From a cost-benefit perspective, it doesn't take much to get started using Unix and you'll quickly become proficient. Since there's no downside, you have nothing to lose by learning it.

mandaleeka
+4  A: 

Knowing Unix and Windows will make you stronger, more marketable. Eventually, you'll appreciate the strengths of Unix - and you'll be able to make informed decisions on the strengths of Windows and Unix.

Go for it - learn Unix as well as Windows.

Jonathan Leffler
I'm intrigued. What would you say are the strengths of Unix?
Cuga
This is a great picture which shows where Unix has had influcence: http://upload.wikimedia.org/wikipedia/commons/7/77/Unix_history-simple.svg It's taken from http://en.wikipedia.org/wiki/Unix
Jonathan Parker
Sorry I meant influence.
Jonathan Parker
A: 

I think it will be easy for you to learn how to use *nix. If you don't ever anticipate using Unix in the future, then don't bother.

But....

Every developer should be able to learn how to use a command prompt, and there's really not that much to learn coming from Windows. Sure you will type ls instead of dir, and maybe stumble a little with chmod and permissions.

But the bottom line is that its not that hard.

Unknown
I know it won't be a problem picking up the new (new to me) technology, since every day I'm learning something new as-is. I can get around Linux just fine. (And while I'm young, my first two computers ran DOS 3.x - Old IBM 386s I got second-hand). I'm less worried about the challenge and more cautious to know if the challenge is worth it. These posts, including yours, fills me with confidence that it's a good idea.
Cuga
+2  A: 

Look at it this way. If you are a native English speaker would it be useful to learn a foreign language even if you never visit a foreign country? I say absolutely. First, you may encounter speakers of that language in your country. Second, understanding a different vocabulary and grammar can vastly improve your understanding of your own.

Same with computer tech.
Been a VB programmer? Embrace the curly brace. Been a MS platform developer all your life? Learn to love grep and ls. Learn Lisp, Ruby, anything new; you will be a better programmer because you did.

Gary.Ray
Studies have also shown that people who know 2 or more languages are less likely to get Alzheimer's disease.
Lucas McCoy
+1  A: 

I think Unix is a valuable tool to learn. There are a lot of things that are much easier to do in Unix or are only possible to do in Unix.

Start out by learning the Unix equivalent to basic Windows commands (ie., ls instead of dir, grep, sed, etc).

Install cygwin and the next time you're going to drop into the command line to do something, learn how to do it in Unix instead. It'll take longer to do, but it's definitely worth the learning experience.

Martin Gordon
+2  A: 

Limited use? Seriously, it might be worth taking the job just to learn how very wrong that statement is.

Unix is running most of the routers and servers you deal with every day. Linux is in every embedded devices imaginable. Google chose it for Android and it might well come to dominate that market some day. If nothing else opening your mind to unix will open your mind to many new possibilities.

Duck
"limited use" compared to Windows. What I meant is Windows has the lion's share of the overall market. I consider Unix to be more specialized. In my opinion, Windows gets a bad rep for being "unsecure". Yet I feel that people specifically attack windows more than they do Apple's OS or *nix simply because there is a broader base.
Cuga
It is true that Windows has the lion's share of the desktop market, but this is not true in the server space. Take a look at http://news.netcraft.com/SSL-Survey/CMatch/Coscnt_all
Laurence Gonsalves
A: 

A lot of standard software development tools (for example, the GCC suite, Subversion) are written primarily for a Unix environment. Knowing how to work with Unix will make you more flexible and enable to use a varied array of powerful software tools (and just productivity tools in general, like grep for instance).

Also, you can see the mark of Unix in many aspects of programming languages and APIs today, and understanding Unix can give you a better understanding of certain "design philosophies", so to speak. For example, the filesystem libraries of most languages (Java included) are strongly influenced by the standard C I/O libraries, which were designed for Unix systems. Specifically, for instance, Java's System.err really has no purpose on Windows or other GUI-based operating systems—it's a carryover from Unix, where you can redirect normal output from the console to a file or another program, and need some way of getting error messages directly to the console.

There are many other reasons why learning Unix would be beneficial, but those just a few off the top of my head.

htw
I see where you're coming from w/r/t learning about the 'mark' Unix makes in programming. But at the same time, I have two SVN repos running on separate Windows machines and I can use System.err in Java on top of Windows just fine. I see where you're coming from, though, and I'm intrigued.
Cuga
+34  A: 

Why we use Unix

A story:

Isaac Newton's reflecting telescope was an extraordinary achievement. His first telescope was about 6 inches long with a 2-inch mirror; it magnified by forty times. He was proud of his handiwork even sixty years later, when Conduitt reports

I asked him where he had it made, he said he made it himself, and when I asked him where he got his tools said he made them himself and laughing added ``if I had [waited] for other people to make my tools and things for me, I [would never have] made anything...''

We use Unix because Unix gives you the tools you need to make other tools:

  • ksh or bash for scripts and for the command line
  • Pipelines and I/O redirection for passing standard out of one program to standard in of another, as in this rotation:

    djpeg foo.jpg | ppmtrans -rotate 180 | cjpeg > foo-upside-down.jpg
    
  • cmp for telling if two files are identical and diff for displaying differences in text, as in

     if cmp A B > /dev/null ; then echo Identical; else echo Different; fi
    
  • fgrep for finding text and grep for finding regular expressions, as in

     fgrep 'i, j' *.c
     fgrep 'j, i' *.c    # pick one or the other!
    

    Or to get width and height of a PNG image:

     pngtopnm hyphen.png | pnmtoplainpnm | grep '^[0-9][0-9]* *[0-9][0-9]*$'
    
  • find for asking if I have two files whose names differ only in case, which would break on a Windows filesystem:

    find $HOME -print | tr A-Z a-z | sort | uniq -c | awk '$1 > 1'
    
  • sed for EDiting text in a Stream

  • Lua, the scripting engine behind World of Warcraft

Unix is a just a few simple ideas---really a way of doing things. But it makes you better. Stronger. Faster.

Norman Ramsey
This is exactly what I mean about Unix embracing modularity. Thanks for the examples.
Matthew Flaschen
For a counter, see The Unix Haters handbook http://simson.net/ref/ugh.pdfOriginally by VMS authors (which via the OpenVMS team is part of NT 's roots), it still gives some insight in why not. It doesn't matter if you hate or love Unix. The arguments are interesting.
Marco van de Voort
+5  A: 

Just for clarity, I' m using "UNIX" to mean Unix-like, including GNU/Linux. I agree with some others that you are quite mistaken in thinking UNIX is in limited use. Basically, the question is, "do you want to learn as much as you can, or as little as you can?" Unix is a whole different way of computing. It's

  1. Modular. There are many small libraries and utilities that do exactly what you want and no more, then fit together cleanly to form the big picture.
  2. Standardized. Ever since the end of the UNIX wars, the UNIX world has embraced standards, while Microsoft has used them when they felt they had to.
  3. Flexible. It's easy to get a Unix instance configured exactly how you want. There are products like JeoS and rPath meant exactly for this.

So, yes, UNIX does have major strengths. There's a reason Unix (again, including Linux) is about 45% of the server market. So learn both, and try to enjoy the experience.

Matthew Flaschen
You get +1 for mentioning MS's reluctance to embrace standards. I'll point out again that I don't mean to imply that Unix is limited in its power in any way, it's just that given what I've seen to this point, Windows appears more prevalent. I'm open to expanding my horizon, esp. thanks to this post.
Cuga
-1 for saying GNU/Linux
Frank Krueger
+2  A: 

Beside all the valid reasons already given just think that the unix / linux market is growing and growing probably faster than the windows market.

Just think that most of the routers have a linux OS, Many phones have a linux-based OS (android for example), Many game platforms have also a linux based OS (wii, for example), Many car navigation system are linux based (Tom Tom)

and the list is growing. (PDAs, medical equipment, eng equipment, etc)

linux/unix market is not restricted to computers

Linux is worth to be learned because it has a huge future and it will be present at many more devices and appliances that I can imagine today.

Luixv
+1  A: 

Unix is secure due to it's design philosophy. Remember, Unix is only a standard that operating systems must adhere to in order to be a Unix. It is worth learning because, if you learn one Unix, you can operate most of them with some adjustments.

Unix is also a programmer's operating system. If you are a programmer, venturing into Unix will open up new languages and methodologies, and make them accessible.

Most of the worlds critical systems run on some Unix derivative, and even Apple OSX is Unix (BSD) underneath. Embedded systems such as PVRs and DVD systems and routers run some flavor of Unix. It's everywhere if you look for it.

My advice if learning would be to steer clear of any GUI tools (if you have time) and learn the fundamentals of managing the system through the CLI and standard Unix tools. This will give you a good foundation to build on.

Aiden Bell
A: 

People seem to have a a rose tinted view of Unix - please read \ skim through Unix Hater's Guide (available from http://simson.net/ref/ugh.pdf) before you take the plunge. Although the book is out of date in places - i think a lot of it still holds true : Unix is way past its sell by date.

Thank you for this.
Cuga
Read that. Most of the complaints are past their sell-by date as well.
Joshua
The Unix Hater's Handbook is awful. It's sortof like reading a "Automobile Hater's Handbook" by partisans of horse-drawn carriages compared to Model T's. "You constantly refill it with hard to find gasoline" "It breaks down every 5 miles or so!"... The one or two arguments that are still relevant in today's computer world pretty much equally indict any modern OS.
jkerian
A: 

Many public sector organizations (states, federal government, etc.) require the use of open source and free systems when possible (so usually not for the desktop operating system, but for servers/clusters/etc.). In this case, Unix knowledge can be very helpful. Since the public sector is so heavily regulated and always under the watchful eye of the public, open source solutions make sense.

From a strictly philosophical standpoint, you should never turn down the opportunity to pick up some new knowledge or skills. Unix is very valuable since the knowledge can be extended to many Linux and BSD systems as well.

If the job offer is something you like then I would take it as long the Unix skills requirement is the only that's making you hesitate.

Mike