Study Shows Programmers Get Better With Age
mikejuk writes "It's a prejudice the young and old both share, but with opposite conclusions, of course. Young is best or old is best — most have an opinion. Now we have some interesting statistics ingeniously gathered and processed by Peter Knego, 'big data' style, that 'proves' older is better when it comes to programming, at least!"
Claims of agism always seemed funny to me in the context of programming (or really most industries).
Someone with 25 years experience is far more employable than someone with 5 years because they... have more experience?
It's not like the "olden days" where how many years of service you'd get out of someone mattered. Now people are lucky if they have the same job for 5 years. Manpower requirements fluctuate so much in today's industry that the days of "get a job out of school and stay there till you retire" are long gone.
And there is value in young blood as well, but you really need a mixture of people out of university with new ideas and people with experience to make them work (or who understand why they won't). Even if a person loses touch with current technologies, it is worth having people around who have seen a lot of shit fail and know the warning signs.
This of course assumes we arn't talking about someone who learns to program at the age of 40 or something.. then all bets are off I guess.
A guy where I work is retiring in two months. We have known this for like a year and we are _still_ scrambling to get all the info out of his head (we maintain some very old systems... and he was around when they were _designed_). If I retired tomorrow no one would give a shit. "Just hire another c/c++/java guy with a little asm". Obviously this more more related to knowledge than skill.. but still.. that's value!
Also.. interesting (yet pretty thin) way of getting the stats! And I can't be the only one who was pleasantly surprised not to find some huge 50 page report at the pointy end of that link.
Unfortunately the data might just prove that good programmers continue to older age while their less skilled kin get promoted out of it. I also hold the opinion that older programmers who were typically maths graduates are far more skilled than the younger "computer science" graduates (I include myself in the latter group).
Is it age or experience that makes the difference? I am going with the latter.
Assuming it's someone not stuck in 1972 and only knows cobol
This is hardly news. Practice ALWAYS makes perfect, you can master anything if you practice, period.
To prove what everyone with more than two neurons already knew. Thirty years ago.
I've managed programmers for almost 20 years. You want to catch them in middle age. Too young, and they are inexperienced and likely to fall prey to the latest language/paradigm/etc. Scripted or uncompiled languages are a prime example. I'm sure Python's great; I don't want it anywhere near my project however. Anyone over 50 is likely to lean towards C (or C++) whether it's required or not - when the only tool you have is a hammer, everything looks like a nail. The sad fact is, weighing the lesser of the evils, I can't afford to pay 50 year old C-jockeys $100k+ per year, when I can find a Python kiddie to do it for $40k.
Love the headline, even if the real story is a bit more nuanced...
TFA purports to show a correlation between age with perceived quality of programming forum posts, which is not necessarily a measure of programming skill. In particular, youngsters might have a greater tendency to pop off on topics they don't know much about, or lack the skill and experience to craft an effective response, and thus get lower ratings than their greyer colleagues.
This is as it should be. I mean, who would stay in a profession in which one got worse with time?
People are only realizing this now, having been burned time and time again by young programmers who don't have a fucking clue what they're doing.
Yes, most of them are proponents of using Ruby and Ruby on Rails. In fact, those are the only tools in their toolbox. The solution to every problem is a web app. Then again, that's exactly what we should expect from 18-year-olds who have no university-level training, and merely picked up their "craft" by reading blog posts.
Well, it turns out that writing anything larger than a blog using Ruby and Rails just isn't a good idea. It's not maintainable, the performance is absolutely shitty, and the product itself doesn't provide any value. Unfortunately, many customers didn't find that out until well after these Rubyists had made a mess of the situation.
These days, it's only safe to trust developers who know languages like C or C++. Even if you're having them use Java, C#, Python or even Perl, at least they have a wide base of knowledge that lets them make sensible and correct decisions.
>I'm sure Python's great; I don't want it anywhere near my project however.
>I can't afford to pay 50 year old C-jockeys $100k+ per year, when I can find a Python kiddie to do it for $40k
I find it unlikely that you're someone who's even in a position to make those sorts of calls.
I believe that. The older programmers that I know have a better sence of what is neccessary, what works, and what doesn't need to be done. The young guys out code them by number of lines, the old coders write much more code that survies for years and doesn't need to be rewritten six monthes from now.
..but not necessarily better at picking up new skills or techniques (I speak as someone in his 40s). So its a trade off. Yes , if you want a C++/Java/Cobol expert who knows the language inside out to work on a huge system for years then someone older is probably better , but if you're a start up who wants someone who'll quickly pick up new stuff and can shift gears in no time as your company grows and morphs then you really want someone in their 20s.
Average age of WINE developers.
Set your phasers on "funky"!
"Bad programmers get fired, and do not continue to have reputations as programmers once they are taxi drivers 20 years later". Programmers who don't get fired, after years and years, have more respect. The same curve would show up with race car drivers and bagel bakers. People in their 20s outnumber other new applicants, and as someone who hires a lot of people, most applicants are not qualified to begin with. I'm a budding codger, but sorry guys, this is data trickery.
Gently reply
I've been in the industry for over 30 years now. I've witnessed first-hand the transition from COBOL-based systems from the 1960s and 1970s, to C-based systems of the 1970s, to C++ applications of the 1980s, to Java systems of the 1990s, to C# apps of the 2000s, to today's web apps.
Users today are worse off than they've ever been. Web apps, especially those hosted externally from an organization, are among the most inefficient, ineffective software systems ever created.
Ask any long-time computer/software user in a given organization how software has helped their productivity. They will immediately tell you that the software they had to use was much better when it was actual native applications, rather than the web apps they have to use today.
Native apps are always better. That's why smart people still use real email clients, rather than GMail and other webmail systems.
You can always add network connectivity to a native app. You can't add quality to a web app.
Where experience counts is in the "soft" areas: recognising approaches that will or will not work, as they have or haven't in the past. Knowing where your limits are and knowing being able to tell when others need help (even if they don't have the experience, or are too vain to know or ask, themselves). And knowing whether an unknown problem will take a couple of days to solve or a couple of years.
The problem with experience is that those who have it frequently end up working for those who don't, but who display the "can do" attitude that attracts lots of employers - as opposed to the "that'll never work" which can be the voice of experience, itself. As there's nobody as unswervingly certain as the truly ignorant, the experienced people have learned not to try to "advise" these individuals as they will only resent it, feel threatened by it and become even more steadfast in their refusal to accept advice.
politicians are like babies' nappies: they should both be changed regularly and for the same reasons
I actually think web apps are a good idea. The problem is in their execution.
Specifically the problem is that while web apps are becoming popular for "real applications" .. they are still being developed in a style suitable for your personal blog.
Which is where I think the mixing of experience with new ideas needs to come into play. You need old experienced guys getting young "web types" to go through proper program design, development and testing. You also need web technologies to evolve from their "copy+paste from the web and modify as needed" state into something designed for real work.
And I get better every day. Fuck you to any manager that says otherwise.
Here's a last fuck you to the managers, just because.
That this person is using in order to determine what is 'best' exactly?
He's using something very subjective and taking only part of a set. There are also other factors in play - such as the age of the person's account (which also goes up with age) and that sort of thing.
I think older programmers might be more adaptable than you think. The more languages I've learned (at least to a basic level) the faster I pick up new ones because I recognize stuff I've seen before and only have to pick up the deltas.
Quidnam Latine loqui modo coepi?
You kids GET OFF MY LAWN!
I look at code I wrote a few months ago, and I cringe. I look at code I wrote years ago, and I feel like inventing a time machine just so I can slap past-me in the face for being so stupid.
I mean, seriously, why did I use #DEFINES so much for constant variables? And goto... I still have nightmares about some of my older code. And I'm sure that 2 years from now I'll look back at the code I wrote now and feel just as ashamed.
Programming skills don't really age. Some of my best code styles have come from looking back at ancient stuff - LISP in particular, but I have style quirks I picked up from almost every language I know. Sure, I write everything in more-or-less modern languages (C++ is still modern, right?), but that's just syntax. If you know the heart of programming, you can only get better as time goes on.
The solution to every problem is a web app.
I've known some ASP.NET developers like that. One was given the task of creating a process to download a file via FTP every day and insert the data into Oracle. He wrote a web app so someone would have to click it every day. When I asked him why he didn't create a service or console app that can be automated so that someone didn't need to actually click on the file, he gave me blank stares.
That neatly describes new, young, callow graduates coming into their first job. It doesn't describe many people over 35 with family commitments, a good network of professional contacts and an impressive array of successes under their belts. Hence, companies are not very likely to rate "experience" highly as it tends to make employees who will question decisions, undermine authority with "suggestions", know what their employment record is worth and have developed the ability to promote their skills.
Never mind that experienced people can produce better results. The quality of their product is ultimately defined by the quality of the design decisions - good implementations don't matter if the underlying basis of the product is rocky - either from a technical point of view or that it simply doesn't address any needs that would make it sell profitably. Companies would argue that it's better to have fast workers, doing 60 hour weeks with no time off and get a shaky design out the door quickly, since then the failure comes to light sooner. That the young workers also get paid a lot less helps too as it makes the failures even cheaper - though it does make them a lot more probable, too.
politicians are like babies' nappies: they should both be changed regularly and for the same reasons
The linked article proves nothing, and in fact outright says it doesn't matter, because the data's inconclusive. Again, the summary's misleading.
The data used was based on StackOverflow users' ages and reputation scores. The correlation is that users with higher recorded ages have better reputations. That hardly equates to being a better programmer. Perhaps, after 20 more years of dealing with society, those older users have learned that writing a thorough response with proper grammar is better than "u shud look 4 the widget lib." Perhaps the older users have simply seen more of the world, and can infer more about the question's actual meaning without being given explicit details. Perhaps those users who are young and knowledgeable have lied about their age, to avoid the ageism that pervades the professional world. Perhaps those younger users don't bother building up a reputation, because of objections to establishing permanent identities.
Even if we we accept that the StackOverflow data shows a correlation between age and actual programming ability, we still need to define that ability in a meaningful sense for each workplace application. Consider, for example, the current biases surrounding the use of NoSQL storage systems. To someone with a background in traditional RDBMSs, this NoSQL fad is ridiculous, because it abandons ACID, seemingly only to avoid SQL. To someone with a more theoretical background, a database unfettered by ACID is more flexible, and if using that flexibility requires a different means of expression, then so be it. Which approach is correct depends entirely upon whether the business needs flexibility or consistency.
If someone is looking for "good" programmers, they should first be able to define exactly what "good" means to them. StackOverflow reputation isn't really a very good metric for each personal opinion.
You do not have a moral or legal right to do absolutely anything you want.
Slashdot should maybe hire a few octogenarians to fix some of the weird glitches we've been seeing lately.. I mean, what's up with that giant gray box along the entire right side of the page?
For justice, we must go to Don Corleone
The "study" that doesn't deserve to be called one claims that people who write more answers and ask fewer questions on SO are better programmers. That is as dumb as saying that business consultants are better CEOs or football trainers are better football players... As far as I am concerned, I am 38 now and I'd say that I've become more experienced and much lazier, but I wouldn't pay myself a higher salary for a programming job than I'd have for the younger me at 25. Among other things, because I could spend 20 hours in a row trying to solve a particular problem back then, i.e. what I lacked in experience, I more than made up for with persistence and enthusiasm.
"I love my job, but I hate talking to people like you" (Freddie Mercury)
Theoretically, that's a great idea, and probably the way it should be done. However, that's not possible in reality.
Most web technologies are far too cobbled-together to be salvaged. HTTP handles basic stuff like compression and caching very poorly. HTML is a mess, and it's only getting worse with HTML5. JavaScript is a poor excuse even for a scripting language. Cross-browser compatibility has always been a disaster.
Without a proper foundation, it's just not possible to build reliable, usable software. The web development field lacks a good foundation. That's why web apps have been around in some form or another for 20 years now, and they still aren't as usable as many C applications from the 1970s.
Advanced programmers can't help here. The only advice they'd bring is to scrap what's there, and not create web apps. That's the only reasonable advice that they can give, given the context!
Native apps are always better. That's why smart people still use real email clients, rather than GMail and other webmail systems.
Email clients which take 5 seconds to start up, invent their own non-system UI scheme, fail to scale with DPI settings, remain out of date on 98% of installations, crash unexpectedly, bundle malware with installers, waste CPU cycles while running in the background, are incompatible with older-version data formats, randomly corrupt the db after a serious error, fail at unicode & localization, take weeks to learn, have an interface control system more complex than a nuclear power plant's, invoke executables sent by botnets, use non-documented encryption methods on the db, are a horror to sync with other devices, and so on and so forth?
"Nuff said.
No one ever had to evacuate a city because the solar panels broke!
Sounds to me like you've just described GMail perfectly. So, what do you think about native mail clients?
Programmers don't continue in their line of work unless they're above average in ability.
If you only read the first listed problem, then yes... that would describe web mail... however, the other 14 problems are nearly exclusive to native clients. And that was by no means an exhaustive list. Anyone who has used Outlook or Thunderbird can bitch about them all day long.
;).
btw, Gmail is a helluva lot faster than Microsoft Outlook
Outlook is not the only native email client, you know.
...our lawns are less cluttered with errant youngsters. Gives us space to think more clearly.
It must have been something you assimilated. . . .
In other words, get off my lawn?
Beat me to it. Thunderbird works wonderfully here.
"People don't want to learn linux" hasn't been a valid excuse since '03.
Yea, but it's the only one I always disable or delete.
09 F9 11 02 9D 74 E3 5B - D8 41 56 C5 63 56 88 C0 45 5F E1 04 22 CA 29 C4 93 3F 95 05 2B 79 2A B2
I fall under the "young" category, and while there seem to be some advantages to it, I have the utmost respect for the elders in my workplace. I would like to think, however, that my youthful enthusiasm allows me to better absorb the knowledge and experience the gray-beards I work with are willing to share, so that next generation's "old programmers" will be better than the current one.
Apparently wizard is not a legitimate career path, so I chose programmer instead.
You can automate a click on a web page. E.g. simply wget the url
you're bound to be good. All the finest improve with age.
why did you install it in the first place then? That was pretty dumb, wasn't it?
Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
"That's why heavy email users still use real email clients, rather than GMail and other webmail systems."
FTFY
Webmail fills a HUGE need, dont be so quick to disparage it. The right tool for the right job, remember?
Good-bye
I totally agree. Web apps have to run in a browser. Native apps get the whole operating system. It is very difficult to get a web app to have the usability of a native app. It takes a lot more resources (cost) to create a good web app. To do a PHP web app you need to use PHP, Java (for Ajax), HTML, Apache configuration, and some database and worry about security. Replace PHP with whatever and Apache with IIS - still it is a mess compared to a native app. Give me client/server any day. If you are not sure how I feel about this, wait - 'Hey, you kids get off my grass.'
world was created 5 seconds before this post as it is.
Yeah, but then you still have the web app that kicks off the wget. It's web apps all the way down!
JOIN US FOR PONG!
Technically my programs get less and less challenging. When i was 27 i liked to build beautiful castles of code. Like binding everything low-level using JNI to Java and only call this indirectly from jython. No, that was very nice and it worked.
What i learned the hard way: I programmed everything which doesn't run away quickly enough since i am 11y old. Not everybody did that. Not everybody says: Oh, JNI, never heard about it before, but i'll read it in the evening.
The reality is: There will be this FORTRAN-only programmer (i am a physicist), which whom you have to collaborate. There may be somebody whose understanding of OOP is on the level of a monkey who just observes that every object is subject to gravitation.
What age really brought me is a very realistic way of evaluating things in the respect of "how can that be maintained, by somebody who is not me?".
This does not mean i don't like advanced tools and ways of programming. But i try always to pack it in a oversimplified way with no need to understand the inside, while earlier i assumed that understanding the inside would be what interests people.
LOL when was the "to C#" transition, it's still all Java.
The older programmers, although I prefer the term "more experienced", have had a longer time to make idiotic mistakes and face the harsh reality that we really don't know everything. Of course the younger programmers have not had enough to time to even realize they don't know everything. Of course some of them who o get caught doing something stupid believe they are victims of some evil MS conspiracy. Of course I am prejudiced since I started my programming using BASIC (and not the Visual Basic either). Writing programs with only 640K memory or a whopping 1024K if you could make tap the extended memory really separated the men from the boys.
Can't post a comment on his blog. Post and preview just reload the page. Cookies are on for blogspot and I've a google.com account. No other way to contact Peter. I presume blogspot requires cookies enabled for some additional domain, but there's no way to find out. I'm gobsmacked as ever that a major web-site either doesn't know or doesn't care this occurs - both causes are stupifying.
My would-be comment;
I believe this analysis is fundamentally incorrect, due to the StackOverflow scores having a different meaning than that required for this analysis to be valid.
Difficult questions and answers, which require a great deal of specialist knowledge, receive very few votes, since almost no developers are qualified to hold an opinion.
I've answered questions on lock-free data structures which have in the end obtained one or two votes - because hardly anyone has spent the years required becoming competent in this field.
I've provided one sentence of grandma-wisdom about someone's problem at work with their boss asking them to use pirated software and I think I received 40 votes - 400 points.
Quick and simple answers to simple questions receive the highest number of votes.
I think the scoring system actually reflects the most popular answer for a single given question; that the scoring system is only meaningful *within the answers for a single question*. It selects and rates between them.
As such, this higher-level analysis, comparing scores *across questions*, is fundamentally incorrect. It requires scores to be a type of indicator which they are not.
To summarize; if answers requiring years of learning lock-free gains very few votes, but one-liners telling someone they'll have more problems in future get very many votes, the actual number of votes an answer receives does not indicate the skill or experience of the person posting the answer. It only reflects the rating of answers *for that one question*. If you wish to compare answers on a per person basis across questions, I think all you can do is consider the position of the answer within all the answers for that question, and assign a value to that position.
If this were done, my lock-free answer, which was top of the list of a very short list, would receive the top score, which my one-liner, which was I think second or third of the answers to that question, would receive a lower score.
Bullshit. Citation needed. Every try opening a large attachment in GMail or tracking down an email that your the "big boss" sent to another company?
It's been my experience that experience does help quite a bit. Those who have been there and done that are able to do that again much better. I know I've learned a lot since I wrote my first program over 30 years ago. But that's the key. I keep learning. I keep exposing myself to new technology and new methods of accomplishing complex tasks. Trouble is, I've found that I tend to be the exception, rather than the rule.
The biggest trap experienced programmers fall into is to get in a rut. It worked that way once so they see no reason to ever think about doing anything else any other way. When change eventually finds them, i.e. when their 30 year old processor, language, and development environment is no longer supported, they have an incredibly difficult time adapting to new technology. I've seen more than once the troubles that come when the old crew refuses to evolve. It can get ugly.
Kids are great at taking up the newest technology and learning the new ways of doing things. Trouble is, they don't have the experience to build upon so they often don't understand how yet to really plan and execute anything on a scale beyond a college class assignment. So they're great for accepting the new ideas on how to do things but you really need some experience to get things done.
I've had the best luck working with people who have a broad range of experience working on several different projects. They've been exposed to different ways of doing different things. They are usually more open to trying to find the best solution rather than stick with one way of solving everything. If I see someone's resume and they've worked at the same place doing the same thing for decades, I'm usually more reluctant to hire them than I am a college grad. I know I'll have to teach both of them but the college grad is usually more open to learning than the dinosaur who's looking for a new job because he has to rather than wanting to.
... in bed.
All older programmers are aware of this fact. You younger programmers should find an older programmer of the relevant gender and experience this fact for yourselves.
Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
Stack Overflow reputation is cumulative. This means that if two people are providing answers of the same quality and at the same rate over time, the folks who have been there longest will have higher reputations, and that the higher reputation will reflect only tenure. Not any kind of quality.
If you want to look at quality, you should be looking at a metric that is something like (total reputation / number of months active). Even this is imperfect of course, since if people take a hiatus or something that will present the appearance of worse quality using this metric.
I was going to say that this fatal flaw invalidated the conclusions because the correlation between reputation and age just reflected the older people being around longer. The problem with that is that Stack Overflow opened in 2008. That's not enough time to explain a linear trend that tracks from age 16 to nearly age 50, but the final conclusion "So, senior coders earn their higher reputation by providing more answers, not by having answers of (significantly) higher quality." should still be re-examined with tenure-controlled analysis to try and see whether older aged members have been members longer.
The Southern Baptist Convention has creationism. On Slashdot, we have porn.
Native apps are always better blah blah blah
It isn't the foundation it's the skill of the developer, most of whom should be crammed into shipping containers and sunk into some deep part of the ocean.
good developer = good app
bad developer = bad app
Actually, smart people still use gmail; they simply enable POP or IMAP and access it from a real e-mail client, thereby giving you the best of both worlds.
Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
Why should a programmer become worse over the years? All skills live from practice.
The only interesting point with this is, that there is proof of it now.
cb
John Carmack managed to kickstart a genre with an 'embarrassing' crappy VGA raycaster.
and look where we are now!
What else do I need to say? Herb Schildt is getting WORSE with age. He put out the "Art of Java" a few years ago that used FLOATING POINT VARIABLES FOR MONEY AMOUNTS (Java has a class library that's designed...well, nevermind), and he put out a C# book (can't remember which) that has an expression that tests for division by zero and if the denominator is zero, returns zero. (Maybe he is trying to out-do the "nullity" guy?)
I'd say that *many* older programmers get better than *most* younger programmers. But that's hardly a guarantee. Plenty of people don't learn from experience. And there are occasional people whose raw talent is better than is gained from experience. Ultimately, programming is an exercise in attention-span management. Bad code=trespassing on others' attention span. But there is plenty of older programmers who never honed the attention span management and who simply survive by jumping from one technology to the next.
Any guest worker system is indistinguishable from indentured servitude.
The only meaningful piece of data the blog post presents to support the claim that developers get "better" with age is that upvotes per post on Stack Overflow is essentially constant as age varies. Of course, this doesn't support the conclusion at all--it refutes it. What a piece of garbage article. The blog post's title, "It's official: developers get better with age. And scarcer." is catchy, but wrong. The blog post says it best:
So, senior coders earn their higher reputation by providing more answers, not by having answers of (significantly) higher quality.
Is a person who asks fewer questions and answers more a higher quality coder? It's unclear--and the blog post doesn't even discuss it.
[There are other warning flags. He calls something "a textbook example of a bell distribution curve", but I hope no stats book would ever use it as such: the tail on the right is way too long. "A 40-year old coder provides about 100 answers, roughly double the answers of his half younger colleague": yes, but there is a peak at 40 years, and a dip at 20 years, so this is a poor example to give. It equates posting on Stack Overflow with being a professional developer, and in general assumes that it has a representative sample, which is far from certain.]
This comment is logical regardless of the fact that I think the Stack Overflow types are jackasses.
I have 35 years of excellent experience. I've worked my way up from Systems Engineer to management. I have kept my skills sharp and up to date. But I lost my job in April due to downsizing and I can't get a job because I'm over 50. I know this is the reason because several HR people in their late 20s refused to hire me and told me that was the reason. They were looking for "someone with a more youthful outlook". So if you think that "Someone with 25 years experience is far more employable than someone with 5 years because they... have more experience?", you'd just be wrong.
My first programming experience was an SC/MP homebrew with 2k of RAM built by a local college instructor who loaned it to me as a high school freshman, after giving me a ten minute introduction to hexadecimal, four times as long as necessary, since my father had taught me binary in 1972, after learning it from a student at his church when he returned from a stint as one of Iverson's APL proteges. If only the college instructor homebrew wizard had taught me that twos complement branch targets were computed after the PC updated, I would have managed to sleep that night before 03:00. Man can not live on forward jumps alone. It was a year later before I first experienced an ENTER key.
Here's the thing: how many people like me went head-first into computing at the age that I did? Half the people I worked with on my early work terms were 30-year-olds with psychology degrees with the knack for rule systems, who just showed up somewhere and announced they were willing to learn.
How many people who entered the profession in the 1980s as thirty-somethings were going to hang in there much past the age of 45? I don't that was in the cards for most of them.
I consider myself among the vanguard of silver sourcers bred in the bone. Even in elementary school, I was drawing flowcharts for decision procedures, in emulation of the *one* useful computer science book my father was able to borrow for me from the local university library. There just wasn't much of a general nature available. By the time I hit grade five, I was seriously convinced that flow charts suck. What moron invented that? Although a flow chart does provide a clear expression that your socks go on before your shoes, they didn't seem to scale well to anything complex or subtle. A flowchart for my optimal solitaire strategy would have covered a wall.
This was before the Mythical Man Month. One morning on the drive to school the book was reviewed enthusiastically on the country-ish radio station my father preferred and we immediately charted course for the nearest techno-chic book store. Yeah right. To several higher powers.
This profession is ruthless to an almost unprecedented degree in the amount of self-reinvention required to stay relevant. What other profession has as its founding premise that anything you can do well the machine can do better? Most of our value work occurs in the band of things we can't quite do well, yet. Our reward for succeeding? A T-shirt reading "been there, done that, wrote the script".
Something I used to say a lot 15 years ago to programmers with less experience: "your compiler is lying to you". This was back in the day where compilers had not yet entirely thrown off their shifty origins.
These days I struggle to make sense of how far up the jello stack I've moved in my value add. This past week I've been working with the Functional Data Analysis package in R. There are matrices at work behind the scenes who merest dimensions I am not worthy to investigate. But the magic is cool, there's no denying.
I get some of my own back when I'm working with Rinline and Rcpp. The article yesterday about the history of ethernet said that an entire frame in the newest standard is transmitted in a single 10M bit time. In my recent R work, where I used to think of the C++ compiler as a platform, I now regard it as a helper routine.
The kind of recent Stanford grad that Google prefers to hire would understand as much as I do about R at the high level, and would have a pretty good general understanding of what the C++ compiler is there to do. With my deeper background, in the event of an anomaly, I could pursue it to the ends of the earth: this line of g++ source code has selected the wrong instruction addressing mode in the VMX instruction set recently added. That would be like returning to the home town where I grew up, and discovering that the pubs were bigger than ever, but the parking lots weren't. It would be both familiar, yet unfamiliar. And if it's not g++, I cou
Yes, I've been stored in many a cool, dark place in my career...
By the taping of my glasses, something geeky this way passes
Ever have your Outlook lock up for minutes at a time because you didn't realize your system emailed you a stack dump of over 3MB? In GMail, it sees it has an attachment, but doesn't try to download/open it with the rest of the email. No, I don't know how Thunderbird handles overly large attachments; I like my GMail UI (via computer, phone, or parents' computer when I'm visiting) too much.
There are good and bad things to each (native / web), you just have to understand them to get around the issues. Need to access your GMail offline? Search through it while on the airplane?
On the other hand, gotten emails saying your mailbox is full because Outlook doesn't delete mails, it just moves them to the "Trash?" And then, when you delete them, you can still un-delete them? If you can un-delete them, then they weren't really deleted, were they? Where is that space being taken up?
640K? We used to DREAM of having that much memory. We had 48K, if we were lucky and had maxed out our Trash-80!
Run an assembler? Nope, I had to POKE the values into memory from a string of comma-separated numbers, and jump to it. Hand-coded Z80, baby!
Ah, those were the good old days. ;)
You can't add quality to a web app.
Can't?
Many web apps today are of poor quality, and there are some inherent disadvantages to the medium, but I find that statement dubious.
The only complaint (but it is a big one) with the older programmers I have worked with is that they don't learn anything new. The problem is that they have had enough experience that they can pretty much solve any problem using the technology/techniques they already know. Some kinds of problems require something different, but instead of learning something new, they force their existing knowledge onto the problem. It ends up a mess and taking much longer than it has to. An inexperience programmer realizes he doesn't know everything so he will evaluate a few different options to find the best solution.
e.g. I have seen code that took days/weeks that just did DOM traversal to process a large XML document. The entire thing could have been reduced to a few lines of xpath and done in an hour. But the programmer was already "experienced" with XML so he didn't bother to read up on it and consider xpath.
With how often software bugs come up, I would expect engineers wouldn't grow to be overconfident in their abilities. Sadly, this isn't the case.
Of course I am prejudiced since I started my programming using BASIC (and not the Visual Basic either). Writing programs with only 640K memory or a whopping 1024K if you could make tap the extended memory really separated the men from the boys.
Actually the BASIC compiler only made 64K data segment available to the program as I recall. Which was enough for even my most robust commercial apps at the time.
Of course for graphics processing and other data heavy apps using 8086 asm all the available 640K and additional EMS to 1 meg was necessary. I didn't happen to write any BASIC stuff like that, just 8086 asm.
Those were interesting days back then, when you had to be a real programmer. Now let me go check on my lawn.
I am one of the old programmers (in my 60's). I have seen many programmers get a job, stop learning and grow obsolete, then lose their job.
I would not expect those programmers to even read stackoverflow.com.
I'm 50 next year. My programming ability gets better and better all the time, and has done since I started in 1980. When I look back at stuff I wrote in the 80s, it's cringe-worthy and an embarrassment. I'll probably say the same about the stuff I'm doing now when I'm 70.
What has changed for the worse though is my energy. Back then I could code like a demon, then go out and party half the night and carry on next day without feeling any the worse. Of course, I was pouring my energy into a lot of bad code, but it often ended up working by brute force. Now I find it hard to stare at the screen for long periods at a time and overall my work rate is much lower - but its effectiveness is much higher.
Sometimes you are not solving new problems but merely something you've seen before that a newer employee thinks is a new problem. That can save a lot of time and be worth a lot.
The 64K segment size on the 8088 did permit addressing of multiple segments which required you to work within the 640K boundary when using multiple segments. At least that is what I recall after 24 years. I started with BASIC, C, and assembly on the 8088 architecture but the bulk of my work included C development on IBM's System 5 and the AIX operating systems.
I'm crusty (40s) and dove into Ruby a few months ago. The last interpreted language I played with was probably Apple Basic in the early 80s.
So I was expecting it to be a bloodbath with all new things to learn. Well, obviously a hash is a hash, loops and maps are still there. Calling methods without parens is goofy but it wasn't much different than transitioning from Pascal to C way back when.
So yeah, we're adaptable because 9 times out of 10 it's merely syntax changes, not things that are mind-blowingly new in concept.
The 64K segment size on the 8088 did permit addressing of multiple segments which required you to work within the 640K boundary when using multiple segments.
true, which I mentioned in my asm work. The BASIC compiler made one 64K segment available to the program, and IIRC didn't provide switching among data segments in those early days.
Of course you could (and I did) inline asm and do what you wanted to extend capabilities.
I have one single question involving web apps and crucial data. Is the web designed to give a single shit about lost or badly delayed data? Yes or no. Your answer will be my response to your first sentence.
Speaking as someone 62, wrongo. Languages all look the same (or in families) after a bit and the problems are basically the same ones. What new skills and techniques might you perceive to be harder for me than say a twenty-five year old, to pick up?
What I've found is the twenty-five year olds don't know enough to pick up something new readily because they don't have anything related in their experience.
My whole point was that execution is poor. Built on technologies that as I stated, were never designed for real work.
That said, even though it should be built in at the foundation layer, data integrity can be built into the application layer (although in a lot of cases it's not.. and this is the result of what I said.. lack rigorous design and process).
which is a little different from being the most modern coder. I code in .net mostly, either vb or C#. After a while, you start seeing repetitive problems (It sounds cooler if you call them "patterns" even though the term adds almost nothing semantically). After a while, you can write a class with a function to append an array to an array either horizontally or vertically in your sleep.
But you don't. You have them all pre-written after a while, which is why it seems to management that you're not working as hard. You just solve the problem and go home without noise or drama.
Please do not read this sig. Thank you.
http, html, javascript, etc... are just for the view. For the heavy server-side lifting you can use whatever proven reliable technologies you feel like entrusting your project to.
Tried a browser-based UI and come to the conclusion that it just won't do? /If/ you structured your app properly, you can swap your browser-based front-end for something else without completely uprooting your back-end. It's not going to be effortless, but then again you shouldn't need to get too deep into your project before you realize the UI's no good.
This mainly applies to business apps that can deal with a bit of UI latency and don't need to pump huge amounts of data to the user (i.e.: not a professional graphics app).
C isn't too bad. You can let those C programmers do most things. Don't trust a C++ only programmer too far.
If you want to make sure someone under 30 is a REAL programmer you have to ask him what embedded systems he's coded for. If he's over 30 the first computer he programmed was probably equivalent to an embedded system today.
except for 0 evaluating to true! ;)
I'd really like to know as I'm a 38 year old student. You say all bets are off. Please expand.
Many of the firm's 30 employees are not yet 25.
They were hired straight from college to ensure their thinking and work habits are untainted.
Now they're making Wall Street's latest fortune, a fraction of a penny at a time.
http://www.elitetrader.com/vb/printthread.php?threadid=184387
Slashdot = Sarcasm
whoosh!
-Billco, Fnarg.com
Only financially secure companies hire programmers. Employers hire employees that can fit into the company culture. Employers keep employees that well adjusted employees like. Hard skills can matter less than soft skills. Companies don't want to hire conceited employees.
According to Erikson's Psychosocial Stages, people experience a "Generativity vs. Stagnation" psychological crisis during their middle adulthood. This well established theory explains why programmers may "contribute more" to StackOverflow in their middle adult hood. Peter Knego can't conclude that developers get better with age from this data. His conclusion is based on the opinions of the young. He can only conclude that young and old developers both play important roles in the StackOverflow eco system.
Also, human intelligence crystallizes with age. According to Wikipedia, "Crystallized intelligence is the ability to use skills, knowledge, and experience." Wikipedia also states that fluid intelligence "is necessary for all logical problem solving, especially scientific, mathematical and technical problem solving."
Also, I've worked at very profitable companies with low quality code bases. The quality of the code is less important to many businesses than the attitude of the employees towards the clients.
sources:
http://en.wikipedia.org/wiki/Fluid_and_crystallized_intelligence
http://en.wikipedia.org/wiki/Erikson's_stages_of_psychosocial_development
Try approaching companies socially instead of emotionally. I personally don't like working with people who place more importance on inanimate objects than on real people.
Indeed. I can do a decent job of reading the control flow of a Z-80 program by looking at a hex dump after hand-assembling so much of it. And I will never forget that the CLS routine was at 01C9.
#naabhaprzrag, #sverubfr-000, #agi-fcbafberq, negvpyr[pynff*=' negvpyr-ary-'] { qvfcynl: abar !vzcbegnag; }
I agree with that, but also would like to point at that, maybe there is a better reason that the blogger in question thought older programmers asked less questions.
Maybe more of us prefer the traditional ways of investigating a programming chalenge, or new language, framework etc BEFORE going to a public forum to ask for assistance.
Sure, I have sometimes picked up useful pointers from Stackoverflow, but it wouldn't be my first stop when investigating a problem. Over the years I think the better programmers I have worked with have been those who know how to look up the manual/programming guide/whatever when necessary, and go bothering their workmates only after MSDN (for instance) failed to give a clear answer (yet again)
If I had a DeLorean... I would probably only drive it from time to time.
After 20+ years of programming, I definitely feel that I program better now; especially with regard to making the code more flexible to change and better algorithm design based on years of trial and error with diff approaches.
However, I have to admit that I've gotten slower at reading other people's code. My eyes just are not as good. They are not blurry; it's just that they don't move as fast, take longer to focus into position, and I can't quite read (absorb) as fast. Can I get a bionic implant?
So, age is a trade-off.
Table-ized A.I.
Java (for Ajax)
Java != JavaScript
Provided, that is, you're one of the thousands, maybe even millions, of people afflicted with aging.
<xml><I><am><so><damn>Web 2.0</damn></so></am></I></xml>
God, you haven't tried Apple's Mail. What a pain it was, when I last tried to use it (10.5).
Some RSS feed (thank you Mr internet) somehow managed to lock it up, every time I opened Mail. A native app shouldn't crash because of malformed XML, or some broken image, or whatever it was trying to do.
Yuck.
try haskell
I agreed with you right up until you started shitting all over Ruby on Rails. Yeah, I don't like Ruby on Rails. I don't like cream cheese either, but I'm not going to twist the topic into a discussion about cream cheese. Yes, young programmers who don't know anything are stupid and annoying, I agree. I also agree that stupid and annoying programmers propose a web app for everything. One of my teachers, a ten year+ programmer, recommended doing a web app for everything, and he was in his late 30's. The problem with those who want to create a web app for every problem isn't that the programmers are young, it's that those specific programmers are stupid, or don't want to learn anything new. It's like using a hammer to cut wood. If it's the only tool you know, you'll make it work, but the result will be fucking ugly.
Email clients that let you read and write responses to email, regardless of the current state of your internet connection. Email clients that can run quietly in the background and notify you instantly of any incoming mail without the need for a bloated, resource hogging browser constantly running. Email clients that can do two way syncing instead of just having all of your mail at the mercy of the mail server.
Native apps are always better
I don't think that's true. Show me a web app, and I could always write you a native version that's worse. The important point is that native apps always have the potential to be better. A web browser exports a subset of the native platform's capabilities to the developer. That's the absolute most that it can do. It can't provide capabilities that the host system doesn't have, because the web browser is a native app.
I am TheRaven on Soylent News
As someone less than half your age, I agree. Once you've learned C, Erlang, Lisp, Haskell, Prolog, Smalltalk and Forth[1], pretty much any language that you come across is going to be easy to pick up. The most recent language that I learned was Go. It took about a day. It's a mixture of C, Erlang, and Smalltalk semantics, with C-inspired syntax, combined in quite an elegant package. The only new thing I had to learn was the syntax. There was nothing new in the language, just different ways of combining things that I'd seen before. In contrast, learning Haskell when I hadn't used a functional language before was quite hard.
On the other hand, someone who has spent the last 40 years exclusively using Algol-family languages will have have a lot more problems. The same thing is true between problem domains. If you've spent 20 years working on more or less the same problem, then you're going to have less useful experience than someone who has spent five years working on half a dozen unrelated projects.
[1] Or another set of languages, with one from each of the families represented on this list. I'd also be tempted to add Self or JavaScript to the list, although from Smalltalk these are pretty trivial to learn.
I am TheRaven on Soylent News
I think it's pretty fair -- if a web app doesn't have quality from the start, it will take a rewrite for it to have quality later. You can't just patch one or two things to fix it.
On the other hand, an awful lot of internally hosted "enterprise ready" applications with servers running at a business have really lousy performance, usability and stability. At my workplace, they are on I think the third "Enterprise Resource Planning" system in four years. I don't know exactly what made them abandon the last one; the new one seems to have an extremely similar UI and the server seems to be less stable. That's all with native applications -- no web involved, which surprises me a bit.
whoosh, yourself!
(seriously, if mwlewis wasn't being facetious I'll turn in my snark card)
> Writing programs with only 640K memory or a whopping 1024K if you could make tap the extended memory really separated the men from the boys.
Humm, reminds me of something...
http://dilbert.com/strips/comic/1992-09-08/
lucm, indeed.
The number of developers halves every 6 to 7 years. This could be due to being promoted out of the developer pool in to managment or architecture.
This is pretty much what I've always felt was happening. And explains away a lot in the ageism debate.
“Common sense is not so common.” — Voltaire
Java for ajax? Funny. Thanks for showing you don't really know what you're talking about.
OK, I'll grant that webapps aren't the best for *everything*.
Specifically, mining or other industrial control or information apps where you have to have a highly customized user interface. Stuff like:
http://platform.netbeans.org/screenshots.html
or
Palantir
But for your average ho-hum corporate HR data-entry app? Web's it.
No installation. Stateless. Testable. Cross-platform. Copy-pastable. Font-resizable. Scriptable.
If it's written right, you can bookmark locations within the app with hypertext. Try that with a normal application. And also get/set information. See REST
I'll agree that many corporate web apps aren't written correctly. They're not written for heads-down data entry. But's that not to say they couldn't be.
After a 4-char field is filled up, use Javascript to move to the next field automatically. Associate labels to fields. Set keyboard mnemonics for fields (Alt+letter)--it's in the HTML spec. Order the fields for easy, logical tab order.
Don't force the user to use the mouse to save the record and move to the next one.
Can you name other problems you have with webapps vs. desktop?
I'm not a lawyer, but I play one on the Internet. Blog
The older programmers, although I prefer the term "more experienced", have had a longer time to make idiotic mistakes and face the harsh reality that we really don't know everything. Of course the younger programmers have not had enough to time to even realize they don't know everything. Of course some of them who o get caught doing something stupid believe they are victims of some evil MS conspiracy. Of course I am prejudiced since I started my programming using BASIC (and not the Visual Basic either). Writing programs with only 640K memory or a whopping 1024K if you could make tap the extended memory really separated the men from the boys.
Try 16K on an Apple ][ Standard, plus a lot of embedded work I did after that with a couple k of EPROM and 256 bytes of RAM. If I was lucky. The truth is, in the desktop world today, from the programmer's perspective he has effectively infinite resources. Sure, he could spend a week optimizing his code to take less memory, say, but why bother? The target machine has a couple of gigs in it ... what's another ten megs of array space? What the hell, it works and the boss wants it shipped yesterday.
The higher the technology, the sharper that two-edged sword.
Indeed. I can do a decent job of reading the control flow of a Z-80 program by looking at a hex dump after hand-assembling so much of it. And I will never forget that the CLS routine was at 01C9.
Call -151
The higher the technology, the sharper that two-edged sword.
I think the problem is not so much that web applications are inherently less modular or adaptable than native applications as it is that there are an abundance of web programmers who believe that a framework is a substitute for the ability to design an application. It's still a young field and there is a very low barrier to entry.
People without experience, or who can't learn the lessons of their experience as in your example, are just as capable of writing terrible and unmaintainable native applications.
Words from an "old dog" programmer I work with:
---
One day an old German Shepherd starts chasing rabbits and before long, discovers that he's lost. Wandering about, he notices a panther heading rapidly in his direction with the intention of having lunch.
The old German Shepherd thinks,
"Oh oh! I'm in deep s*** now!"
Noticing some bones on the ground close by, he immediately settles down to chew on the bones with his back to the approaching cat. Just as the panther is about to leap, the old German Shepherd exclaims loudly,
"Boy, that was one delicious panther!
I wonder, if there are any more around here?"
Hearing this, the young panther halts his attack in mid-strike, a look of terror comes over him and he slinks away into the trees.
"Whew!," says the panther,
"That was close! That old German Shepherd nearly had me!"
Meanwhile, a squirrel who had been watching the whole scene from a nearby tree, figures he can put this knowledge to good use and trade it for protection from the panther. So, off he goes.
The squirrel soon catches up with the panther, spills the beans and strikes a deal for himself with the panther
The young panther is furious at being made a fool of and says, "Here, squirrel, hop on my back and see what's going to happen to that conniving canine!"
Now, the old German Shepherd sees the panther coming with the squirrel on his back and thinks, "What am I going to do now?," but instead of running, the dog sits down with his back to his attackers, pretending he hasn't seen them yet, and just when they get close enough to hear, the old German Shepherd says...
"Where's that squirrel? I sent him off an hour ago to bring me another panther!"
Moral of this story...
Don't mess with the old dogs...
Age and skill will always overcome youth and treachery!
BS and brilliance only come with age and experience.
I don't know, things like "No Shit, Sherlock" come to mind. Is this like the study that found breathing air was helpful to live ? WTF /. is really slipping lately. Stories like this yet nothing about "What if you threw a Carmageddon in Los Angeles and nobody showed up" ... haha
"Computers are a lot like Air Conditioners" "They both work great until you start opening Windows"
Uh huh. Then one morning, you go into work and find $someone's lost all your mail, and you get to sit around for three days doing nothing while they scurry around trying to get it back. No. Thank. You. This happened to me on a recent contract at $honking_big_corp.
I want my valuable communications under my control, not some wannabee Exchange Server support person. Nor do I want anyone grepping my mail for THEIR purposes (selling it to their advertisers).
I'm astonished to see so many take that lazy way out. /.ers bitch and moan about losing their privacy day in and day out, yet so many of you just hand that valuable function off to $some_cloud_provider because spending an hour figuring out how to configure three or four apps to seamlessly work together to do it all the right way's too much to ask of you.
Me: fetchmail from ISP's smarthost --> postfix --> mutt+procmail+bogofilter --> postfix --> ISP's smarthost. I also Bcc: a copy of all mail I send while at clients to myself so I know it's not going to get lost.
Ah, "But (n)curses interfaces are so last century!" Let me tell you kids: the cloud is just a re-invention of the mainframe era, when wizards in white coats behind glass walls had control of your stuff; not you. "Brillant!" [sic] You're not as modern as you think, kids.
BTW, when I first saw this story (young vs. old), the first thing I thought was, "Well, duh!" Who'd you prefer to remodel your house; a kid straight out of trade school, or a seasoned contractor who's spent twenty years learning how to fix others' boneheaded mistakes?
"Tongue tied and twisted, just an Earth bound misfit
You don't have much choice when it's installed on the corporate image.
From hell's heart I fstab at /dev/hdc
Jumping on his typo (he certainly meant to type Javascript) rather than the content shows you are admitting he's right.
From hell's heart I fstab at /dev/hdc
IMO you've over simplified the problems and flexibility required for a startup.
it involves a lot more than learning a new programming language... Flexibility with language, methodology, process, most of which being an experienced programmer is an asset.
The only issue i can for-see is the "that won't work" approach or "this way is much better or more maintainable but will take significantly longer". which is great for an established company, but you really want a guy who thinks anything is possible as part of your team and willing to work towards impossible goals, also an aged programmer won't support an idea they don't think will work & productivity and quality fall with that. where as a younger programmer is more likely to use an impossible project to "show off" precisely because its hard.
obviously I'm just speaking out of my arse though,
wait, so MSDN actually give clear answers occasionally? the best answers in MSDN i find are in the comments.
Yes, I've oversimplified, because this is /., not a complete book. As you say, being an experienced programmer is probably still a help with methodology and process because they'll have done a lot of switching between methodologies and processes already. But I don't understand why you say "also an aged programmer won't support an idea they don't think will work & productivity and quality fall with that. where as a younger programmer is more likely to use an impossible project to "show off" precisely because its hard." I'm in my 50s, and telling me that something is impossible is still a good way of getting me to spend more of my own time than I should making sure it really is impossible and looking for a way around the impossibility.
Quidnam Latine loqui modo coepi?
This is good news, but as we all know companies don't always want "better", often they are happy to settle for "good enough" when that is cheaper and easier to push around..........like younger employees often are.
I understand that "anecdote" is not the singular form of "Data", but here's my story: I've been in the UNIX/Linux internals field for over 25 years. About a year ago, we were scrambling to get a feature into a partner's release, and we were running into one problem after another. The deadline was looming, and the problems were multiplying.
A young-un would probably burn the midnight oil, slave away nights and weekends and death-march themselves right off the deadline cliff (I remember once working with another young programmer who honestly thought he could keep coding right up until the ship date)
I have quite a number of coding and integration marathons under my belt... sometimes we got lucky and things worked, other times we missed the boat, still other times things blew up spectacularly in our faces.
I, took a step back and sized up our situation. I then went to my boss and said, "We need to prepare for the contingency that this feature does NOT make it into the next release"
This, my friends, is the voice of experience.
And if you're trying to maintain something built by the tea lady's nephew in his school holidays ten years ago...
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
I don't know. Sometimes when people say that, they point to a particular person as an example of a great programmer, who happens to be old. And I say, "yeah, but he was probably an awesome programmer when he was young, too" -- and so far, that's been the case. So I'm not sure sure that it has to do with age, but it has to do with the fact that a lot of the so called "old" programmers joined in industry before the Internet boom, before it was a great job, or their mom and dad said to them, "you should do something with computers" because it's a career. Many of the old programmers became programmers because it was their passion to create software.
I cannot help it if you lost your e-mails, and it certainly isn't the fault of the provider of free service such as gmail either. You have POP and IMAP access to everything. Be smart and back it up, or be foolish and complain on Slashdot.
Guns don't kill people; Physics kills people! - John Lithgow as Dick Solomon on Third Rock From The Sun
48k of memory, I wish, when I started we had 1 bit of memory..... "Rock in hole... on, rock not in hole... off"
--- If the bible proves the existence of God, then Superman comics prove the existence of Superman.
Of course it is! They're offering you a free service and telling you you can rely on it better than other sol'ns (though, no promises of course, YMMV, $legalese, ...). They would, of course, because if you fall for the pitch they can sell you to their clients (advertisers).
It all looks great, until you find out they're doing backups to other (mirrored) harddrives on another system, and both of them blow up at once (as happened recently to some outfit in Australia, thereby shutting them down), or any number of other stupid things people do over which you've no control. Have they changed their privacy policy today (cf. Facebook)? Does the NSA/FBI/CIA get to grep your mail too? They can't/won't tell you?!? WTF!?!
I do back up my stuff, and I don't have to expose any of it to a cloud provider in the meantime.
If you're lazy, just admit it. I am too. I say there's smart lazy and foolish lazy. YMMV.
"Tongue tied and twisted, just an Earth bound misfit
Job != Career
Employer offers a job and we have to convert it into a career. .Net, J2EE, Cloud etc
We need to tune our mindset is to keep learning new languages, concepts, and technology viz
Slashdot = Sarcasm
Scientists at the University of California Los Angeles are reporting that while some people may think "life begins at 40," all it seems to do is slow down.
http://science.slashdot.org/story/08/10/27/1630225/Brains-Work-Best-At-Age-of-39
Slashdot = Sarcasm
I think as your grow beyond 40, it is better to shift your career towards https://secure.wikimedia.org/wikipedia/en/wiki/Sales_engineering
Slashdot = Sarcasm