Quote: (12-20-2011 06:33 PM)RichieP Wrote:
What do you guys think the future of programming is, particularly for freelancers?
I've been considering learning a programming language or two so I can take on some freelance jobs and boost my online income; but I'm wondering if over the next few years I'd just be competing against guys from India/China who will outwork me and for much cheaper. What value does the western-educated person add, if anything? Will all app development be outsourced in the next 10-20 years, or is there still gonna be a big gap between what an outsourced Indian/Chinese coder and a western programmer can offer?
It is actually a great time to be a freelance programmer now, and I only see it getting better in the imediate future.
The thing to understand about freelance projects is that one of the key issues that can mean the difference between success or failure of a project is COMMUNICATION. In this area we, as native English speaking coders, have a HUGE advantage. When I first started doing consulting/freelancing one of the biggest sources of revenue was fixing projects where the owner tried to go on the cheap and hire guys from India or China. Inevitably there were tons of mis-communications with the project and the end result turned out to be not what the client wanted.
This is not to say that there are no skilled programmers in India. There are tons of them. It is just that many/most of the best have jobs with the Bangalore campuses of Microsoft, Oracle, and Wipro. The days of being able to hire a top level Indian coder for $5 an hour are over. Now, for that $5, you are getting the equivalent of some dude who took a few programming classes at a junior college, and couldn't find a job at one of the top firms.
Also, one of the ways that these Indian shops try to mitigate these problems is by having a manager/liaison who is very proficient at English and have him be the point of contact for the client. The problem is that this additional layer of overhead costs money. Also, every time you add an extra layer between the client and the coder you run the likelihood of playing the game "telephone", where the message gets distorted as it travels from person to person.
Over time, especially for less cookie-cutter type problems, it becomes quicker and easier to just hire an American (or other western nation) programmer. I got started in programming back in '99. For those of you who don't remember, after the dotcom crash people proclaimed that the American programmer was dead because he could never compete financially with Indian programmers. It's been 10 years since that proclamation. How many American programmers with up to date skills do you know that are unemployed?
I was resentful of the Indian programmers when I first got into the business, because back then EVERYONE was trying to outsource EVERYTHING, and it was hard for a programmer without a CS degree to find that first job. However, now I am grateful to them. THOSE INDIAN PROGRAMMERS got companies to become truly comfortable with the idea of employing contractors who telecommute, as opposed to requiring the programmer work on site. If it wasn't for those Indian programmers, I would probably be working in a cubicle, wearing a short sleeve white shirt and tie like Dilbert. Instead, I am setting up my next multi-month trip to Latin America that was made possible because I can work where ever I have a laptop and an internet connection.