“So, you work in the service industry?”
“No - I’m a chef. Cooking is definitely a profession, distinct from washing dishes and taking orders. I think it is even more than a profession, it is actually a new form of creative expression. That all said, ‘restauranteuring’ is a job that has many talented people working in it. But if they can’t cook, they are not part of my craft.”
Establishing delineations between “those who can (code)” and “those who can’t” strikes me as nothing but an ego massage, and is a really ugly thing when you work at a company where those lines have been formed.
I think that the reaction against this that some developers comes down to a split between engineers and service professionals. In building a building, the architects, civil engineers, and construction workers perform very different tasks. If most people’s experience with construction is the contractor that redid their kitchen, it’s perfectly valid for a civil engineer who builds skyscrapers to want to be distinguished from the person who lays tile floors.
There are certainly very skilled non-programmer technical IT professionals, but there are also many who aren’t  . These depictions of the job “IT” cast it in a negative light that many, myself included, would rather not be associated with.
It’s an ego massage. And there should be some. Being a good chef is a lot simpler than to grok nowadays computer systems. Just try counting the levels of abstraction you are able to think at: user clicks at a link and a page loads. What really happened? Go!
Customer orders a plate, a plate comes out. What really happened? Well, the chef was responsible for striking a balance between many different demands.
Where did the meat come from - did he source it locally or was it purchased wholesale from a restaurant supplier? Depends on the focus of the restaurant, the demands of the owner, price evaluation… and boy, if we’re going farm-to-table things are going to get significantly more complicated!
What spices were used? The local folks in Austin TX are going to have a different palate than a restaurant in North Dakota; you’re not going to have much luck with hákarl and brennivín outside Helsinki. So that’s an important consideration!
Why did he pair it with kale? Is it because the taste is right? Because it’s seasonal right now? Because kale is an in-demand vegetable and therefore more likely to get ordered?
Why is it the special tonight? Because the kale was starting to wilt and needed to be priced to move? Because the butcher had extra pork this morning?
Dave called in sick; who am I going to put on meats? Sandra is a good commis but I don’t think she’s ready for that all on her own. Maybe Cassie can rotate in to cover?
Ah. Table two just ordered the scallops, better get the oil heating…
“What I do is hard, what he does is easy” is a pernicious myth that’s infected programmers. Sure, programming is hard. But lots of careers are hard. Most of the time we only think things are easy because we lack insight into what’s really happening.
Also, as you note, there’s quite a bit happening when I click “Post” on this message. But I challenge you to find any programmer in the world that can truly explain it top to bottom. Does it make a difference that plenty of us can hand wave from the top to the bottom (“well, uh, you’ve got a bunch of transistors… on some silicon”)? Nah.
At the end of the day we’re not that different from chefs - he works salads, I work databases. She’s the sous-chef de cuisine, he’s the team lead…
I apologize, I mistook chef for a cook in your original reply. I stand corrected, being a programmer is a lot similar to being a chef.
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.
And yes, I believe that “hardness” and necessity of programming is only surpassed by “hardness” and necessity of the theoretical research in our domain (looking at Microsoft Research, IBM, Haskell guys, Racket guys and many more). Rest of IT are just the cooks, waiters and marketing guys.
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!
It seems to me you’re making his point? There’s a hell of a lot of difference between a chef, a maitre d', a silver service waiter, and a burger flipper / table wiper at McDonald’s.
Right, but at the end of the day they’re all in the restaurant industry. Just like at the end of the day, we do “work in IT”. That’s the first point I was shooting at. Just because the author doesn’t like to be called “IT” doesn’t make it so.
The second point I was going for: sure, there’s a big difference between the fast-food fry cook and Thomas Keller. But it’s foolishness to say one is more important than the other; McDonald’s can work without Keller but can’t work without Rita on the fries.
And that’s the real importance of the “unskilled IT workers” others talk about (incorrectly, I’d say, because anything IT does require some skill…). If you have a good IT department the project managers don’t have to worry about troubleshooting their printer, which means the good project managers can focus on calling the customer and negotiating requirements with management, which means the good programmers don’t have to worry about incomplete specifications and can instead… code.
Could I troubleshoot a printer and negotiate with managers/customers? Sure! It might take me a bit longer, but I’ve done it before - we all have. Could the IT guy do my job? Likely no. But that doesn’t mean I’m necessarily more important than the IT guy. Good low-level workers act as a multiplier for levels above them.
As a fun anecdote, I remember one day long ago when the owner of the company I worked at accidentally deleted some majorly important file and was freaking out. Guess who was the most important person that day - not us programmers, but the IT guy that recovered it for him!
I have personally met many programmers that were competent programmers but sucked at IT.
Likewise I firmly believe there are programming equivalents of fry cooks in our industry, generally those “consultants” who’s main focus is to do one off Sharepoint plugins.
I saw the video before (I’m a big fan of CGP Grey’s videos).
I find it mystifying how people think programming can’t be automated. It IS being automated. This is what higher level languages, DSLs, visual programming, Excel, … are doing.
It’s making programming either simpler or more time-efficient, which in turn leads to fewer people needing to do the simple stuff. Applications are becoming more and more complex and this keeps the demand for skilled programmers up. But like with any skilled profession, at some point technology will catch up, and there won’t be a demand for a large quantity of programmers. There are already plenty of self-learning systems out there that would have required hand-crafted customizations 5, 10 or 20 years ago.
I love programming, and it’s pretty scary to think about our profession becoming obsolete or in lower demand. But this is going to happen to all fields. There will be a lower demand for human time and effort everywhere eventually. I hope our societies will grow to be more tolerant and inclusive of the chronically unemployed, because this group is only going to grow.
And the enormous current demand for programmers is going to result in the profession becoming obsolete sooner rather than later, as invariably it will be some programmer who codes us into unemployment!
In my workplace I am the only programmer. When somebody mentally categorises me as an “IT guy”, I’m not outright offended, but I do accept that this person has no idea about what my role is, what my skill-set is, or that there is more than one job description in the “IT” industry. This isn’t too bad - after all I tend to lump them all in the “academics” group. (So you lecture or research or deal with accrediation or something… I don’t know and don’t really care, sorry).
However the thing I do find frustrating, more than offensive, is that these people almost inevitable then come to me for help with their “IT” issues. Everything from connecting their blackberry to the wifi, how to cut and paste in Word, asking if I know where the spare toner is for their photocopier, and more. Those are all real examples from this year, and there’s only a handful of people in the office.
The worst part isn’t that the work is “below me” or some such, it is that it’s an interruption. If you have a difficult problem to solve, you may need to spend hours understanding all the relevant moving parts, and assembling an accurate mental model so that you can reason about what is going on and how to approach the problem. At this point you desperately need to focus before you lose it. It’s hard to be polite to someone who interrupts this to ask about some IT issue that is not your job description at all, but hey, you work in IT, right?
As someone who grew up programming, went to school for programming, and has never known a professional environment where programmers were anything but unreasonably valuable, this is all that comes to mind reading this post.
Although I do appreciate the sentiment that other careers are hard, and many programmers forget that.