Saturday, 17 March 2012

Unix is the only long term skill investment for programmers.

Surprisingly, but most professions are quite different from IT. Doctors, Lawyers, other normal people study a bit, maybe some years in university and voila, they are working with gained knowledge whole their life. However, in IT the things are different. You need to seriously learn some technology every other 2 years, not even being able to master it enough, start learning a new technology from scratch. And you cannot tell me that many things are common. That is just partially true, because libraries, syntax, which is majour part of productivity, always changes. E.g. Servlets or XSLT. You learn it hard, it is substantial amount of knowledge, and how often are you really applying these skill in your everyday programming life? Not often. The same as the other 50 technologies, dusting in you mental stack, and gradually getting forgotten. Luckily there are always more powerful skills than the other. Those that not simply do stuff, but accelerate doing it. Some of them can serve you all your programming life. Things of another magnitude, your productivity boosters. This is Unix. Ironically, it appeared at the beginning of programming era, and till now nothing can beat it, making it ultimate value/time investment. It is unbelievable to work with tools, written 30 years ago and be certain that once you learn it, you will be daily using them easily another 30 years. Because as it is written in wonderful "The Art Of Unix Programming" book, in my free interpretation: whoever does not grasp unix, is doomed to reinvent it, or fail miserably. Take a look at operation systems. The early branch of Windows 95-98 failed, being replaced by Windows NT and 2000 which grasped many concepts from Unix. Same for Mac OS. Now it is Unix inside in fact. But we are talking now rather about benefits of Unix techniques. The immense power lies in a couple of concepts, like keyboard beats mouse, text is our everything, small tools are piped together, immense power of regular expressions and many others wisdoms. There are just average programmers, and the top ones, those who can manipulate things thousands of times more productively. Looking at them from side it resembles a magic. Techniques I would recommend to start learning from: regexps, sed, awk, bash, vim, small unix tools. And the power will grow on you, guys.


  1. An insightful article, completely true. While I am a passionate *nix guy, I have worked with huge enterprises running completely on Win platform, employing hundreds of software professionals. No one knows a single bit about *nix.

    What I feel is any OS which has established itself in the industry will not go away any time soon. So we can generalize that OS-level skills or OS programming skills have longer life than application programming skills like Java, PHP,

  2. s/bash/sh/

    Otherwise good article!

  3. Unix is far difficult and GUI is not as friendly as in other OS

  4. Indeed.So true, Unix still rules, command learned years ago still works. Another great investment is C which is still used widely and second best is my favorite Java , a close to perfect language.

    10 OOOPS and SOLID design principle Java programmer should know