Fog Creek Software
Discussion Board




Outsourcing & Programmer Retraining

Outsourcing advocates say that what programmers need to do is get retrained.  I have a MSCS, and because I've been working primarily in VB for the past four years, I'm having a heck of a time getting a stupid Java job.  If industry doesn't think that with an MS, I have the ability to retool myself for a Java programming position, how the fark am I going to convince industry that I should get that cool genetic engineering position with no education whatsoever?!?

anon
Thursday, February 26, 2004

Amen Brother!

Let alone the fact that College education takes a lot of time and when you get out of it you're too old to be hired by most companies.
What the heck are we going to do, beyond moving to India or China?

RP
Thursday, February 26, 2004

The problem is that the tools of programming change so rapidly that they dominate reusable skills (like good UI design, architecture, etc.).

Imagine where doctors would be if THIER tools (scapels, etc.) changed completely every 3 years. Or imagine tht mgmtn told them to start using thier LEFT hand.

We have to start focusing on REUSABLE skills or we're going to be in a viscious treadmill forever.

It's incredibly frustrating.

The real Entrepreneur
Thursday, February 26, 2004

Industry does not necessarily think you can't learn Java (or whatever). They just don't want to pay you to learn it.

njkayaker
Thursday, February 26, 2004

The secret is to retool at your job.  I helped a sysadmin learn Java right before he was laid off, so he could claim it.  He actually wrote some nice programs.

If you have an MSCS, it's really worthwhile.  Just spend like a couple hours a week writing something in Java instead of VB or Perl.  And look around the community, you can learn a lot about the tools.  You already know the concepts, you just need the easy trivia.

And the added feeling of security will probably keep you more productive.

Tayssir John Gabbour
Thursday, February 26, 2004

The OP is correct and the subsequent advice to "learn Java" misses the point. Industry selection criteria are seriously flawed. The question is why this is so, and why do programmers tolerate this situation.

The medical analogy would be demanding that surgeons have experience with particular brands of scalpel or monitors, or maybe particular types of people. As we all know, that's not how it works in medicine.

x
Thursday, February 26, 2004

Of course it works that way in medicine, just use the right analogy. No one would hire a neurosurgeon for a proctologist position and similary no one will hire a VB guy for a Java position. The point we miss is that while learning a language is relatively easy and trivial, learning the platform is not. Using a different brand of scalpel is trivial, learning a different branch of medicine is not.

The reality is when HR says they are looking for Java skills it is rarely just Java the language, what they really mean is someone fluent in the Java platform which includes both language and corresponding frameworks. As another poster mentioned, unless it is a rank beginner position no one is interested in having you learn on the job. The market is so saturated that companies expect you to be productive when you start.

It sucks and I've felt your pain myself, but that's the way it is and you need to devise a strategy for dealing with it. I think the advice given to try to broaden your skill set while on your current job is spot on.

Gerald
Thursday, February 26, 2004

The outsourcing advocates who preach "retraining" are policy wonks and empty suits with business and economics degrees who honestly, sincerely believe that this work is low grade idiot and grunt work.  They have no idea. They are just saying 'retraining' because they can congratulate themselves on their honesty and toughlove. They see it similarly to telling any blue collar supposedly undeserving dumbass schlub to go back to school.

And any programmer who takes this advice to heart is naive.

The only solution to this problem is to do what the offshore people can't do and that which most geeks won't do: get out from in front of a monitor and network with people.

Bored Bystander
Thursday, February 26, 2004

Gerald, Java and VB can be learnt reasonably quickly by someone who is already a good developer. This happens all the time. Where do you think VB and Java developers come from?

The categories you nominated are precisely the categories industry uses, and which are flawed. Not only do they exclude excellent people, they also frequently lead to selection of people with superficial familiarity in the "skill," but no important capabilities.

You nominate some medical specialities, but development does not have the formal equivalent of such specialities. One day we probably will, but we don't at the moment.

x
Thursday, February 26, 2004

Anyone who can't be productive in Java within a week of first seeing it isn't worth hiring as a programmer anyway.

Learning a new programming language is simple if you understand the basics. Learning the "platform" is irrelevant - nobody memorises every little function and class Java has. That's what the documentation is for!

A good programmer is a good programmer regardless of tools - not because of them.

Sum Dum Gai
Thursday, February 26, 2004

"The only solution to this problem is to do what the offshore people can't do and that which most geeks won't do: get out from in front of a monitor and network with people."

Doesn't anyone see the irony that the best way to keep your job is to do something that is likely to make you less productive? ;)

Sum Dum Gai
Thursday, February 26, 2004

Bored, I have to agree with SDG. "Networking with people" is a stupid thing to recommend.

Who says developers don't do that now? Who says it makes any difference when senior management sniff their next $500,000 bonus and decide to send another 1,000 jobs to India.

x
Thursday, February 26, 2004

Certainly there is a difference of scale between my allegory of medical professions and technical knowledge, just like there is a difference between the scalpel allegory and technical skills. Perhaps I am being overly harsh in my assessment, the point though is that the learning a new environment/technology is not an overnight affair like using a new scalpel.

Can somebody be productive in Java in the first week, maybe if all someone does is JSP. However I strongly doubt someone could go from a VB/COM environment to a J2EE environment and be fully productive in a week. I'd say your probably looking more like 2-3 months to completely ramp up. And just to clear, by fully productive I mean as productive as someone who's been working in that development environment for a year or more, because that is who you are competing against for that job.

