Saturday, October 31, 2009

Mission statement

I've been a programmer for nearly 10 years now. When I started out, usenet was the place to ask for help. I joined comp.lang.cplusplus, and within days had been beaten down by grizzled old Unix programmers who were horrified when I asked 'how do you create a window ?'. I wanted to learn enough that I learned the rules, and followed them, and those guys helped me a lot, I am completely 'self taught', but that just means I bought books and found people online to answer my questions. So, as I got better, I started answering more and asking less. That seems to me to be the natural order of things.

Over the years, the barriers to entry for programmers have dropped steadily. It used to be that if you didn't have a firm grasp of the basics, you couldn't possibly write all the code needed just to create and show a window. Then MFC made it a bit easier, but your program would soon enough crash if you didn't know how to manage memory, etc. Then .NET arrived.

I love C#, don't get me wrong. However, the problem appears to be that there's so much drag and drop, so many designers that create the most unmaintainable code, but that give people the feeling that they can program. Simultaneously, companies realised that it's much cheaper to hire people in other countries, rather than pay local wages. The converging of these phenomena means that today, when I go into programming forums, most of the questions are being asked by people in a particular continent, and most of them start with 'I am new to .NET' and end with a request for the code to do some task that is either reasonably complex or, quite often, physically impossible. Now, I get called a racist on these forums a lot, so let me make it quite clear - I don't believe that any race of people is innately either able, or not able, to program, or do any other task. I think that the people involved are doing what anyone would do, they are pursuing what appears to be their best option. When demand is so high that anyone who can type a little can be hired as a programmer, of course people are going to respond by accepting the job on offer. If I needed a job, I'd take any job going, too, and I live in Australia, where our standards of social welfare are such that there's no way I could ever worry about having enough food to eat, or a place to live.

Having said that, I've felt for a while that there should exist on the web, a list of examples of the sort of questions that people are asking every day, so that people in the West who are bidding for work can point people to a site and say 'this is what sort of work you will get if you decide to outsource this job.' From the code I've seen posted, as well as my brief experience with trying to outsource some work myself, I am certain that the majority of these projects either don't get delivered, or get delivered in a buggy and unmaintainable fashion. And that's not all. People bidding $50 to write a data driven website on sites like Rentacoder, are pushing down the expectations of the sort of pointy haired managers that none of us want to work for, but we all know make up a good proportion of our potential employers. If things continue the way they are, programming will cease to be regarded as a skilled profession and will get paid as basic office work.

If I have a single message, it's this. Programming is a four year science course. You can't learn it in two weeks. When someone is hired on the basis that they can type, and they hit online forums where people trying to win a Microsoft MVP award give half their lives doing the work for these people for free, everyone loses in the long run, except perhaps Microsoft.

No comments:

Post a Comment