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.

As developers how much time, or do you spend time, In learning the hidden features tricks of your operating system ?

  • How important do you feel is this for productivity in day to day programming? tasks.
  • What do you mean when you list knowledge of an OS in your resume?
  • What are your most useful hidden -less known features

For example:

A common problem of How can i open the cmd window in a specific location

a do it yourself solution in say xp

and what to do if something breaks

Or are these something you look into as and when you find the need to do so?

share|improve this question

closed as too broad by gnat, durron597, GlenH7, MichaelT, enderland Jun 19 at 12:53

There are either too many possible answers, or good answers would be too long for this format. Please add details to narrow the answer set or to isolate an issue that can be answered in a few paragraphs. If this question can be reworded to fit the rules in the help center, please edit the question.

Check the cmd post again. I just added my way of invoking cmd in XP. –  Codism Mar 17 '11 at 16:43

4 Answers 4

This is very important - It's necessary (but not sufficient) to avoid reinventing the wheel and producing obtuse code.

Knowledge of an OS means you know how to get things done as both a user, administrator and developer - Very different tasks usually. A few years in different roles could be sufficient to list an OS on the resume.

To learn known unknowns, Q&A sites like SO/SE are very nice - Ask a specific question and receive specific answers. References are useful when you want to get deep into the technical stuff, while tutorials can give you fresh insight into ways of doing things.

Unknown unknowns (hidden features) are trickier, because they require that you go browsing for useful stuff. Places like SO, SE, commandlinefu, and Bash Pitfalls are useful for such things, and can be a great way to learn things you didn't even know were possible, and would never have asked about otherwise.

Edit: If you liked the references, maybe you'll like more of the collection.

share|improve this answer
+1, cmdlinefu seems interesting –  Jas Mar 17 '11 at 8:58
+1 definitely for cmdlinefu. –  Aditya P Mar 17 '11 at 15:03

I'd say it goes more for the command-line based OSes (i.e. OSes where most complex tasks are done on cmdline). Having to work with Linux and Solaris most of the time, whenever I have an idle period, I've found it useful to pick a random page from a bash/awk/sed/grep manual and spend 5-10 minutes acquiring a new skill (e.g. I just learned yesterday that "killing" a line is a synonim for "cut", go figure). I would total the time spent bettering my Linux/SunOS skills at about few hours a month.

share|improve this answer
I wouldn't; Windows has its own tips and tricks that you should get to know if you want to be more productive, and I don't mean PowerShell. As does every other OS out there. –  geekosaur Mar 17 '11 at 18:48
@geekosaur - yeah, I hear awk and sed's popularity on Win platforms is apparently soaring :) –  Jas Mar 17 '11 at 21:29

From my personal experience (I started working as system administrator, then moved to programming) knowledge how your application schould interact with certain OS subsystems is way much important than learning "tricks". I'ev seen a lot of applications which were ignoring OS subsystems in favour of custom (clumsy and buggy) implementations. The most common signals of "I don't know a heck about OS i'm writing for" is:

  • hardcoding system paths (C:\MyDocuments instead of SpecialFolder in C#)
  • compromising file access rights (eg. making them writable by anyone, because the programmer can't tell what are effective rights of his software)
  • storing persistent data in a temporary directory
  • garbled characters, because programmer wasn't aware of system encoding (and that it might be different on production server)

This of course leads to various problems and most of the time programmer can't really fix them, because he doesn't understand the root of the problem.

So the programmer schould know as much about underlying OS as he needs to write software that interacts with it correctly.

share|improve this answer
As a programmer, Now! how do you feel about administrative privileges in regards to your development work? –  Aditya P Mar 17 '11 at 16:38
@Aditya Not sure what you mean. Can you be more specific? –  Jacek Prucia Mar 17 '11 at 18:31
administrative privileges for the system which you currently code/develop on. –  Aditya P Mar 18 '11 at 9:49
@Aditya Don't have them and really don't need them. –  Jacek Prucia Mar 18 '11 at 21:52

First you'd have to better define what do you mean by "your operating system"? The one on your development machine or one on the target machines?

As for productivity, I'd say there isn't huge influence by operating system on my development machine. A lot of the tools you're going to use are either entirely cross platform (for example all Eclipse based IDEs), or at least the core of it is cross platform (revision control systems like SVN, Git or Hg). And even for the things that are not cross platform, it's more about tooling than OS tricks.

It's a other story if we're talking about target OS. You do need to know it, although I wouldn't say it's about tricks or hidden features. Just good, general knowledge. Like for example working with Unices it's very useful to know shell commands, know basic tools like find, grep, sed, know the directory structure, knowing the permissions system, knowing what symlinks and hardlinks are. But I wouldn't say, that average developer needs to know for example about inode structure or kernel internals. On the other hand being used to developing on Linux I've had bit of a struggle with Windows (many things you take for granted on Unices don't work on Windows, like for example file locks are completely different).

On putting that on CV -- depends how it fits in with your other experience. If you're just starting, than it might be something worth mentioning, otherwise it might be implied by your other experience. Personally I don't put knowledge of OS on CV, I do however put knowledge of programming OS internals there.

share|improve this answer

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