HN2new | past | comments | ask | show | jobs | submitlogin

It's interesting that Joel purports to treat his programmer staff as professionals, yet has the same unreasonable tradesman-focused expectations that the cube farm managers have about education in Computer Science.

A graduating structural engineer has no idea how to marshal a design through the building inspector's approval process. A graduating lawyer has no idea how to actually engage in litigation. Yet those fields aren't dominated by managers whining that students should be learning "real world skills" instead of "theoretical stuff" like high physics or constitutional law.

They understand that a professional isn't an automation that gets precision machined by a training program to slide frictionlessly into their workflow. They know that when they hire a graduate, he isn't trained in the mechanics of his job (nor is he even licensed yet), and that the hire represents a commitment on the firm's part to take the theoretical knowledge he got in school show him how to leverage it for the real-world practice of his profession. They are fine with that because they have a culture -- as professions and as firms -- of respecting and investing in their practitioners.

The computing industry doesn't operate that way. All the lip service it gives about 'professionalism' is, as far as I can tell, entirely driven by a desire to ensure that programmers remain exempt. Why is it that the manager class at development firms is dominated by non-technical MBAs? Why are development firms not set up so that programmers are partner-tracked associates? I can't think of any real profession where that's not the default configuration for a firm. And most apropos here: why do they expect their supposedly professional workforce to receive trade skills from their university education programs?

I think people like Joel need to quit attacking universities until they can get some consistency in their own views of their employees. Either programmers are the skilled tradesmen we're currently treated as. In which case, the exempt status should be removed and the industry should come up with a tradesman's curriculum. Or they should accept us as professionals, and start treating us that way.



It would be nice to shunt all the blame off on MBAs but programmers have much of the responsibility to shoulder themselves.

How many times a month does news.yc have a thread where people debate whether you need any education whatsoever to do our job? If we can't even decide ourselves no wonder others think anyone can do what we do.

Another systemic problem in our industry is training. "Training" at most companies, if you're lucky, is a small budget for buying books on amazon.com that you can bring home and read on your own time. Lots of companies will tell you (especially if you're a new grad) they train their new employees and then, once hired, you're shunted off into a cube and the "training" turns out to be an overworked co-worker who comes over to tell you how to set up your workstation, where the source code is oh and if you have any questions just send me an email.

