Programmers: It's OK To Grow Up
Nemo the Magnificent writes: " Everybody knows software development is a young man's game, right? Here's a guy who hires and manages programmers, and he says it's not about age at all — it's about skills, period. 'It's each individual's responsibility to stay fresh in the field and maintain a modern-day skillset that gives any 28-year-old a run for his or her money. ... Although the ability to learn those skills is usually unlimited, the available time to learn often is not. "Little" things like family dinners, Little League, and home improvement projects often get in the way. As a result, we do find that we face a shortage of older, more seasoned developers. And it's not because we don't want older candidates. It's often because the older candidates haven't successfully modernized their developer skills.' A company that actively works to offer all employees the chance to learn and to engage with modern technologies is a company that good people are going to work for, and to stay at."
they just happened to have learned the most recent stuff (which all too frequently is all the managers care about)
The experienced developer will know when not to use a new fad because they will have seen a prior version of that fad before.
We want people to spend their own time and money to train the skills that we need. There's no way we would invest in such things -- it hurts the bottom line!
One of my colleagues in in his mid-60s, and happily puttering around in modern technologies and adapting what he knows about systems to the latest tools. Writing prototype code in Clojure, using network databases (neo4j), doing interesting data modeling and generally just making stuff happen. He's learning new stuff every day, having fun - and getting to say no to job offers on a regular basis. I've been in this industry for more than 30 years and I'm currently mucking around with Hadoop, cloud computing and a bunch of the new things.
People talk about time to learn, but it's a question about making time. Would you want to visit a doctor that hasn't updated their skills in 20 years?
Alan.
Buzz word, buzzword, markup language.
I find it difficult to believe that a developer would NOT be able to pick up HTML5 in a weekend.
When you go to hire a developer you're not just looking to hire someone who can code in the latest fad language/API/SDK. You need someone who knows software development like a captain knows his ship. I promise you that 20+ years of software development will be worth way more than the 22 year old kid who knows Ruby on Rails because he learned it while studying in college. That experienced developer can pick up whatever tool your company standardized on and yeah, it may be three months before he's all the way up to speed on it, but then the years of experience will begin to make themselves tellingly felt vs. a kid who happens to know the tool already.
Hiring for the tool is stupid. It would be like looking for a columnist who specifically has Microsoft Office 2013 experience and filtering all the applicants who only used Google Docs in their previous jobs. Either one of them can write copy.
it's about the money. same with age.
Even better would be the 20 year veteran who can take those fresh out of school enthusiastic newbies and get high quality software out of them on a predictable schedule, without the "back in the day, we coded with patch cords on EAM equipment". Or the 20 year vet who is doing the new stuff and the old stuff, and can help the inexperienced new stuff guys and gals avoid the traps.
Face it, on a large project, there aren't enough skilled veterans on the market to get the job done, you MUST do it with average or below average folks. The challenge is seeding the crowd with just enough experience so that all those contributors are net positive, no matter how small.
I am so sick of this same FA reposted more or less every week or two.
"...A company that actively works to offer all employees the chance to learn and to engage with modern technologies is a company that good people are going to work for, and to stay at." So, what this guy is saying is that Programming is not a Family Friendly occupation, and that companies that hire lots of programmers think that being Family Friendly is a liability? Extremely short sighted.
Companies often times prefer younger developers because they are cheaper. It is as simple as that.
That older, incompetent developer was probably just as incompetent when he/she was in their 20's.
We've hashed this out on Slashdot before, more than once. OP is just wrong that older programmers in general don't keep up.
Study after study have shown that older programmers are generally more productive, even after adjusting for the higher salary they tend to expect.
While he appears to be genuinely sympathetic, his personal theories don't quite qualify as statistics.
I personally have 2 kids, work full time and am in grad school. That's no reason ( or any life outside work ) to not keep your skills fresh and keep working on new unfamiliar projects. It's a constant learning that needs to be worked on each project, each week.
You just need to force yourself to start reading more news relevant to the field, relevant to your work, and be comfortable with being unfamiliar with new technologies.
Doctors have been doing it for decades if not longer. This is why we learn theory, to learn the technical tools that apply that theory.
make me!
Table-ized A.I.
I've found that young vs. old is a trade-off.
Older workers frequently have a better work-ethic in the workplace, and have more experience to draw upon. Younger workers have a better work-ethic in terms of the amount of time they are willing to dedicate to work and frequently (but not always) contribute new ideas.
What it seems to come down to is: do you want experienced workers who will contribute more per hour, but who will also draw a firm line between their work and personal life, or a young worker who is willing to put in the extra time, even though a lot of their time will be spent relearning what a more experience worker already knows?
I suppose software development also has other factors. Some products depends upon experienced developers (e.g. anything considered mission critical) while other products depend upon fresh ideas (e.g. most software targetted at consumers).
I've watched a dozen, or so, "new, cool" methodologies, languages, and tools come and go over the years, mostly because some screwball "consultants" or publishers needed to sell books and training and managers who need to look useful to their organizational superiors. If a person has actual programming skills (understand a problem to be solved, state a solution in a form that a computer can understand and a human can maintain, choose an appropriate language/tool set in which to implement her specific component, work with others providing various components of the solution, give reasonable estimates of the amount of time it will really take to implement), then the current fad is an afternoon's adaptation by the programmer. Of course, "choosing a language/toolset" requires some familiarity with what the languages/tool sets provide, but that also means knowing when they're NOT useful, and not just hopping on each bandwagon as it passes.
To just tell the perspective employer that you have the skill, and learn it if you get the job.
That is tech. It takes a lot of time and effort to get good at programming; No one can know all languages, but it only takes about a week to be moderately proficient at any single one. When you are hiring a new programmer, do you really want to hire some JS code monkey (even if that is the only language you currently need developers for), or do you want to hire an experienced software developer who has the ability to rapidly learn any language.
Troll is not a replacement for I disagree.
Employers want kids fresh out of school because young programmers want to prove themselves and have no problem working 80+ hours of unpaid overtime per week to do so. For older programmers - little league, home improvements, and work experience get in the way of such exploitation. It's really this simple. No need to write any more circle-jerky, head-scratchy fluff pieces that are divorced from reality.
Doctors have been doing it for decades if not longer.
Doctors get paid a hell of a lot more and can get meaningful amounts of paid time off to do such things in.
Back in the 1980s, I had the good fortune to work with a man who had started at IBM the same year I was born. He not only knew the current landscape of development tools, he also had a vast knowledge of how we got here, what things had been tried and abandoned along the way, and he was very good at spotting tasks that people hadn't realized were necessary. I learned a lot from him.
-jcr
The only title of honor that a tyrant can grant is "Enemy of the State."
One of the best developers I know is over 50 years old, the second best programmer I know ( not me ), is 25 years old, age means nothing. What matters is natural talent, some programmers can sit down and write a great firmware in a night and some can't write one in a year, ( substitute firmware for program ).
As programmers get older they simply get less excited about the idea of pulling all nighters and doing "code sprints" because they have spouses and families they enjoy, responsibilities to others outside of work, and they know that this isn't a good process for long-term success. All nighters are fun and adventurous when you're in college or just out of school, but after a few decades in the working world you're seen it all before and simply refuse to get caught up in another "emergency" caused by poor planning, unrealistic expectations, and marketing promises.
I'm not saying that programming is a young person's game--far from it. However, inexperienced workers are not only cheaper, but also far more likely to put up with bullshit and bad management.
Who is a friend of mine that said to me casually, "Yea I wanted to build a team of young people that I could hang out with so I didn't hire anyone old". Old here being over 35!
In IT, age discrimination is blatant. It starts at 45. You should always keep your skillset up- but it probably won't help much because many young 28 year old managers are just flat out not going to hire an "old geezer" who is 45 unless they are the only viable candidate.
She was like chocolate when she drank... semi-sweet at first and then increasingly bitter.
Problem is convincing a PHB that the seasoned veteran who knows the codebase extremely well is worth the cost compared to a H-1B
The the companies problem though, not the seasoned veteran - because the seasoned veteran is already considering several job offers from people who do realize that value.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Actually for me, keeping up would be learning Java. Most things newer than that are irrelevant for most things I do. I used to know Java, then the language changed, then it changed again, and now knowing the language is irrelevant as you have to know the frameworks instead.
Keeping up with skills is sort of irrelevant when all the skills you learn are learned on your own. If someone can and has written their own language or OS, is it really necessary for them to know some temporarily fashionable language? Although maybe that makes people overqualified for the most common programming jobs.
Everybody knows software development is a "young man's game"? Did you seriously say that?
HELLS no, man.
First off: I've been programming since I was 8, but I was never a man, and I will never be a man, and I have never suffered under the idiotic delusion that this was ever exclusively a man's game -- young or otherwise. This is my game.
I am still programming at 40, and I assure you that youth offers no advantages over experience, either.
But, that doesn't stop me from mentoring. My interns may not be able to program like I do, but I'll give 'em every advantage I can. It's great to teach them some of those intrinsics that they don't get in school. That gives them some of the advantages an experienced developer, even if they're younger. This isn't a zero sum game. We all need good devs, so we should try to make everyone who is working with us better -- whether they are young or old. We all get better software, that way.
like knowing about boolean algebra & bit setting (a | 14) bit resetting (a & ~(14)) etc. I notice with myself at 44 that I stop giving a shit about new stuff like smartphones and java and apps and building websites. I graduated technical school just before the internet became a thing. And I stopped gaming in the 80486 era. Now get off my lawn.
You think Software Development is bad for this? At least the equipment is inexpensive and the material accessible.
In aviation, you'll pay > $60,0000 of your own money to get your ATPL all to start on a wage of $25,000.
What about medical school or law school? That's pretty expensive and comes out of your pocket.
Many serious professions require you to spend money on your training. It just comes with the territory.
My advice is: train your analytic skills and understand where thing go right, wrong, or just different. This can only be done by experience. While i learn programming languages slower than with 25, i learned to analyze code. Having seen code written by many very different people (everything from physics professors to psychologists), i understand the idea of most code better than the authors (since i see the limitations the author is placed under). If you apply your analytic experience and skills to the problem, you will be welcome to any team.
"Grow Up"? Seriously? Some of us started coding at single digit ages. I "grew up" at age 17, when I was homeless and fending for myself on the streets. Patronize someone else, moron, you don't even know what life is. Ever seen someone's skull stomped in? You learn real quick what's actually important in life once yours is on the line. I learned real quick to have a plan B: Always have a contingency plan. Idiots without one are not, "grown up."
I've forgotten more languages than most have learned, but I'd be fine with folks not being considered programmer material at age 40 if they would hire from within for management positions. Instead of employing middle management drones with unrelated "business" (Secretary++) degrees give the folks with actual hands-on experience the job of managing the people in the job they actually know how to do. Face it: Those HR goons are morons, they can't tell good from evil, or else explain how the odd Napoleon-complexes and Micro-dictators in management even got there? If HR wasn't dumb as rocks they'd require demonstrations of skill, a coding test, not accreditations: Degree mills exist, fools; This is especially true overseas. Ah, but the that's getting to the real issue: Skill sets aren't what's really important to upper management... TFA's author isn't as "grown up" as they think.
The new platforms will keep coming, but the solutions will largely be the same. Now I can undercut competition via barging onto any new platform with my whole codebase faster than the other guy can tell you why the new language is "More Expressive". I just have to implement a new "platform runtime" for my meta compiler and then I can check off that platform as a capability and deploy ALL of my existing solutions on the platform since they're written in an even higher level language, and compile down into other languages. Sometimes this means we have to implement features the language doesn't have in the target language -- If I need a coroutine in C: When returning to the trampoline record the exit point. When calling into the coroutine specify the entry point to resume at. I generate a switch with GOTOs to resume from the next point of the operations (GOTO is very valuable, only idiots say otherwise; Look at any VM). Lambda lifting mutable persistent state out of the function scope has the benefit of thread safety. Since I treat comments as first class lexical tokens the compiler-compiler's output is fully readable and commented code in the target output language and following whatever style guide you want. (LOL @ brace placement arguments, what noobs)
See, experienced coders understand languages so well they aren't even languages to us, they're just problem solving APIs: The problem-space is independent of the implementation's solution-space. When we pick up new languages or platforms we're looking for, "How does this language let me solve problem $X?", but more importantly our experience lets us identify what solutions the platform lends itself to solving. Just because a new platform comes out doesn't mean it's more capable of solving every problem. Do this long enough and you'll get tired of re-inventing all your wheels in each new platform and just create a meta compiler, as I've done.
Fortunately I've always crossed off (and initialed) that employment contract paragraph that said everything I would create (even off the clock) would belong to the company: "I don't watch TV. I have several hobby projects I do instead and they need to remain mine. If you want me to give up my hobbies while working here you're going to have to pay me a lot more. Would you sign a contract to work somewhere that said you couldn't ever watch TV?" Protip: Most places have another employment contract without that clause, just tell them you make indie games or have a robotics / embedded systems project, contribute to open source in your spare time, etc. Make your hobby profitable. That way you can always have a plan B, and you'll have more leverage in any salary negotiations: "
If a fellow gets married, *then* his creativity and productivity plummets. His time is no longer his own. When I regard the fellows I work with, the guys over 40 who avoided marriage, or have been divorced for a while, are the "top guns" to put in U.S. terms. They have both creativity *and* a lot of experience, which makes them almost impossible to beat over the course of many months.
The basic assumption that programming is a young man's game is simply being pulled out of the author's ass wholesale and in one piece.
When you base assumption is invalid, the rest of your argument is moot.
I constantly see memes like "It's often because the older candidates haven't successfully modernized their developer skills." but I have never found that to be even remotely true. I have worked in IT over 30 years. I have worked for several companies, big companies, and small companies.
Nobody claims that sort of crap about doctors, lawyers, accountants, even most engineers, or scientists.
If all of those professionals can keep up with changes in their field of work, and study, then why not software developers? It makes not sense at all. These memes defy all real logic, and evidence.
You are tagging a group of people based on no logic, and grossly insufficient evidence. This is not different that racial discrimination.
On on hand, many companies pigeon-hole people into specific areas. If someone is designated a J2EE developer, and that's all the tasks a company makes available to them, how will they learn The Next Big Thing?? After doing this for 10-15 years, people get left behind. On the plus side, top notch COBOL programmers make pretty good money. On the down side, it's only the top notch ones that get hired and the opportunities are few and far between.
If companies took the time to allow development staff to try new things, more people would become cross-trained and the end result is a larger talent pool for the company. Most developers can pick up The Next Big Thing quickly if given the opportunity, and since they already know the company processes and products, should be more valuable in 3-6 months than hiring someone with the experience.
On the other hand, if a company does offer the ability the move around, and someone that is comfortable in their space isn't willing to take the plunge, it's their own fault. I've known plenty of people that when asked 'can you code in the Next Big Thing', simply reply 'No, I can't do that'. If they would add the words 'but I can learn it' afterward, as far as I can remember, every company I have ever worked in would let them. Instead, they move onto the next employee or hire from outside the company.
And the employee that always says 'I can't do that' stops getting get offered new opportunities.
I rarely read replies, it's my opinion and if you thought about your opinion a little more, I'm OK with that.
https://en.m.wikipedia.org/wik...
Casteism
My boss and I routinely look at new tools and technology with an eye to solving our company's problems and build cool new stuff. Our goal is not to embrace flavour-of-the-month technology. It's to identify better solutions to old problems, or find good solutions to new problems. Tools have to work, or they serve no purpose. Everything else follows from there.
We do most of our development in C on Linux, but have incorporated virtualization and cloud computing, new technologies that provide better solutions to old problems. The jury is still out on other goodies. I like python, while my boss prefers perl. I like Django, while he prefers PHP. He's the boss, so I write lots of perl and PHP... :-}
...laura
I'd suggest if you want older geeks to keep up with new tech more then give them a later start in the morning. Most of my good hacking time for personal projects happens between 12am and 4am, and that's great when my work hours are somewhere around 10-5. When I need to be at work by 8 every day I find myself in bed by 11:30 or 12 every night, with a more limited ability to stay up late even when interested in a project.
It's often because the older candidates haven't successfully modernized their developer skills.
Another bullcrap excuse for the massive offshoring of jobs, and importing of foreign visa scab workers. Been hearing this excuse for decades, and still recall how, when I was at my true peak both knowledge-wise and skills-wise, just couldn't even get an interview if they had an inkling as to my age. Anyone wish to bet this clown is not affiliated with ITAA or whatever their latest name is?
Try again, sonny, it begins in one's thirties, at least. . .
That cheaper nonsense is a National Association of Manufacturers (NAM --- first president and one of the founding members was George W. Bush's great-grandfather) and US Chamber of Commerce (USCoC) talking point forever, just doesn't cut it. Makes as much sense as hiring data entry operators to be sys admins, a common practise when I was much younger, and then the douchetards wonder why their companies go in the toilet. Too many programmers will work cheaper and cheaper (until, of course, a threshold has been reached whereupon there is no ROI in taking such jobs or going to work at such places), just to be able to program, etc.
This entire charade began when Seymour Cray put out a video throughout the industry, promoting the idea that it was best to hire newly minted college grads as they had no idea what was possible or impossible, and too many doucheys ate that stuff up.
Which is why Microsoft turned out such crap early on: the crappiest word processing software, the crappiest spreadsheet software, etc., 'cause their 20-somethings had zero experience in the workplace. Had they not had the DOS monopoly, things would have been entirely different.
Well articulated, Ms. P., very well articulated, but /.'s parent company has been offshoring jobs for quite some time, no doubt the agenda behind this repitition!
Well stated and spot on, jafac!
http://www.politico.com/story/...
Josh On (creator of theyrule.net and exxonsecrets.org, and a highly intelligent activist or hacktivist) stated the agenda behind the cloud, and i-pad, smart cellphones, etc., tech: to reduce the potential for user hacking and intellectual empowerment, and as you stated, wresting control.
If idiots are telling developers what to do and how to do it, then maybe the next question is what tasks the idiots and their investors think is so important to do? I have become profoundly skeptical about the whole business model process and the people who drive it. If you think that the Peter Principal applies then your development manager does his job because he can't do your job, and so on up the chain. And if you think that planning and conception of the business model is done up the chain, then the competence of those people decreases up the chain until the only wisdom in the process is that the CEO can read quarterly accounting reports. he has no further insight than that, and that of the board is even less, they are even more beholden to the myths of accounting and the bottom line, which is where the analysts who evaluate the public equities sit, they are even less informed. I worked at a major computer company years ago where the CEO and board paid too much attention to the whims of the Wall-Street Analysts and the financial industry clients the company had. This company, who is a name you would recognize is no more, it was bought out, and when you realize that the growth and fall of technology companies is due in part to flim-flam, and to decisions by people who know nothing, then get ready for another bubble. I knew back in 2006 that tech would blow another bubble when the rage was monetizing click counts, and I laughed, and I continue to laugh because that is what all this brilliance in computer science comes to, Google. So as in 2000 we may yet hear the woosh as capital flees from tech companies, and this time I rooting for the bust.
Except of course every company is prey to flight of investment, no matter how wise its management thinks it is. Another thing is, where do you think all the pimply faced young people will be if we were to suddenly find ourselves in a shooting war in Europe? They, most of them, would become canon fodder. If the coming tech bubble doesn't come and the companies survive either an economic disaster or a nuclear exchange, companies like Apple and others will suddenly find themselves needing old guys, and they will have to pay to upgrade their skills.
So, for the time being, you are right, labor law has no teeth in this country, to protect the security of any employees, but don't celebrate the fact as if you are a Republican or worse, things can change quite rapidly, and suddenly those companies getting away with immoral practices will suddenly have to rebuild good will, if they survive so long. Maybe if we go through another financial meltdown, possibly the stock markets are bubbles right now, and there is a bubble in tech, or a major war, then Google, counting clicks, will matter less and less and newer companies will arise with different priorities. That may be the price we have to pay to make your version of status quo invalid. So don't bet on the future without some insight as to alternative possibilities.
Yeah, I'll bet that you don't live in Silicon Valley. You probably are working at a MilSpec house where because it is government procurement you still have to support legacy systems. Am I right? Suppose you are one of those unsung defense contractors who happens to be in Silicon Valley, it may be hard for another grey beard to come work with you, even though I have written FORTRAN and know the UNIX shell, because the wait to get clearances is so long. And in light of the NSA problem I'd be weary of what I wanted to get clearances for.
the experienced developer invalidated the plans and processes of the manager, exposed him for the fool he is, and convinced the manager that if he hires him, everyone will know this too.
Interview questions are minefields for experienced, competent individuals, because one never knows the relevance of an answer.
Yeah, I had a similar experience, I stood up to a younger manager who was incompetent, did not understand the intellectual investment it takes to learn and use software tools, compilers and OSs. He thought that when he talked everybody should jump, military style. The trouble was that he hadn't really earned his stars, he was a rear-guard admiral. Anyway, he was the product of a failing management. He mouthed off to me and I took leave and about $100,000 off the bottom line and the upshot is that the company he worked for was bought out maybe six years later. The stock had tumbled from a high of $127 to more like $3,
So, there are plenty of tricks and deceptions out there but time winnows the talkers from the doers, and that is continuing as we shall see yet again, and soon when the next bubble bursts.
Bravo! We need more people in this field with your attitude. Hell, we need more people in general with your attitude - that would solve most of the stupidity I see on a daily basis.
Lodragan Draoidh
The more you explain it, the more I don't understand it. - Mark Twain
The term man and words derived from it can designate any or even all of the human race regardless of their sex or age. The word developed into Old English man, mann meaning primarily "adult male human" but secondarily capable of designating a person of unspecified gender, "someone, one" or humanity at large.
Language pedantry from an Anonymous Coward? Aww, it feels like home...
I'll just leave this article here, since it will save me some typing: Think twice before using "mankind" to mean "all humanity," say scholars.
"As a result, we do find that we face a shortage of older, more seasoned developers. And it's not because we don't want older candidates. It's often because the older candidates haven't successfully modernized their developer skills.' "
I think us older developers bring a lot to the table young padawan.
First of all, development isn't just about coding and what languages/skills you know. How you USE those skills is important and comes with experience. Countless times I start a new job or contract and see younger developers making the same mistakes with the following:
Insufficient or non-existant logging.
Bogus error messages ( HTTP 500 anyone? ) or no error handling at all
Bad SQL and File system I/O leading to performance issue.
Over reliance on tools to generate code/in-ability to understand generated code.
No bug tracking.
Poor source control or no source control.
Lack of testing methodology/skills - nobody wants to QA, only unit testing.
Poor change management - things thrown into production.
Secondly, Wow, really? We don't learn new skills? I am in my 40's and I frequently encounter developers in their 60's and 70's still out there coding with modern languages. As for myself, I'm in my mid 40's and I've only managed to learn and use and put into production code written with the following languages: ( Note I still like to work in the yard and do things outside of work. )
Cobol,
C,
C#
C++
Java,
Java Script
Python
Visual Basic
Various Unix shell scripts ( SH, KSH, Bash )
I also know HTML/CSS well enough to build a web site, I just don't really like web side programming - I'm more of a server side developer.
I have also done some coding in the following languages and tools but decided not to use them either because I didn't like them, they are obsolete, or they were not very relevant to the work I am currently doing:
Assembly
Basic
Perl
Ruby/Rails
TCK/TK
Visual Basic
Third, why is being a Google or Facebook considered a sign of success these days? Yes, the salary and benefits might be good, but experience has taught me that usually the only people that really benefit are the founders and the first or second wave of developers. Then everyone "jumps" on and the stock equity gets diluted. Besides, not everyone wants to live on the West coast and spend 1 million for a house and pay some of the highest state taxes in the nation.