Also, there seems to be this feeling that "Joe shit hot VB developer" is competing for a Java job against "Billy know nothing Java guy". Given todays market, the reality is both are probably equally as good and why wouldn't the company choose the person who already has the experience in the environment they are looking for.

Bottom line, if you want a job in a specific technology beyond entry level you need to acquire the necessary hard skills before trying to get a job in that technology, either on your time or at your current employer. While I do think a good developer on one platform can be as equally good on another given a modicum of time, given how many excellent developers are currently available in any particular technology you need to have the specific skills required by the job, otherwise your already way behind the rest of the pack trying to land that gig.

Gerald
Thursday, February 26, 2004

Gerald, the requirements for most development jobs are common. Very little is dependent on the particular language. They include things like determining the requirements, designing the architecture, designing for robustness and avoiding dependencies.

Most development jobs are in teams and are long enough to accommodate the ramping up of language expertise.

x
Thursday, February 26, 2004

x,

Most places that are hiring a developer need him now. They are not in the mode of having a developer sit around learning the language and platform for a few weeks while the requirements are gathered, the architecture is designed, etc. Given today's environment, companies prefer to either hire "just in time" or late for perceived savings, for better or worse.

It also doesn't invalidate my point, given two equal people, one with existing competence in the tools your using and one without, what sane company would go with the guy without the experience? Because frankly, it is that competitive nowadays, for every Java job the OP applied for there were probably several very good candidates to choose from, why pick him over them?

Gerald
Thursday, February 26, 2004

Gerald, I don't think you understand development. The process of gathering requirements and developing a design is almost totally independent of the language. Those tasks can certainly proceed at the same time the good developer comes up to speed on a new language.

Most development contracts last from 3 to 12 months, which is ample time for a good developer to implement well in a new language. Most development jobs are staff jobs, and are for longer periods than that, providing ample time for learning.

This completely invalidates the common industry practice of rejecting good candidates who simply haven't spent a few weeks on, or developed a project in, a specified language.

Your point wasn't about comparing two people with equal capability; it was about there being two distinct types of specialists, with that specialisation being defined by the language, and not being transferrable.

x
Thursday, February 26, 2004

Neither of our allegories match up particularly well as I stated in a previous post. While the difference between technical platforms is certainly not as complex as the difference between a proctologist and a neurosurgeon, neither can it be compared to the simplicity of different scalpels.

To your second point, most reasonably sized organizations don't hire developers to gather requirements (business analysts do that) or do design (architects do that). Most organizations hire developers to develop, to implement the design and specifications gathered by others.

But fine, let's say the developer does it all in this case, it certainly does happen. While the functional specification is independant of language and platform, design and architecture is not. I don't know about you, but when I get into the nitty-gritty of doing technical design I try to take into account the underlying strengths and weaknesses of the platform (be it .Net, Delphi or Java) I will be using. If I have never developed anything of note on that platform then it can be quite difficult to do that and make sure the design will work within the technical constraints of the platform. How many posts do we see here about clueless managers and architects with zero experience in a given platform doing design? Plenty.

Anyways, the main point I was making is that it is a very competitive environment out there, not having the skills the company is looking for sets you back. If the OP does not have Java skills and everyone else who applies does, he's not competitive in that market, it is as simple as that. It's not fair, and it doesn't mean the guy is useless and can't learn the skills, it just means he is uncompetitive in that market.

In a nutshell my point is that while I agree technical knowledge and skills are transferable, it's not a one week affair and given the vast number of qualified unemployed people, in any given skill set, that are out there, why hire the guy without the skills when you can hire someone with the skills.

I don't see why the original OP finds this situation confusing. As others advised, the guy needs to get some Java skills before applying for Java jobs if he wants a reasonable chance to land one.

Gerald
Thursday, February 26, 2004

Gerald, you're not a developer, that's clear. Developers do in fact do requirements and design.

The belief that developers just implement designs that others do is a cherished belief of those who aren't developers and want to be one, but it's not true, I'm afraid.

x
Friday, February 27, 2004

X,

You're correct (interpersonal) networking does not insulate you from getting the cut when a suit, completely disconnected from the task set, decides to give another 1000 jobs the axe.

The reason you do interpersonal networking is so that when you do get sacked from Monilith-Outsourcers, Inc., you're already in tight with people who can feed you the hot tips on the positions that don't show up on the typical job hunting radar.  I'm not necessarily talking about fellow tech people either--i.e. it's good to have friends who are HR professionals.

Along those lines, is it reasonable to assume that one is safer as a dev in a small but stable company where off-shoring wouldn't even make any sense?  In our shop, it would cost more in travel and fees just to arrange a contract in a foreign country than the salary of the two developers for a year!

MacSqueeb
Saturday, February 28, 2004

Macsqueeb, are you saying that you can't fly to india and back for less than $80,000 ? Or are you saying that you only pay your developers $3000 a year?  I went to india for a month and it cost $1400, 70% of which was air fare.

 me again
Saturday, February 28, 2004

That was humor.

MacSqueeb
Saturday, February 28, 2004

>> "I don't see why the original OP finds this situation confusing. As others advised, the guy needs to get some Java skills before applying for Java jobs if he wants a reasonable chance to land one."

Did you even read the original post?  My point was that if a software engineer can't even land a software engineering position without just the right mix of alphabet soup, how is he going to get any other well paying job in the world?  The question was also rhetorical.  We all know that we'll be slingin' burgers if the bottom drops out of this industry.

(BTW, I have many years of Java skills that I can't put on my resume because I used Java in school and not on the job.)

888

anon
Wednesday, March 03, 2004

*  Recent Topics

*  Fog Creek Home