For many years, IT as a field was dominated by people who could not write code.
This is because computer technology was mystifying and befuddling to most people that anyone who knew merely how to use computers with any level of comfort could demand a tax from those who didn’t.
During that same period (late 90s and early 2000’s), programming itself was being commoditized by offshore outsourcing, so the same IT people were positioning themselves for management positions. This is how MIS (Management of Information Systems) became a popular career path among the IT elite, and why when I was in college in 2002-2006, Comp Sci enrollment was at a major low.
The last 5-7 years have been a rapid, society-wide realization that far from being commoditized, programming was now one of the few skills left in our society that consistently demands a premium. And probably will continue to since automation, when properly deployed, is labor-saving and productivity-enhancing, and the Web provides for a free or cheap global deployment mechanism.
Aside: This 15-minute video, Humans Need Not Apply, makes a strong case that a new wave of labor-saving automation will likely lead to much more unemployment than many people realize, and automation will also start to move up the economic hierarchy, affecting white collar jobs, as well.
The open source and Web community — as well as technical publishers like O’Reilly and Manning Press — has also turned programming into a real profession, because though most programmers don’t attend “programming school”, they do spend countless hours becoming experts on their own with the aid of the web and other resources. They undergo self-training akin to law school and medical school in terms of hours and dedication, but without any formal academic guidance or credentialing.
Programming is definitely a profession, distinct from system management/IT. I think it is even more than a profession, it is actually a new form of creative expression, similar to sculpture and architecture in centuries past, and like in those times, the best practitioners represent the state of the art.
So when someone says “so, you work in IT?”, I do get a little taken aback. My work is my pride: it combines thousands of hours of training, a professional ethic, and deep creativity. It’s not just a “job” where I clean up some company’s computer messes.
That all said, “IT management” is a job that has many talented people working in it. But if they can’t program, they are not part of my craft, and if they can program, they need to get out of “IT” and work in a new place wherein their craft is respected.
What’s worse than “so, you work in IT?” When someone who works in IT says, “I didn’t want to end up a code monkey, so I moved into management.”
On the other hand, I doubt that a chef would not be offended by being considered just another kitchen monkey and I do not doubt that he is the most qualified person in the kitchen, able to replace any other role as required. I’ve seen programmers perform database or system administrator work and pick up help desk calls as needed. I have yet to see a help desk operator or a manager to restore a database backup.
I’m the OP of the blog post. Bingo. This is exactly right.
There is an awful lot of false equivalence going around. My post is, of course, full of ego. That’s intentional. Ego and pride go together.
Most great programmers I know have a lot of pride in their work because of the amount of training (often autodidactic training) that goes into becoming a great programmer. And because people who don’t understand automation and programming simply don’t “get it”.
The common conception of a software engineer is that it’s a person who “knows computers”. But this would be similar to saying that an astronomer just “knows telescopes” or a surgeon just “knows scalpels” or a chef just “knows cooking utensils”.
I don’t believe that programming is the One True Craft. But I do believe, it is a craft. And that in the same way that there is a huge gap between a nurse and a doctor, or a paralegal and a lawyer, there is a huge gap between an IT analyst and a programmer. That gap includes a mixture of training, life devotion, and art — and is easiest to express as “programmers can code, and IT analysts can’t.”
And it’s not “code” as in “make a script work”. Everyone can cook, but a world-class chef can create little meal masterpieces. Anyone can wield a scalpel, but a world-class surgeon can save your life with it. And yes, it’s true, anyone can program — but there are programs, and then there are programs!