Thought experiment: new operating system
I recently asked the same question of several software engineers: Say you had to spend significant time working with a new OS, one you had never seen before. What would you have to learn before you felt pretty comfortable facing your workday?
I have significant experience as a developer on Windows, but only semi-significant experience on *nix (that's Unix/Linux for you non-programmers). A lot of my heavy *nix use was at MIT where I learned MIT-specific things alongside basic Unix tools and never differentiated between the two, and I have only used iSparklies on a mac, no development and nothing OS-specific. All this makes me a little bit subhuman in the eyes of some of my friends and, it's true, makes me a less flexible developer. However, for Zillian I have thrown myself into the deep end by requesting a Linux workstation (required) and a Mac laptop. Coward no more, I charge into the breach! So this question is largely a measuring stick to see how deep the deep end IS... I suspect I know a lot of what I need to know on *nix already, and figure that if I have a written list of things to learn about the Mac it'll make it that much easier to get snuggled in.
And the interesting thing is, I got some flak about the question, but only from my younger colleagues. I quote one whippersnapper as saying, "I don't plan to ever have to do that again". My older, more experienced coworkers said things like "hmm... I usually X, Y and Z".
Here is the partially organized list of things people said:
File system:
the basics of navigation through the filesystem
what extension does a native executable file have? Is this required or just convention?
file manipulation (move, copy, delete, change attributes including permissions)
the basic structure of the filetree so that I would know where it was good style to put things (where does an application go by default when installed?)
Environment & Scripting:
Figure out how to script. Is there a native scripting language to be learned? What does it take to get a bash shell going?
How do environment variables get set? (two different Mac users told me they still don't know how to set environment variables in such a way that they're set automagically upon login -- wow. Does anyone know the answer?).
Basic apps:
How do I get a command prompt?
What is a good basic text editor (does emacs run?)
How do I start a browser?
Random:
How to adjust display
Figure out as many keyboard shortcuts as possible
System stats -- how much memory is left on the system, what processes are running?
Where to go for more help/information
How to set up a printer
How to turn it on and off (soft reboot)
Slightly less basic things I, nevertheless, would eventually need for work:
How can I view .doc files if not on a Windows box?
What's a good program for drawing diagrams that I include in documentation?
How can I schedule a task to automatically run at certain intervals?
I would welcome additions to the list from you geeks out there.
I have significant experience as a developer on Windows, but only semi-significant experience on *nix (that's Unix/Linux for you non-programmers). A lot of my heavy *nix use was at MIT where I learned MIT-specific things alongside basic Unix tools and never differentiated between the two, and I have only used iSparklies on a mac, no development and nothing OS-specific. All this makes me a little bit subhuman in the eyes of some of my friends and, it's true, makes me a less flexible developer. However, for Zillian I have thrown myself into the deep end by requesting a Linux workstation (required) and a Mac laptop. Coward no more, I charge into the breach! So this question is largely a measuring stick to see how deep the deep end IS... I suspect I know a lot of what I need to know on *nix already, and figure that if I have a written list of things to learn about the Mac it'll make it that much easier to get snuggled in.
And the interesting thing is, I got some flak about the question, but only from my younger colleagues. I quote one whippersnapper as saying, "I don't plan to ever have to do that again". My older, more experienced coworkers said things like "hmm... I usually X, Y and Z".
Here is the partially organized list of things people said:
File system:
the basics of navigation through the filesystem
what extension does a native executable file have? Is this required or just convention?
file manipulation (move, copy, delete, change attributes including permissions)
the basic structure of the filetree so that I would know where it was good style to put things (where does an application go by default when installed?)
Environment & Scripting:
Figure out how to script. Is there a native scripting language to be learned? What does it take to get a bash shell going?
How do environment variables get set? (two different Mac users told me they still don't know how to set environment variables in such a way that they're set automagically upon login -- wow. Does anyone know the answer?).
Basic apps:
How do I get a command prompt?
What is a good basic text editor (does emacs run?)
How do I start a browser?
Random:
How to adjust display
Figure out as many keyboard shortcuts as possible
System stats -- how much memory is left on the system, what processes are running?
Where to go for more help/information
How to set up a printer
How to turn it on and off (soft reboot)
Slightly less basic things I, nevertheless, would eventually need for work:
How can I view .doc files if not on a Windows box?
What's a good program for drawing diagrams that I include in documentation?
How can I schedule a task to automatically run at certain intervals?
I would welcome additions to the list from you geeks out there.
no subject
I have a list of developer specific stuff that I need to figure out with any new system. make, compile, link, utils to look at symbols in the objects, hopefully a developer environment. I'm an emacs gal but I also really like having vi (my boss is a power vim user, he has it on all his platforms) and xedit available for text editing (gedit on linux if the sysadmins don't want to bother with the official xedit). Native clients for version control.
Mail is a big one, I always use pine, and I've had to fight with sysadmins about getting the settings sorted while everyone else uses GUI based programs.
Setting up multiple desktops is always useful for me.
How to get to network disk locations. How to reset my prompt. :)
no subject
Zillian uses gmail, naturally enough, so I already know how to use that. :D And for the specific builds and dev tools, yes... I'll definitely have to use whatever the tools are, but can't fret about it ahead of time much; I'll be joining some existing project, so at first it should just be how to run the existing build scripts. And then, whatever IDE is standard. If I'm working in Java I'm a big IntelliJ Idea fan, but if I wind up working in python or C++ on *nix I may well just go with emacs for that. Dunno yet. It's all a big black box... I mean a big green/blue/red/yellow box.
no subject
Second, I certainly didn't feel like I gave you any flak. I certainly didn't mean it that way. I do think that the world of (non-embedded) OSes has pretty much bifurcated into Windows and *nix (with Macs mostly in the *nix column), but I'll certainly admit that might change. Maybe Plan 9 will finally take off, or some new kid will come strutting around.
Lastly, I like all the above questions. You got a very nice set of responses, and I'll come looking for this post next time I need to learn a new (or old) OS. (Hmmm. I did just volunteer for something that might make me spend time in Windows, again.)
no subject
Anyway, thanks for the added info that one CAN set the suckers if one has such a strange desire. :)
As for flak, you do realize I quoted someone else, right, not you? Just checking. I asked this of quite a few people, and there were other engineers, plural, that I got much sillier responses from.
no subject
:)
no subject
no subject
Anyway, in all seriousness, I would have to sit and ponder on this question a little more.
no subject
As for how to view a .doc file, there's OpenOffice or Google Docs (once you've found your browser, that is).
no subject
As for *nix, I'd be happy to play on one that had been set up for me, but I have no idea how to set them up myself.
I'm all about GUIs, and think that key sequences are great, but shouldn't be mandatory (ala vi or emacs). I worked my way up from Word Perfect pre menus (can't even remember what I used on the Apple II+ anymore), and find GUIs with menus and toolbars far too useful.
As for programming - stack viewing, variable exploration, conditional breakpoints, thread switching, mem usage, and profiling.