Combine the above with a culture of acting like add-afflicted children (oooh shiny erlang, let's rewrite everything in erlang! Rails is sexy. I'm a rockstar!), and the MBA types distrust us and view us as people incapable of managing ourselves, people that need proper structure to deliver anything at all (Joel's last statements).

At my last job, soon before I left and after I'd handed in my resignation, a manager (not my manager but another) came around and congratulated me on how much work I'd gotten done in my last couple of weeks, with the obvious subtext that he was surprised I did anything at all since I'd resigned. It was insulting. If he had seen me as a real professional, there's no way he would've said that but he obviously didn't.


What seems most odd to me is that Joel has previously written the almost exact opposite viewpoint:

http://www.joelonsoftware.com/articles/ThePerilsofJavaSchool...

He even links to this in the current article! I suppose he is trying to make a more nuanced argument, but it does not come across well. He seems to be saying that universities need to be a little more "Java School"ish than they are now, but not too much...?

I think he should better clarify just how much Java School there should be in a good computer science curriculum.


Or he could not and we could all just stop reading Joel. Seriously, I'm done with both him and Atwood.


Absolutely. I loathe the emphasis on being an 'X programmer' in the software industry. I've never met anyone who described themselves as an 'Autocad engineer'.


There is a management culture of referring to technical people as "resources", e.g. this person is a "Java resource" and we'll need 3 "Linux resources" on that project.

They sure don't like it when I call 'em "Powerpoint resources".


Tell me about it. The firm where I'm at used to be quite small, and MBA talk was non-existent. Now project managers use it a lot. We engineers used it ironically at first, but now it's starting to taint us ...

Powerpoint resources is a great way to put it. I'll be sure to use it.


It's very de-humanizing. Even in places that claim otherwise, they tend to treat technical staff like interchangeable parts, rather than people. And they wonder why their best folks tend also to be the least loyal.


LOL. Quote of the day. This made me happy. I laughed -- actually, more than that, I snorted.

Thank you!


I've never met anyone who described themselves as an 'Autocad engineer'.

Every engineer will describe themselves as an 'X engineer' where X is equal to automotive, or electrical or structural or something similar. No engineer is going to think that just because they're really good at design underwater oil pipelines, they'll be equally awesome at designing cars.

Many programmers on the other hand seem to be of the opinion that once they've learned how to 'program' they'll be equally adept at writing ray tracers, TCP/IP stacks and video editors (as long as they get to use their favourite language).


My post was ambiguous, but I didn't mean to say that engineers don't specialize. The difference is that an engineer's value lies in their understanding of a technical domain and skill in analysis and design, not the particular tools they use.

It's perfectly valid to describe oneself as a 'web developer' or 'systems programmer'. What bugs me is calling yourself a 'C++ programmer' or a 'Ruby hacker'. Emphasizing skill with a tool is the mark of a tradesman - it abets the industry dysfunction of viewing programmers as interchangeable resources who should be slotted into a project with minimal investment.


While I agree with everything you say, I think one has to accept that not only are many programmers tradesmen, but many of them are happy being tradesmen. I know people who won't consider any programming job where they won't be working on php based web sites, because that's all they know and they have no real interest in learning anything else. Those people are "php programmers" and can be slotted into great number of projects with minimal investment.

What is needed is not to get annoyed at these peoples existence or their approach to programming, but to find a way to differentiate between them and other types of programmers.


They'll be differentiated by the disappearance of their job overseas...

People who fashion themselves into interchangeable parts shouldn't be surprised if they're swapped for cheaper substitutes.


The sad truth is, average and below-average developers actually need considerable training to learn a new programming language. They can't just look at the specs and read some tutorials to get an understanding of the conceptual and syntactical differences and then start hacking. They need to be trained.

Also, to counter your 'Autocad engineer' example, commercial airline pilots can be described as a 'Boeing 747 pilot' or an 'Airbus A318' pilot. You need certification to fly a specific model and can't just hop in and start flying a different model.


> commercial airline pilots can be described as a 'Boeing 747 pilot' or an 'Airbus A318' pilot.

I don't think that's a good analogy.

Pilots are operators, not creators. What they do is pretty much defined by what devices they use to do it.

Engineers, in contrast, use tools to create new things, and are defined by what kinds of things they create (e.g. civil infrastructure, electrical systems, computer architecture), not what tools they use to create them.


Actually, none of the private or commercial pilots I've known have ever referred to themselves that way.

Granted, my sample size is limited, but I think that every one of them would be as annoyed at being referred to as an <aircraft x> Pilot as I am at being referred to as a <language x> Programmer.


Below-average developers aren't really software devs. They're requirements engineers who use a semi-formal spec language.


Well, in their defense, while someone may not be called an Autocad engineer, they can certainly be called civil engineer focusing on concrete stresses. Calling them an Autocad engineer would be like me calling you an eclipse or vi programmer. Ultimately I think we're confusing tool and end product here.


I think that's sort of the point being made -- you might not find eclipse programmer, but you'll find plenty of Java or .NET programmers, and those are tools also.


I think you're missing the original point I was trying to make. Java and .Net aren't really the tools, they're the medium in which you work. Just like that civil engineer understands the trade offs invovled with different kins of concrete ad using it in different ways, the Java programmer understands the trade offs involved with the API and VM, in addition to generic CS tradeoffs. Look at the following two fake resume excerpts:

Bob T. Builder : Civil Engineer with Emphasis in Concrete Stress ---Skills--- Autocad : Industry Used Physics Modeling Software

Suzie M. Hacker : Java Programmer ---Skills--- Eclipse : Ant

They seem roughly equivalent to me...


I know a lot of people who put "Eclipse" and "Visual Studio" on their resumes.


Learning to really use Eclipse or Visual Studio well takes a surprising amount of time. So, IMO it's reasonable padding for a resume, but people don't call themselves Visual Studio developers.

What people most often identify with seems to be the frameworks they are using. So you will see someone call themselves a .Net Developer not C# .Net coder even if that's what they do. They don't know all of .Net but they feel confident they know how to approach most .Net issues and they happen to use .Net and Visual Studio.

I could have looked at the Spring stack or Coca, but I think the point still stands. Even if someone is calling themselves an OX X developer they are talking about knowing the same type of thing as a .Net developer.


OTOH, being called "an emacs programmer" can be interpreted as a compliment ;-)


A graduating structural engineer has no idea how to marshal a design through the building inspector's approval process. A graduating lawyer has no idea how to actually engage in litigation.

Why not, looks like a gap in the market.


Hey. That was an honest question.

Seriously, it looks like there's a market for training professionals to do the vocational side of their job.


The point of his post is that the market opportunity doesn't exist because the firms professionals are expected to enter take care of that domain-specific training themselves.

For a very long time there has been a "tradition" of sending newly graduated engineers to work on the manufacturing floor, or in product testing for a while so they get background in the business before actually having to design anything. Such a tradition seems to be missing in software development.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: