Should Younger Developers Be Paid More? 785
jammag writes "A project manager describes facing an upset senior developer who learned that a new hire — a fresh college grad — would be making 30 percent more than him. The reason: the new grad knew a hot emerging technology that a client wanted. Yes, the senior coder was majorly pissed off. But with the constant upheaval in new technology, this situation is almost unavoidable — or is it? And at any rate, is it fair?"
Keep up or shut up (Score:5, Insightful)
While I agree that experience should, of course, count towards salary--I've also encountered a *LOT* of IT staff in general and programmers in particular who stubbornly refused to learn anything new after they left college (or shortly afterward). They fell further and further behind and became more useless every day. I have absolutely no sympathy for someone who works in a field as fast-changing as a computer-related field and refuses to learn new skills (including, *GASP*, on your OWN time). These are not professions in which it is cute (or acceptable in any way) to be the old curmudgeon.
Would you want a doctor who still exclusively used surgical techniques from the 50's to perform your open-heart surgery? Would you want a mechanic who hasn't learned anything new in 20 years to work on your Prius? Well, the IT world changes *way* faster than either of those fields.
Re:Keep up or shut up (Score:5, Insightful)
the IT world changes *way* faster than either of those fields.
Things change fast sure, but by that token, not all of the changes are permanent or important. I'm not averse to learning new stuff if it's proven, but I don't go running after new stuff simply because it's there. Old programming languages still work fine for new tech if they have appropriate libraries, etc.
Re:Keep up or shut up (Score:4, Interesting)
Re:Keep up or shut up (Score:4, Insightful)
Eh, I'm making enough money already, and I enjoy my job. I'd rather have a job I enjoy than always be chasing after bigger bucks, and having to spend all my evenings learning new stuff rather than just having a life. Like I said, I'm happy to learn new stuff if it's proven and useful, but since going to University and then starting work, I have lost interest in doing my own home projects. I really enjoyed having my own projects at home as a teenager, but I have other things I want to spend my time on right now.
Re:Keep up or shut up (Score:4, Insightful)
Re:Keep up or shut up (Score:5, Insightful)
Well, ask yourself this. If your boss came to you and said "We're working on a new project and I want you to learn how to program for the iPhone" would you argue with him for an hour on how the iPhone sucks, or would you embrace it as a new opportunity to learn something new?
That's the difference between someone who's intellectually curious (and always looking to better themselves) and someone who's dug their heals in and is becoming more a liability every day.
Re:Keep up or shut up (Score:2, Interesting)
I would just get a toolkit that turns a language I already know into something that will run on the iPhone. We call that lazy and smart.
Re:Keep up or shut up (Score:4, Informative)
There are a growing number of toolkits that support the iOS platform regardless of Apple's dicatorship. Perl, Python, Ruby, even C++ can be used these days.
Re:Keep up or shut up (Score:3)
Re:Keep up or shut up (Score:3)
I think if you don't write a target-specific GUI, your observation is going to be correct. E.g., back when Java was usable for programming the Mac, if you wrote a Mac App in Java, it was obvious to everyone that it was programmed in Java, because the Java UI flow is different than the Mac UI flow. But you can still write everything but the view in the language of your choice, and write different views for different platforms, and get a satisfying experience on all platforms. If the bulk of your code is in the GUI, that's not going to be very comforting, but if your application actually *does* something, it's probably fine.
Re:Keep up or shut up (Score:3)
Re:Keep up or shut up (Score:3)
"How" you program in C or VB is vastly different than the experience in something like Haskell or smalltalk. It's vaguely similar to the "how" in python, that's still really a completely different way of thinking.
Different languages are different tools for different jobs. Trying to program in clojure the same way you program in C would be like trying to hammer a nail with a printing press.
I applaud your willingness to dive in and learn new stuff. But Objective-C makes a lot more sense once you realize that it's just a preprocessor that adds smalltalk features to C. For some reason, none of the introductions mention that.
Re:Keep up or shut up (Score:5, Insightful)
The big problem is...you're presuming that the Senior isn't intellectually curious and they're basing the pay discrepancy on just that alone. Neither of which are likely to be correct a assumptions.
Re:Keep up or shut up (Score:5, Insightful)
Be that as it may, it's nearly always the case that you can increase your salary faster by keeping your skill set current and job-hopping than by staying in the same job, whether you keep your skill-set current or not. When you get a response like this from your management, the right thing to do is to figure out how to make yourself more valuable, and *change jobs*. Your management already knows what you're worth, and the only way they'll ever learn otherwise is for you to decide to leave. When you do that, they will either correct the discrepancy or let you leave.
Re:Keep up or shut up (Score:3)
Senior people can often negotiate for benefits. I started with 3 weeks-- 5 years earlier than I would get them normally.
Re:Keep up or shut up (Score:5, Informative)
Re:Keep up or shut up (Score:3)
Re:Keep up or shut up (Score:5, Insightful)
"Nobody needs to know what you make, and honestly it causes nothing but trouble."
Specially for the company.
Information is power. The company knows what each and everyone makes, you do not. More bargaining power for the company, less bargaining power to you, little bee.
Salary details publibly availaible. (Score:3)
The company knows what each and everyone makes, you do not. More bargaining power for the company, less bargaining power to you, little bee.
In some socialist countries, net taxes are public information. From this it is trivial to estimate the base salary of anyone. Neighbor, co-worker, boss, prime minister.
Makes it harder to have huge salary gaps in a company as people will check the salary of the boss.
Re:Salary details publibly availaible. (Score:3)
Re:Salary details publibly availaible. (Score:3)
It's aproximately doable, but by no means "trivial". Because to estimate, you need to know the deductions, which include fairly big ones such as mortgage-interest and childcare-costs (both of which are movable between married partners)
For example, here is the data on me: http://skattelister.no/skatt/profil/eivind-kjorstad-31230853/ [skattelister.no]
This doesn't help you a lot. It does give you a *minimum* as my real gross is certainly atleast the taxable-income plus the minimum deduction that everyone gets. so when this says 281.597, you can look up the minimum deduction and conclude I earned *atleast* 350.000 in 2009.
But you don't know if I got this all from one job, or from several. You don't know if some of it was investment-income. You don't know if my deductions for interest paid, childcare and other stuff was 50K or 150K.
In short, you can make a guesstimate, but the error-bars are large enough to make it fairly useless for salary-estimation. You'd basically end up guessing that my monthly gross in 2009 was probably in the 30K to 45K bracket. This is correct -- but it's much too imprecise to be useful. If your job is similar to mine, you have similar skills, and you're paid 37K - do I earn 7K more than you, 7K less than you -- or the same thing you do ?
But employees should do something different: talk to oneanother, including about salary. Your employer knows everyones salary anyway, it's to his advantage that he has all the knowledge, and you have none of it.
Besides, even the well-paid ones have a interest in seeing the poorly-paid ones catch up, because being well-paid relatively speaking, has an associated risk, namely that the company starts considering you "expensive" relative to the others.
Re:Keep up or shut up (Score:5, Interesting)
That seems to be an old tried and true way. You count on the people you have staying even if they're paid less; they have some "inertia" they need to overcome to move. You hire the young guns with big $$ and as soon as they sit down their pay freezes.
I used to work for an outfit where that was more-or-less policy; you quit, if really they needed you they hired you at consultant wages and then negotiated new compensation.
It got to be a game; you'd game the system to where only you had the critical information for that critical project and then, with deadlines looming, you'd quit. The PHBs hired you back in a panic with a nice big raise.
Of course, that meant that no one shared any information and the atmosphere was completely toxic, but that's how you got raises.
Re:Keep up or shut up (Score:5, Insightful)
There's also a lot of people in IT who are too timid to ask for raises, and aren't being paid what they're worth. That's a factor.
Re:Keep up or shut up (Score:5, Interesting)
This is why it is almost essential to not only keep up your skills these days, but also consider switching jobs every so often, at your own pace. It is possible to get a decent raise every so often, but honestly, most of the time it is the old 3% raise to keep up with inflation. Real raises come from offers from companies that you have spent a good long time looking around for while you work at your current job. If you are not at least passively looking for a new job at all times, you're doing yourself and your career a major disservice.
And yes, loyalty in corporate America is dead and buried. No one says this, but everyone these days gets really excited when new talent shows up from the outside. Once you have been there awhile and collected a few merit raises, you become part of the woodwork. The senior guy in this article became part of the woodwork, no matter how skilled he is, no matter how much he really did do to keep himself up to date, if you are part of the woodwork, you get taken for granted. They know they can keep paying you 3% raises every year because you've taken those raises every year and not quit.
When you go looking for new jobs, you find people who may well need your skill set and are willing to pay for it. One company's curmudgeon is another company's rock star. If I was this guy, I'd have not complained in the slightest. I'd have figured out what this kid knew, taught enough of it to myself to be able to truthfully note it on my resume, and then went somewhere that needed that skill and got myself a cool 30% raise, because I now actually know that I can make that sort of money for that skill.
Pay is based on experience but also on skills and the demand for those skills. Java programmers are a dime a dozen, but if some company really, really needs someone who is a FORTRAN god, those people will make good money no matter what age they are, because chances are that demand outstrips supply (of coders).
It reminds me of when I was in college and I was hired as a research assistant simply because I was *willing* to learn FORTRAN. I had never seen the language in my life and I wasn't exactly a CS student to begin with. I said "I'll make it happen" and I went to the library, took out an ancient FORTRAN book and taught myself enough of it that I could pull stock information off of a tape system hooked up to a VAX. This was in 1995, so was not quite as crusty and ancient as it would be today, but it was still damn old. Compared to my other work-study jobs, it was both easy and well-paid. And that was with zero experience, just plain demand and willingness to try.
Which reminds me. I am still surprised that I actually liked FORTRAN as much as I did. I thought it would suck ass, but it was actually pretty cool, for what it was.
Anyone out there willing to pay $200K for a FORTRAN coder? Experienced. :)
Re:Keep up or shut up (Score:3)
While this is on point, generally, it's off topic from TFA.
Market forces are market forces, no arguing that and if you get left behind then so be it. What's insidious though, and what's discussed in TFA is how short-sighted many companies are. The big boss sees the cool new technology and opts to pay market rates that blow out the current internal rates to get it. What both he and his immediate underling (the PM here) failed to realize is that there's at least TWO key components to their new project (A) the hot new technology and (B) the deep-core knowledge of their current systems. (A) can be evaluated in the open market (B) can not be and if it wasn't for the senior programmer complaining, the company wouldn't have bothered to make an adjustment for him.
Now, programmers have choices... keep current with market skills and spend time doing this at the expense of not diving too deeply in the core guts of your current system OR maintain current skills and spend time learning the core system really well. Thing is, if you chose the latter your marketability is shot, you only know your original skills (but perhaps a bit better), but by the same token your value to the company (as long as that core system remains central to their success) also goes up. In a fair world you'd be paid based on your value to the company, cool-new-skills are generally valuable while deep knowledge of systems is only valuable to YOUR company, but still valuable. However, this rarely happens. Managers up the line tend to discount the latter and programmers specializing in the latter backed themselves into a poor position as the knowledge they learned doesn't translate into marketability in the wider market place and so WILL get a pay-hit if they leave (but the company would be hurt too).
And if you think the ideal programmer would do both, new skills and deep knowledge of current system, IMHO that's not feasible, if I had time to do both I'd still prefer to do more of the former as that is the more generally marketable skill and the one that's easier to convince management is the more valuable.
I think the company in question is a cut above average. They DID realize their mistake and took steps to correct it, but unfortunately they still made that mistake.
Re:Keep up or shut up (Score:5, Insightful)
This is a neat discussion. You can guess someones opinion with surprising accuracy based only on their user id.
A senior developer should not only be able to pickup a new language very quickly, but also write more competent code than a recent college grad who has used the language in class for the last 3 years.
If your senior developers don't meet this criteria, you probably should have sent them packing years ago.
Re:Keep up or shut up (Score:3)
Mod parent up!
I'm the C wizard at my (small) shop. We've got two other C programmers. We've also got a couple of C# programmers, but our flagship products have to compile on Windows, Linux, AS400, and IBM's big iron. C# do that?
But I have to keep up with client feature requests. I don't get any time to learn C#. Yeah, I've played with it on my own time, but I've got a family, so my boss gets very little of my own time. I know the syntax from running QA/debugging on other people's code, but I don't get the exposure to the libraries.
If it became necessary for me to spend even a third of my time developing in C#, I'd be up to speed within a month. Do I have to wait for that to get a raise? Did I mention I'm responsible for our flagship products?
Re:Keep up or shut up (Score:4, Insightful)
Perhaps this is an excellent example of the difference between the veterans and the kids with the new toys.
The kids with the new toys focus on potential. C is yesterday's technology to them, underpowered and inefficient. The benefits C# offers are compelling. Their default is optimism, choosing C#.
The veterans focus on reality. They have seen it all before, and want to see real evidence before switching from tried and tested technology to something new. C is the safe bet to them. C# has potential but the risks need to be properly understood. The veterans' default is caution, choosing C.
Both groups think those in the other are ignorant and haven't learned enough about C# to make a properly informed decision, but the meaning of "enough" differs, and the veterans carry on getting real work done in the meantime.
Re:Keep up or shut up (Score:3)
It depends on the environment and problem domain, but I can say from personal experience that C# and Visual Studio are significantly more productive than C and vim.
Moving further up the "higher level language" ladder to something like Python keeps increasing productivity.
I've worked with the veteran C programmer who couldn't be bothered to learn C# (even though, theoretically, that was the language we were using). Yes, he chugged steadily along, getting stuff done. Going about 1/3 the speed he should have been, creating code that absolutely no one except him could maintain.
I'm not positive he was in the "obfuscation for the sake of job security" camp, but I definitely got that impression.
(For the record, I'm doing C++ these days, working on a code base that was written by another old-school C programmer. Mostly in Portuguese. It's much easier to deal with).
Re:Keep up or shut up (Score:3)
Re:so iphone then ... (Score:4, Insightful)
If you are learning ruby to implement the exact same things you implemented before in another language on the same platform...when the world decides that it doesn't want ruby anymore, the time you spent learning it is much less valuable.
Re:Keep up or shut up (Score:5, Informative)
not all of the changes are permanent or important
So true.
The industry is full of fads, new names for old concepts, and hucksters selling the same snake oil. All too often the new kid comes in all gosh and golly about something the old fart has known under a different name since the Pleistocene.
Still you have to lean about these things to even make that assessment. The older programmers have to at least be conversant with the newer languages, IDEs, file systems, databases, or platforms to be able to exercise all of that accumulated experience. You can't judge what you refuse to learn about. You can't delegate the acquisition of knowledge.
It is virtually NEVER worth while changing programming languages via a re-write. More bugs will be introduced in the re-write than utility gained. But the same can not be said about platforms or database technology.
If the senior staff have an education allowance in the company budget, and fail to use it, shame on them.
If on the other hand the company is just getting the latest techniques and theories by hiring kids with no real world experience, then they will probably pay dearly for the privilege.
Someone else paid for that whipersnapper's education. It looks cheaper to HR. But the company already paid for the old goat's experience, scars and all. He walks, and the kid is at sea.
Experience is all too often undervalued. Inertia has its place. Its the older staff that can distinguish opportunity from pitfalls. But opportunity does knock. Softly.
FORTRAN (Score:5, Informative)
Old programming languages still work fine for new tech if they have appropriate libraries, etc
I have a perfect example on how wrong you are: Fortran.
I do a lot of engineering software and a lot of that is in Fortran. A few years ago I migrated a system with 400 thousand lines of VAX-Fortran code to Linux, using g77. Recently I had to install this system in a new computer, running Ubuntu Lucid. To my dismay, I learned that Lucid doesn't have the g77 package anymore, the gcc compiler suite has been "upgraded" to gfortran. And gfortran does not support the VAX extensions that g77 did.
Luckily there's still a way to install g77 in Lucid using the Hardy repositories, but how long will this last?
Had the old engineers said, "OK, Fortran is dead, let's just keep a legacy compiler to run old code" everything would have been fine. But no, they insist on "improving" Fortran by putting C language features, e.g. pointers, into it. Why can't they just learn to program in C and let the old compilers do what they are good for, which is running legacy code?
I once signed a petition to retire Fortran [fortranstatement.com], where the best reason why experience isn't always welcome is stated: "In order to best serve future generations of scientists who rely on numerical simulation, we propose that FORTRAN be retired, allowing its successor(s) to evolve in the absence of the legacy FORTRAN juggernaut. Until FORTRAN is formally retired by the J3 Committee, institutional inertia will prevent alternatives from being adopted by science and industry"
The current Fortran standard is the worst of all possibilities: unable to run legacy code which is stable and tested, and unable to compete with modern languages in either execution speed or programming ease.
(And before anyone comes with some contrived benchmarks "proving" that Fortran code executes faster than C, let me point out that the legacy Lapack code is optimized in Atlas by compiling key functions in C+Assembly code)
Re:FORTRAN (Score:4, Insightful)
Umm, forever(*), at least if you're willing to work at it. Isn't that one of the big features the "open source crowd" crows about? Get it and compile it yourself if necessary.
(*) presuming the CPU architecture itself doesn't change.
Re:FORTRAN (Score:5, Insightful)
Let me see if I've got this right - somewhere in the mists of time, someone at your organisation decided that it would be a good idea to write programs which relied on proprietary extensions not actually found in the F77 standard. Eventually, when you were forced to migrate to different machines, the compilers didn't recognise the attempt to use non-compliant extensions.
Therefore, F77\F90 are both evil and should be done away with in favour of C.
This makes sense... how?
Your quarrel is with the original design of the program, not with the standards. Compliant F77 still compiles perfectly in an F90 compiler. Or, to put it more bluntly, it's no fault of Fortran that you've tried to bring bad code with you.
Re:FORTRAN (Score:3)
Compliant F77 still compiles perfectly in an F90 compiler. Or, to put it more bluntly, it's no fault of Fortran that you've tried to bring bad code with you.
No, the fault of Fortran is that the standard needs so many extensions to work in the real world.
For engineering work in the 1980s, VAX-Fortran *was* the standard, it was what everybody used.
Re:FORTRAN (Score:3)
Had the old engineers said, "OK, Fortran is dead, let's just keep a legacy compiler to run old code" everything would have been fine. But no, they insist on "improving" Fortran by putting C language features, e.g. pointers, into it. Why can't they just learn to program in C and let the old compilers do what they are good for, which is running legacy code?
C does not have true multidimensional arrays. Fortran has also historically produced faster numerical binaries than C.
Re:FORTRAN (Score:3)
Actually, one major reason why FORTRAN has been around for so long is not because people liked it that much but because for a long time (don't know how true it is now), FORTRAN code ran faster than C. The reason is simply that some details of the language (e.g. aliasing rules, no pointer arithmetic) made it easier for compilers to produce fast code. If it weren't for the more efficient compilers, FORTRAN would have been dead a long time ago.
Re:Keep up or shut up (Score:3)
Sorry what???
Ruby, Python or C# instead of C++?
What?
What about server software that needs performance and scalability? Python still has its GIL which prevents it scaling properly on modern hardware without the added developer time needed for IPC. Let alone any tests of speed vs C/C++.
Ruby... don't make me laugh, Ruby is a niche language.
C# is effectively windows only.
There are huge areas of commercial development where your choices there are really, really bad, where C and C++ still rule. They (and Java) don't look like going away any time soon.
I may be an old curmudgeon (I'm 32!) but I don't think this is me dragging my heals, I think this is a sign that things don't move as fast as the folks of /. like to believe.
Re:Keep up or shut up (Score:2)
All of that being said. A market is a market. The article makes it sound like they did look at training individuals internally, but decided to go with hiring some outside developers to help them jump-start the process. If that is what it costs for that type of talent, then that is what you must pay. Do I think it is fair? No. If I worked where that happened would I learn the new technology anyway? Yes. Would I try to prove that I am a better developer than the new hires? Yes. Would I demand a pay raise after? Yes.
Re:Keep up or shut up (Score:2, Insightful)
...who stubbornly refused to learn anything new after they left college (or shortly afterward). They fell further and further behind and became more useless every day.
You wouldn't believe the number of college grads I've encountered with advanced degrees who turn out to be absolutely useless when taken out of the walled garden of academia and need to be carried by the old curmudgeons until the probationary reviews come around.
IT doesn't change as fast as people think it does. The tools change but the ideas stay the same (case in point: the more I hear about cloud computing, the more it makes me think of the local dumb terminal & remote mainframe architecture of decades past).
Re:Keep up or shut up (Score:3)
Re:Keep up or shut up (Score:5, Informative)
Re:Keep up or shut up (Score:3)
You pay less and train or you buy skills. Most companies these days seem to want to buy skills.
Re:Keep up or shut up (Score:5, Insightful)
Re:Keep up or shut up (Score:5, Insightful)
Re:Keep up or shut up (Score:3)
While I agree that experience should, of course, count towards salary--I've also encountered a *LOT* of IT staff in general and programmers in particular who stubbornly refused to learn anything new after they left college (or shortly afterward). They fell further and further behind and became more useless every day. I have absolutely no sympathy for someone who works in a field as fast-changing as a computer-related field and refuses to learn new skills (including, *GASP*, on your OWN time). These are not professions in which it is cute (or acceptable in any way) to be the old curmudgeon.
That's not quite the case here. The lead was someone who they couldn't go out and hire; he knew the business, and seemed pretty capable when it came to the desired technology.
There's something to be said for people who "know the business" in that they're harder to find then people who know the latest technology.
Re:Keep up or shut up (Score:4, Insightful)
Re:Keep up or shut up (Score:3)
I'll never understand how highly intelligent people make such a horrible mistake.
You're working under the mistaken impression that the poster is highly intelligent, just because you happen to agree with his opinion.
As college student studying computer science (Score:5, Funny)
Re:As college student studying computer science (Score:3)
Life is not fair (Score:5, Insightful)
The older developer needs to find a new job. IT raises only really come by switching jobs. For some reason companies rather have high turnover and pay each new hire more than give raises to staff. It makes no sense and is not fair, but it is life.
Re:Life is not fair (Score:5, Insightful)
IT isn't the only industry where this is the case. This (lack of raises) is a byproduct of the change from the old world, where companies guaranteed raises and promotions and workers promised loyalty in return. Corporations have broken that bargain - promotions, raises, even employment are no longer as secure as they used to be. As workers, then, we'd be fools to give corporations the same amount of loyalty workers used to give in the sixties and seventies.
Its a new world now, with new rules. As a worker, you're more free to move about and find the best offer. As a corporation, you're more free to hire and lay off workers as necessary. But it is a drastic change from how it used to be, and both workers and corporations need to make adjustments.
Re:Life is not fair (Score:3)
I did a bit of job-swapping back in the dot com days (bay area). it was 'the thing to do' to move up and everyone knew it.
now, you get questions from companies about your 'short stays' (less than 2 yrs). my question back to them: how much of a guarantee are YOU going to give me that this JOB will still be around in 2 yrs? hmmm??'.
(crickets chirping)
yeah, thought so.
corporate double-standards. they SUCK.
Re:Life is not fair (Score:3, Informative)
No, he's making valid observation and also saying it makes no sense (which you apparently agree with). What he's talking about is a real and noticeable trend where internal raises for IT staff are either very small or non-existent, but new hires are often paid more. There's lots of reasons for this. Old companies tend to take talent they have for granted, but new companies (whether they are actually "new" or just in need of replacements) tend to overvalue talent they need *right now* either because they lost it or are going into anew area. It's easy to justify hiring new staff at market rates, but harder to justify raises. Companies don't like to give one class of workers a larger base raise rate than other classes of workers. Probably other reasons as well, but those are the ones that come to mind without much thought.
As GP states, it doesn't make a lot of sense. You go into lots of the reasons *why* it doesn't make a lot of sense. None the less, it happens... a lot. I can point to each and every significant jump in my income and every one of them was either because I changed jobs or because an employer was matching an offer from someone else (and that's only happened once). Merit raises at most places (If they're even doing them, my company has frozen them this year) are 2% for reasonable performance and top out at 4% for exceptional performance. Changing jobs can easily net you a 20% raise. Often more. That's 5 years worth of merit raises (assuming you are exceptional, your boss isn't trying to save a few bucks on labor, and your company hasn't frozen merit raises).
Occasionally you encounter companies smart enough to see the value in keeping people, my current company gave me a big raise to match an offer, but it's not all that common. Mostly I've accepted my crappy little annual raises when offered them and moved on when someone offered me more money than I could ignore.
maybe? (Score:5, Insightful)
Otherwise, if the senior programmer knows BASIC with no ability to learn C# and the rookie knows C# and is hired for C#, I don't see the problem.
Re:maybe? (Score:2)
That people have jobs doing nothing but BASIC ?
That seems like a problem to me.
Re:maybe? (Score:2)
This isn't an obviously easy question (Score:5, Insightful)
There are a lot of interesting issues here. First, the developer could've trained themselves in the new technology outside the company. Would the company have believed they had the skill? I know I routinely teach myself new things when they look interesting to me. I also know that it can be hard to get anybody to believe I actually know it.
And I don't really feel the developer has complete responsibility for doing this either. A good company will encourage its employees to learn new things and provide training. If they don't, they are basically calling their people disposable. They would rather hire new young college grads, even at a premium salary, than train their existing employees, even if it cost less in the long run.
Lastly, I really think this betrays a bias for youth over everything. And, to some extent, it's a bias I can understand. When I was younger, I wrote more code and faster than I do now. It wasn't as good, and I'm a much better programmer than I was. But companies frequently prefer code that's 'finished' to code that works well. I think it stinks, and I think companies are selling themselves short and limiting their own lifetimes by doing things that way.
Re:This isn't an obviously easy question (Score:3)
Agreed. Training on new technology is both the employer and employee's responsibility, and neither is fulfilling their social contract if they don't keep up.
The last point, though, is way more important. Good developers are way more than just a coder that knows a particular technology or tool.
Paying a premium might make sense for someone that has experience with the new hotness, but only if the rest of their experience is commensurate. Knowing how to communicate well, cooperate on requirements, think efficiently, provide useful documentation, manage bugs, manage your time, maintain client relationships, and just work well as part of a team are all at least as important as any specific tool. A college grad may or may not have those skills, even good interviews can't tell you everything about how a new hire will interact with a team or a client. If you've got a developer you know and trust and that done good work for a long time then it's unlikely the new-hot-skill is worth a premium above years of experience. A new grad isn't likely to have any depth of experience, even in a new technology, so it seems like simple math to justify training up an existing skilled competent asset rather than spending a premium on an unknown quantity.
If we're comparing against a developer that hasn't kept up, and isn't doing those things well, then that's another story.
Still, each case is unique, and the ability to negotiate a salary is almost an unrelated skill to your actual competence as a developer.
Capitalism 101: (Score:3, Insightful)
Everything is a commodity.
If you are easy to replace, then you are worth less. If you are in demand and harder to replace - you are worth more.
If senior developer doesn't know this technolgy, they are worth less.
Its not fair. But its expected.
Re:Capitalism 101: (Score:4, Insightful)
I believe the point in TFA was that the senior developer who complained about the new hires being paid much more than him really was as valuable to the company as the new hires, if not more so. It sounds like he just wasn't important for that specific non-critical project and someone high up in the company had decided it was ok to pay whatever it took to get their pet project up and running ASAP (and had already decided it wasn't "cost effective" to pay for training in the necessary tech for existing employees).
Re:Capitalism 101: (Score:3)
Ah, but if Senior Dev busted his ass to learn the new technology and succeeded in his mission, would he have received a raise to do the job, or would management expected him to take on the new work at his current wage?
Why age/degree matters? (Score:2)
Crap shoot (Score:2)
It depends (Score:2)
If they have skills that are in short supply, then yes. If all they know is how to print out "Hello World" in Java, then "no".
OTOH, 60 year old developer who can troubleshoot the COBOL that glues your organization together should probably make more than any random 22 year-old.
In other words, age shouldn't matter. An honest eval of what the worker can bring should
Yeah. An honest eval. Yesterday in the USA we celebrated MLK day, and part of "the dream" was honest evaluation, right?
Re:It depends (Score:3)
Whoosh!
Of course. (Score:2)
Until we remove ALL legal penalties for senior developers who learn new technologies,
this situation is and will remain totally unfair.
Re:Of course. (Score:2)
What legal penalties are those?
Is anyone over 60 who learns ruby incarcerated?
The Real question is... (Score:3)
Re:The Real question is... (Score:5, Insightful)
I don't agree. The good programmers I know are better in a new language after a week than a "fresh grad" who's studied the language for a full year. The bulk of what makes for quality software is not domain-specific. People who have learned five or ten programming languages already are usually fine in a new one on very short notice.
Age doesn't matter. Experience does, in terms of the actual quality of output you get.
Re:The Real question is... (Score:3, Interesting)
Take CUDA for instance (NVIDIA-based GPU programming), which is a relatively new technology that is in extraordinarily high demand in my work place (a physics lab). The fact is, learning it is not like learning another language, you have to understand a completely different hardware model, and it takes a level of algorithmic puzzle-solving to find efficient ways to store/move/handle/process data in parallel. The rewards are dramatic, but it can't be conquered by just teaching your old programmer a new language. It's a whole new programming paradigm. Such changes in the nature of the design may be difficult for someone with a lifetime of other experience to mold into.
Of course, you can't move too far in favor of the young guys, because you can't jerk people's salaries around like crazy. It's one reason we frequently have low correlation between salary and "value." If they were perfectly correlated, I'd be making $500k some years, $20k other years, making it impossible for any employee or employer to handle budgeting in any sane way. Is the company going to be able to justify continuing to pay this kid $200k in 5 years when the "hot new tech" is the norm and everyone is making 30% less? Making salaries too flexible adds a level of unsustainability to the entire system.
Re:The Real question is... (Score:5, Insightful)
Yes, but experience in area Y != experience in area X. No one, no matter how good, is going to master a programming language in a week or even a month. As long as the new hire actually worked and studied in college, he'll be much better in area X than the old guy just trying to learn it. Yes, I'm well aware that once you know one programming language it's easy to pick up another. That doesn't change the fact though that it still takes time to learn it - it just takes less than if you had no programming experience at all.
Mmmm not really. A language is like penmanship. You talking block caps, or cursive, or some weird shorthand script? A programmer on the other hand is a guy whom takes a pretty vague flowchart and fills in the details. Most of the mental effort is figuring out the translation, the error conditions, and especially the business logic or the equivalent. Very little time is spent on the syntax details of how to add the interest to the bank balance, its all spent on the logical puzzles of deciding how to avoid race conditions, how to ensure you do it precisely once per account every time, etc.
Even worse the kid is used to 100 line microprojects or even worse is just good at answering short test questions. No one in the biz ever gets to "start on a blank slate" its all extend extend extend. That and bug fix. And argue with the users about doing dumb things. And work on scalability, theres plenty of really slow ways to do things.
If you get a job in the field, you'll understand.
Re:The Real question is... (Score:3)
He's a "fresh college grad", in other words he's completely and utterly worthless. There is no such thing as a qualified college grad, not in IT, not in any other (professional) industry. Not that this is something shocking or anything; college gives you the skills to learn to do your job, nothing more.
This sounds like a simple case of someone's nephew getting the right buzzword on his resume.
But no amount of general experience will make up for not having the skills his position and company needs you to know.
This could be true, if the skills in question were along the lines of "5 years experience working with X" not "I took a class in X".
Here is how you handle this (Score:5, Insightful)
This, and many similar workplace situations:
1. Have zero debt.
2. Have, in a money market account, distinct from your investments, one year of your carefully budgeted living expenses.
When these two conditions are true, conversations with your boss will tend to take a very different tone from most people's expectations.
Re:Here is how you handle this (Score:5, Funny)
This, and many similar workplace situations:
1. Have the power of the force.
2. Use Jedi Mind Control during negotiations.
When these two conditions are true, conversations with your boss will tend to take a very different tone from most people's expectations.
I call BS (Score:2)
What if the employer asked the senior coder to pick up XYZ skill in exchange for a really good raise? I bet you they would have become a subject matter expert in a short amount of time.
Life isn't fair (Score:4, Insightful)
Don't concentrate on what other people have. Life isn't fair. Nobody said it would be. Thinking that it should be fair won't give you anything but an ulcer. Instead, concentrate on what you have. Your position, your skills, your pay.
If you aren't happy - leave. Get new skills, get a new job, get different pay.
Basing your happiness on what other people are doing is useless. Concern yourself with your own position. If you have enough, great. If you don't, work on it.
Paid by contribution value (Score:2)
Dishonesty is the problem (Score:2)
The problem here is that the company lied to its employees. Now they have to face the consequences.
Recent graduates are worthless (Score:2, Insightful)
Recent graduates should be making just above minimum wage until they've proven themselves to be anything other than completely incompetent.
Their pay should then rise in accordance with their skills and experience.
Recent graduates are, in general, absolutely terrible. It's insane to pay some idiot kid a senior developers salary because they managed to pull a passing grade on a few practice exercises in C# in college.
Re:Recent graduates are worthless (Score:4, Interesting)
Recent graduates should be making just above minimum wage until they've proven themselves to be anything other than completely incompetent.
Nah, that's what interviews are for. Technical questions and coding exercises are much more fair in this respect.
As someone who worked shitty programming and IT jobs for ~$10 /hr since high-school, I want to punch you in the face for suggesting that I deserve minimum wage for 2 college degrees, 3 years of (professional) programming experience, 5 years of IT experience, and 10+ years of hobbyist programming.
Recent graduates are, in general, absolutely terrible.
I went to a school with a pretty good CSCI program. The breakdown was like 15% - 20% talented programmers, 30% average programmers, and 50% below-average.
The talented programmers were competent; could probably step into any job and perform at a level consistent with a mid-level programmer, minus the ins-and-outs of the languages. The average programmers were suited to be junior-level programmers. The below-average were suited to helpdesk / QA.
pay some idiot kid [...] because they managed to pull a passing grade on a few practice exercises in C# in college
Yea? And its also insane to pay some dumb-ass senior who can barely fucking program javascript just because they have 10 years of experience programming shitty code elsewhere. I worked with dozens of people who were making 80k+ doing just that, how many kids do you know making senior level salary for doing what you described?
Re:Recent graduates are worthless (Score:4, Insightful)
Good luck trying to hire CS graduates from reputable universities at $7.25 USD/hour + epsilon.
most everyone is worthless (Score:3)
By the time programmers have paid their way through school they usually have some sort of usable job skills-> computer tech, appliance repair, electrician, plumbing, welding, customer service headset jockey. If they don't have any real world skills after 4+ years of college do you really want them anyway? As a teenager I was clueless about a huge number of things, including that I was clueless. Now I'm confident in my clueless-ness, and much more happy when I discover my foot tickling my tonsils.
Besides, how quickly would the pointy haired boss get around to that raise.
In my experience, most people looking for programming work are horrible, recent grads to seasoned veterans. The simple stuff, like implement quicksort, or a linked list is usually too much for what would appear to be a qualified applicant.but that doesn't scratch the surface.. Understanding version control, compiler errors, linking errors, header files are lost on way too many applicants. The hiring process is a dreadful one.
Management and HR (Score:2)
30% of a year is 3.6 months. The older developer can learn the technology in that period of time, at which point he will know the new technology and will also have more skills than the younger developer in anything else.
So they could justify paying him the salary of the younger employer, minus 30%, plus some percentage for extra skills, and only for the first year. After that, pay him a salary equal to the younger developer's plus more for the extra skills.
Paying him 30% less, with no accounting for extra skills at all, and for all years forever, forever, can't be justified.
There are two reasons this doesn't happen. The first is that management and HR are generally completely incapable of understanding how long it takes to learn a new technology. The main reason is that they like to skimp on salaries and it's a lot easier to skimp by not giving an already employed person a 30% raise than by hiring a new person for 30% less--they're far more likely to go somewhere else when doing so just means picking a better offer than when it means quitting.
Coders are like professional athletes (Score:5, Insightful)
Yes and no (Score:3)
I don't have a problem with younger people earning more than older people in general, I know I've passed quite a few people on a fairly steady rapid climb and is making a pay that would be respectable for a guy 10 years my senior. However, I would be very surprised if a guy straight out of college - no matter how hot the technology he knows is - could command a higher pay than a senior developer. There are after all fairly many college graduates and they've yet to show much real world coding skill. Starting salaries are typically low all around - for relative values of low - that reflect that. If the wage structure is so flat that giving new hires a bump puts them 30% above the team lead, there's something very wrong with what he was paid in the first place. Sounds to me he's the kind of guy who'll work for peanuts and should have asked for more or left for a better position somewhere else long ago.
Fair? (Score:3)
"Fairness" irrelevant. (Score:3, Insightful)
You are competing for money. Either do what will pay best or leave for greener pastures.
Fair is irrelevant (Score:3)
They can pay each employee whatever they can get them to agree to (well modulo minimum wage laws, overtime laws, etc, etc).
Chances are the experienced developer can pick up the new-whiz-bang-flavor-of-the-month in less time then a new guy to get set up and productive in the company.
The again, maybe this particular developer hasn't demonstrated that ability. Maybe he has made himself indespensible in whatever role he has now and hence they can't have him do other things.
What is a senior? (Score:3)
I use the following classification:
You might have noted that at no point did I say anything about their skill at coding, the level of their code. The senior might well do top down programming and the junior use the latest OOP or whatever is the flavor of the day, but the juniors code is full of security holes and 1 in a million occurences cripling bugs and the seniors ain't.
Think of Terry Pratchett's, Cohen the Barbarian. It is not that they are better at fighting perse, they just got so much experience at not dying, they don't do it anymore.
Now the problem with all this is that age has NOTHING to do with it. You can be a senior straight out of school if you spend all your time coding and dealing with real time issues. Can, but it won't often be the case. This is why iPhone apps, being the latest in tech, still have the same old errors and flaws as apps from 20 years ago. The people who program them might know the latest tech but they lack the years of experience to avoid common flaws older people already encountered.
Trust me on this, I seen code well above what I could write but filled to the brim with fairly basic security and performance issues. Think of an old farmer watching a young farmer plow. The old farmer might not understand the tractor or know how to drive it, but he does know the plow blade is going to break soon because he knows the field is filled with unseen stones. Experience != skill. Both are valuable and the wise employer makes sure he has both available.
Re:Stay on top (Score:3)
Stop speaking that way. You clearly have been infected with some sort of disease, you probably got it by standing too close to MBAs or Marketing folks, see a doctor soon.
For further readers the translation is as follows:
IT professional must keep their knowledge relevant. If they fail to do so what ever happens is their own fault.
Re:Senior Devs should learn knew stuff, all the ti (Score:3)
All of them? Are you really being serious?
Re:so how did he know the pay? (Score:5, Interesting)
I'd generally agree with that... the managers usually say "you're not supposed to discuss each others pay". Meaning "We don't want you to know you're being underpaid".
Coworker here recently got... check it... $0.25 raise. Oh he was pissed. And there was much yelling. I remember that being brought up later with regard to reviews and raises, in a critical way, and being told "he wasn't supposed to discuss that with anyone", as though it wasn't a valid point to raise during the discussion. I suppose not, that's both insulting and embarrassing at the same time.
Re:so how did he know the pay? (Score:5, Insightful)
That generally depends on what end of stick you're on. Trust me, there's many people that are incredibly petty when it comes to anybody being paid more than them. Particularly if you're being paid for your skills and there's not much formal reasons you can point to. When I was relatively fresh I'd have no problem telling what I got paid to fish out how much they got paid, but the higher my pay got the less willing I am to talk about it. I still discuss it with a few close friends to know where the market is, but far from everyone.
Re:So the engineer at the chemical factory ... (Score:3)
Re:Corporations like control, so you're screwed. (Score:4, Informative)
Maybe someone should have that option, but where I worked and likely most everywhere else, it was forbidden to tell others how much you made. This conditioning is stupid.
It is illegal in the US, under the National Labor Relations Act, for the employer to forbid employees to discuss pay with each other. Because organizing a union involves discussing pay, and workers have the right to organize, workers have the right to discuss pay with each other. [nlrb.gov]
Re:Corporations like control, so you're screwed. (Score:3)
Do you know if it is legal to make someone sign a contract saying they will not organics a union?
Hell, no. That's called a yellow-dog contract [wikipedia.org], and it's been illegal since 1932.
Re:What is fair (anymore)? (Score:3)
Well, ish. It was actually so that the company can take advantage of the information disparity between its employees: if you don't know what others who do the same thing as you are making, then you have less bargaining power: you don't even know that you should be spreading your resume around.
It's a kind of market segmentation, and it's pretty shady when you think about it.
Re:short answer: no (Score:3)
Upskill to what? Pic one of a dozen languages? Play pin the tail on the project?
A new project hits the boards and some pinhead Project Manage lets his 14 year old nephew pick the fucking language to implement it in. A team of really solid developers in the offices and cubie's most fluent in three or more languages and they get bypassed because some jackass of a project manager decides this hot new language is what we just HAVE to do it in and so they find some noob collage grad who has spent the last year of school in that language DeJour ?
Thats the problem. A company does it in a language that is fashionable for the moment, not what works, not what has a solid foundation both in the wild and in the company.