QUOTE(skeeterses @ Mar 11 2006, 03:47 AM)
Nobody wants to pay or borrow $50,000 for college only to find himself working for less than $10/hr. I've seen some of the bids for projects at RentACoder.com and have come to the realization that there are only 2 feasible ways to make money in the Software Business. Either do someone's homework at RentACoder.com for $2/hr or be fortunate enough to have enough certifications AND experience to land that $60K job at a large corporation...But when most of the local jobs are Walmart jobs, and the good computer jobs are in India, it's extremely difficult to move up the ladder or travel to where the jobs are....And then there are things like the astronomical cost of education in America and the frivolous taxes that poor people have to pay. All I'm asking for is a Level Playing Field.
I can sympathize with being poor. I've been there. But really, that's not a sufficient excuse. Poor people also get all sorts of tax breaks, like the EITC, and free help on their tax returns. They don't get hit by the AMT and stuff like that. Taxes should be the least of your worries. The rest of your response demonstrates just the type of shallow thinking that leads to non-competitive "programmers" in the US. You know what the best thing is that happened to people in your position? The Open Source Software movement. Here is an international forum in which you can effectively get an unpaid internship with global visibility. If you aren't taking advantage of that opportunity, you really have nothing to complain about.
You think that getting a college degree makes you qualified to be a professional coder. Well guess what? So do the 50 other CS grads in your class, and your local college town obviously doesn't have the industry demand to support that assumption. And if you think that certificates are at all useful, then you've
really been sold a bill of goods and haven't thought critically about the process. Americans think that life is like high school: everything is structured for you and there are processes that are "supposed" to happen. You get a degree in your field, you are "supposed" to get a job in that field. Uhh...no. That worked for your parents, because when they got their degrees, they were in maybe the 10% of the work force that had ones. Back then a degree meant something. Today, a college degree is more like a high school diploma a generation ago: it is a necessary but not a sufficient condition for employment. Now to get guaranteed employment, you need a post-grad degree.
So what can a person in CS do with just a 4 year degree? Plenty. In fact, if you want to save money, don't even bother with the degree. Let me ask you this...when you were studying CS, did you ever write code that wasn't necessary to complete a class assignment? Did you ever learn technologies that weren't part of the curriculum? Is programming a hobby as well as an occupation? If you answered "no" to any of those questions, then the only way you can expect to get a CS job is to know somebody on the inside. To get a job that won't be stolen by an offshore Indian, you have to be a downright mercenary. You have to realize that "the system" don't work like it used to, and create your own "system."
That means you have to make a name for yourself. And with the popularity of the Internet, that is easier to do than ever. It is almost pathetically easy. But it still takes hard work to get there. I've said it before and I'll keep saying it...anyone can become an expert in
something. That's what you have to do. Differentiate yourself from the market by making yourself an expert. It really doesn't matter what you're an expert in, because the topic of your expertise is only of secondary import. What is significant is the dedication and skill required to obtain that expertise, and that is what will get you the recognition.
If you ask me, one of the gold standards of expertise in the programming industry is participation in
Boost. If you don't know C++, learn it. Write programs in it. Don't take a class on it or look for some kind of certification. That's a waste of time and money. Earn your knowledge the hard way. Once you have a solid handle on the language, read Boost regularly. When you get to a point where you can understand a library without asking questions all day, try to make a contribution. If you can get your name on a Boost library, as an author or even just a contributor, then I guarantee you there are hundreds of companies out there that would be more than happy to give you a nice job. But it doesn't even have to be as difficult as that. There are thousands of OSS projects out there, and many that are highly respected. Get on any of those, make a significant contribution, and put that on your resume. Getting to that point will teach you all sorts of other technologies along the way. But above all, don't be afraid to learn something new. Knowledge is your best weapon in the vicious employment landscape, and most people enter that arena embarrassingly unarmed. With the Internet, an absurd amount of knowledge is outright free. I dare say you could get an entire 4 year CS education over the Internet without paying a dime (and I
don't mean some distance learning program!). And it would probably be of even higher quality than the kind you'd pay $20-50k on.
The other problem is that people assume they should start higher up than is realistic. Part of being a mercenary is taking entry level jobs that you think are "below" you. You have to build a reputation for being a hard worker. Find a company you want to work for and just get your foot in the door at an entry level, even if it isn't technology-related. I know lots of people who have migrated to IT that way, and your ceiling is only defined by how hard you are willing to work. Another tool is recruiters. If you can convince a recruiter that you got skillz, you can get some really nice jobs. The only trick is that you want to move to a decent sized city to take advantage of that, but you have to be
willing to move to such a city, or commute there. If you think you should be able to get an IT job in a city of 50-100k people, then you're wishing for a pot of gold at the end of a rainbow. There just aren't enough technology jobs in the country for that to be realistic, outsourcing or no.
Finally, you have to play the corporate part. You have to get along with The Man. The Man is kinda stupid, kinda arrogant, kinda annoying, but he holds the purse strings. If you come off as a solo mercenary in interviews, or someone who doesn't play nice with others, no amount of skill will make someone hire you. If you don't look the part, you won't get a second interview. A certain amount of sucking up is necessary until you establish your reputation. Then you will be the one demanding respect. But until you break into the industry, you have to recognize that you're a peon, and play the part to a tee.
All that considered, I will say that the computer industry is not for everyone. There's lots of people who got into it in the 90's because they saw the dot-com bubble. And there's lots who got purged in the early 2000's because their lack of skills suddenly came to the fore when the bubble collapsed and the market became a lot more competitive. I think that's great. There's so much bad software out there that I wonder if enough purging has been done. I feel no sympathy for overpaid bad programmers without a job right now, because they give the rest of us a bad name. But for motivated individuals who are willing to work hard and be a mercenary code monkey, the sky's the limit. IT is an industry with an absurdly high ceiling, unlike many other lines of work. The primary complaint about IT as I see it is that people are being asked to work harder and know more than they think they should have to. Well, that's not a problem with the industry. Free markets are pretty tight when it comes to requirements. The problem is in the psychology. It's that mentality of entitlement that makes people weak and non-competitive.
Everyone faces challenges, but the winners are people who look at obstacles and see them as opportunities for improvement, rather than excuses to complain. Nobody handed Bill Gates Microsoft on a silver platter. You never saw him complaining for lack of work because he didn't finish his $60k Harvard education. Bill may be evil in many ways, but you have to respect that the man is a fighter and an entrepreneur. If you want to succeed in IT, you have to do the same. I'm personally glad that the US is being forced into globalization along with the rest of the world. We need India and China to root out the bad coders among us and show just how good the good coders in the US really are.