Why Coding At Fifty May Be Nifty
theodp writes "Enough with the dadgum naysayers. Google's Vivek Haldar lists some good reasons for why you would want to program at fifty (or any other age). Haldar's list would probably get a thumbs-up from billionaire SAS CEO Jim Goodnight, who had this to say about coding when interviewed at age 56: 'I would be happy if I just stayed in my office and programmed all day, to tell you the truth. That is my one real love in life is programming. Programming is sort of like getting to work a puzzle all day long. I actually enjoy it. It's a lot of fun. It's not even work to me. It's just enjoyable. You get to shut out all your other thoughts and just concentrate on this little thing you're trying to do, to make work it. It's nice, very enjoyable.'"
... and still coding
This just in, programmers would prefer to continue programming at 50.
And so if you keep programming, you keep learning and stave off brain rot.
Do it yourself, because no one else will do it yourself. [beta blockade 10-17 Feb]
But with all the requests I get for tech support(including how do set up this 3rd party USB device) because we don't have a help desk, requests for installation support since we don't have any release engineers, and meetings on top of this I'm lucky to do 2 hours of coding a day.(Suffice it to say I never get into the zone, did I mention I'm a software engineer?)
Did you know 80 to 90% of the moderators on slashdot wouldn't recognize a troll even if one dragged them under a bridge.
Asking whether geeks should still be coding at fifty is like asking if people should still be having sex at fifty. The answer is stupidly obvious. OF COURSE we'll still be coding at fifty! It may seem revolting to younger folks, and lord knows it does take a little longer to get going. But once we've hit that groove, baby, we're not done in 30 seconds. No, we work that algorithm, and we know how to do it, too. None of those stupid mistakes we made during the frenzied, sweaty all-night coding sessions of our youth, blindly swapping pointers and hoping to avoid another premature segfault. Oh, no. And none of that I'm-too-hot-for-you arrogance, either. We leave our customers satisfied, because - take my word for it - that's the only way they're coming back for more.
... Tragically, of course, if you're a fifty year old geek, coding is as close as you're getting to sex for the rest of your life....
*SOB*
Crumb's Corollary: Never bring a knife to a bun fight.
Many people move on from programming to management or entirely other careers because it is so hard. What makes most existing systems hard to develop is the unnecessary complexity, lack of or overabstraction and negligence of test code. Management coming from such mess and never seeing anything better can not strive for anything better. It is hard to navigate such an enviroment and stay sane and become productive. Once you succeed it is highly rewarding to coach younger team members. I'm living proof of that and there are plenty more at least in the Finnish agile circles. Career age would be of essence to anyone looking for real successful team leads.
I was the real korpiq until I woke up clowned.
If coding is like typing for you, you've never done any real programming. Coding is about thinking out elegant solutions to interesting problems. I don't think that's boring at all.
assignment != equality != identity
Although many enjoy the challenge and have gotten past language issues long ago. That, I think, is also one of the perks of experience.
What a stupid fucking premise.
As for me at 48, sitting in front of the computer all day just pains me - literally. No matter how often I take breaks, I have a lot of tension that runs down from my neck to my ass.
That's exactly how I felt at age 19 as I was stacking 80 pound salt bags on pallets for roughly $5/hr. About a week after I got my first "real" desk job, the most surprising observation I had, other than the obvious "now I take a shower before work rather than after work" was that I wasn't in some level of constant pain. Getting old is no fun but it beats the alternative, and I'm not thinking there's anything that can help once you get old enough, by that I mean that stacking 80 pound salt bags would probably just kill me at my current age, not make my back feel better. I had back problems a couple years back until I (re-)started serious (as in, need a shower afterwards) weightlifting during lunch hour, the key being if your physical therapist says do X Y and Z do exactly X Y Z no improvising or excuses.
I can't wait for the day when I can tell the computer verbally or draw a picture the algorithm and never ever have to type another line of code - ever.
The bandwidth for that is almost infinitely low compared to typing. You'd basically have to invent your own glyphs and language, or spend hours drawing thousands of pictures. You may want to look into the CAD drafting profession, where you get to spend hours drawing the equivalent of a couple lines of text. Another fun one is wedding photography.
Also try a less verbose language. I've seen 1000+ line java programs replaced by about 5 lines of Perl/CPAN... two use statements, two cpan calls, and an immense line noise appearing regex between them. Unsurprisingly, neither extreme is healthy.
"Science flies us to the moon. Religion flies us into buildings." - Victor Stenger
It also pains me intellectually and emotionally - it's boring.
I'm the same age as you, and it sounds to me like you're working on things that don't interest you. I like coding, as long as what I'm writing is solving an interesting problem.
-jcr
The only title of honor that a tyrant can grant is "Enemy of the State."
I hope I'm still solving little puzzles like that when I'm 50 but I also solved those when I was 25. There's nothing wrong with that, but if that's all you do then you're probably going to be at the same point career and pay grade-wise at 50 as at 25. If you've become the CEO of SAS, that's probably because you're solving a lot of other issues that you couldn't solve as a 25 year old. If you have experience, you have to find positions where that gives you leverage and not all of them are like that. It doesn't matter if you've been flipping burgers for 30 years and perfected your burger flipping technique, you're still very replaceable by a newbie. If you want to be a coder specialist, make sure it's a specialist job and not just writing your average glue code. It's easy enough for the CEO to say that, he can pick whatever problem he finds complex and interesting to do as a hobby, the actual employees don't have that luxury. Unless you're talking about working on an OSS or pet project outside of work.
Live today, because you never know what tomorrow brings
To listen to you, we'd be surrounded by nimble, flexible, elegant software. That's far from the reality. So tell me, where is all this elegant software?
Two great pleasures of life you can still enjoy at 55. Other things, not so much.
Please do not read this sig. Thank you.
Switching between languages takes time. Programming Java, then C, then Assembler... It takes me a solid 4 hours to switch between languages if I have to do anything complex. If I have been coding in C for months and then Oh here's a new embedded project we need done in assembler... My brain doesn't have the drivers loaded for assembler and it has to search the tape backup archives for that driver and load it into operating memory.
Then I hit the ground running full speed.
Back in my 20's I was able to switch language sets at random within a moment's notice. In fact I was at one point writing in 3 languages at once. 4GL for the accounting system, C writing printer drivers for that Xenix 386 OS we were running at the office, and assembler for my 68hc11 wyse terminal multiplexer. I figured out how to get 16 text terminals to communicate uber fast speeds over a single pair of dry copper wires from the main store to the second store location. But then I also did not need coffee and drank an epic amount of beer and rum every day...
Do not look at laser with remaining good eye.
. Coding is about thinking out elegant solutions to interesting problems.
On very rare occasion.
The rest of the time it's tapping out boring and obvious solutions to depressingly uninteresting problems.
Salt in the wound: The longer you're at it, you'll find that more problems that once would have been interesting are simple and terrifyingly dull.
My advice? Switch fields as early as you can, write code as a hobby. You'll want to kill yourself after a few years otherwise.
Required reading for internet skeptics
coding used to feel like freedom because of all the possibilities, and now it feels like chains because of all the same old hurdles..
I'm starting to have fun finding cunning ways of working around the hurdles now that I didn't have the experience to make work in the past.
I try to make time to try out my own ideas and to explore away from work. I find it keeps me refreshed and interested.
Stick Men
Second start-up, the issue is that the other hats you have to wear constantly code-block.
Coding is like constantly solving puzzles, that is why after playing suduko, I was more interested in writing a solver than doing the puzzles.
As far as the "nerd and sex" correlation goes: Marry a nerd (she hides it well). 30+ years seems to be doing just fine
How sad for you! I'm 50+, and still find coding to be "thinking out elegant solutions to interesting problems"
"Send an Instant Karma to me" - Yes
Waiting for some old guy to fix all those "elegant" solutions.
AC's stating their creds are similar to teenagers listing their conquests - laughably ignorable.
Do you also HATE writing, HATE speaking, HATE singing? Typing is just another form of communication. If you HATE it, you probably don't type well. Learn.
By the way, if your programmatic abilities match your cut and paste abilities..... learn to edit. It's necessary in programming as well.
Try using Python - it's about as close to writing down what you mean, rather than telling the computer what to do, that we have.
-- Lattyware (www.lattyware.co.uk)
The flip side of that is, who'll hire a 50-year old coder, or even keep him or her on the damn payroll? Even at reduced wages it's a crap shoot.
... and I've gone back to coding. I'm good at it and I know I'm good at it. I'm only 56 now, but I expect to be still coding for a living when I'm 70.
I'm old enough to remember when discussions on Slashdot were well informed.
he didn't say it was easy, or that the required skill-set was prevalent in the population.
I am over 60 and I disagree. A lot depends on how you lived in your twenties and thirties. If you have stayed fit all your life, maintained correct weight, avoided alcohol, tobacco, conspicuous consumption (and possibly firearms), your fifties and sixties is when you suddenly reap the benefits as you now have the money to do things and the kids have grown up,
From scarped cliff or quarried stone she cries "A thousand types are gone, I care for nothing, no not one."
OK, granted, I misread you on purpose, go for the easy mod points.
Still, do you really think talking to your computer, or drawing pictures for it, is going to make programming easier or more fun or less work? I very strongly doubt that. When programming becomes repetitive, you should find some way to automate that part; code it differently, develop a tool or invent a new language. And ultimately, it would be great if some AI would just write programs for our problems. Before that, there will be some typing. But not too much if you do it right.
assignment != equality != identity
He was designing and troubleshooting analog and digital hardware.... radio and battery systems until the day he could legally tell his employer to fuck off and collect his Navy retirement and SSI...
He knows more about practical engineering than I ever will. And we still kick ideas around. He retired but did not stop being an Engineer.
I'm 46 and still writing code, and back at school for Biz Admin. I got to go back to my roots focusing on bare metal, and more recently embedded LINUX.
I'll stop writing code when you pull my cold, dead fingers off the keyboard.
Yeah b/c you are an Anonymous Coward.
Its' just a tool to solve some other problem I have. I can't wait for the day when I can tell the computer verbally or draw a picture the algorithm and never ever have to type another line of code - ever.
well, the good news is that you can do this today, it's been around for at least ten years. Its called UML. what happens in your fantasy is that you draw your code layouts in boxes with various types of lines to link the objects together, then click a button and the whole thing gets generated into your favourite language. you then fill in a few of the details (ie the implementation inside some of those objects) and you're done.
I also wrote a system that did something similar - you wrote objects that could be dropped onto a canvas designer like a flowchart and wire up inputs and outputs (yes, a lot like biztalk, only we did it before biztalk came out, though I guess taking our product to MS for performance testing in their labs was a mistake).
Ok, you can stop reading here, the rest of us... I think everyone knows the problems with UML - write the big diagram, put it somewhere for management to look at, then ignore it as you work on code. It simply wasn't expressive enough to use for real work.
As for our product, it worked quite well, you could drop GUI components (html-based) onto it too and it would all magically make an application the user worked through and a business analyst could update when business requirements changed. Trouble was, the complexity of the thing increased exponentially. An app with a dozen components was easy, once you started work on a real-world app, the complexity meant you needed a couple dozen BAs working on it, It would have been more efficient just handing it to programmers and telling them the initial requirements are that the back-end rules will change.
So I don't think there will ever be a shift away from typing code, although practically every app I've seen in recent years has tried some form of configuration replacement (like .net, where everything you used to write in code is now in .config files, and everything you used to put in config is now hard-coded) or custom rolled ones that implement configurable business logic.
Let me ask, do you have that problem because both QA and managers think it's ok to just add new bugs to the board mid iteration? (Damn it, it's only 2-3 weeks. We can look at that shit at the next iteration.)
Did you know 80 to 90% of the moderators on slashdot wouldn't recognize a troll even if one dragged them under a bridge.
I've been programming since 1977, and I'm still doing it, although my job description hasn't had "programmer" in it since 1984:
(My first job out of university was writing digital signal analysis sw for a research institute, I did that from 1981 to 84.)
During the last few years I've been involved with crypto (AES) and graphics optimization, multicore computing as well as a few programming competitions:
I suspect that I'm probably 20 years older than most of the other quarter/semi-finalists at the two Facebook Hacker Challenges.
The main/only/sufficient reason is of course that I love doing it!
Solving puzzles is something I would pay to do, so getting paid is a great deal imho.
(My official job these days is to be the in-house IT troubleshooter for a very large Norwegian IT company, I manage to sneak in some programming here as well, often some Perl to analyze network trace/log files.)
Terje
"almost all programming can be viewed as an exercise in caching"
May I paraphrase?: "That silly stuff engineers do? Fun and easy compared to the really hard important grown-up job us executives do."
Equine Mammals Are Considerably Smaller
Nonsense. Python is an excellent language, and its syntax is pretty terse for getting things done. But __init___(self, foo, bar, baz, fuzz) is no more "tell the computer what I mean" than any other modern language.
The first job out of school: Senior Software Engineer. Title twenty years later: Senior Software Engineer. Plan to retire as: Senior Software Engineer.
For some reason, the HR keeps sending out career management memos suggesting everybody should be hating their job and wanting out.
You might consider http://en.wikipedia.org/wiki/Alexander_technique . It works.
I don't understand. There's plenty of great software around.
You guys should get into math.
The English module increases the readability and understanding of Perl code, and it is a big step toward alleviating the boggling effect that raw Perl code sometimes has on new programmers. The English module provides a mapping between Perl's eclectic punctuation (special) variables with an English name corresponding to each one. The regular-expression variables that correspond to the three components of a matched string, for example, are often difficult to remember, even for the experienced Perl programmer.
http://www.brainbell.com/tutors/Perl/Usability_and_Simplicity.htm
well, the good news is that you can do this today, it's been around for at least ten years. Its called UML. what happens in your fantasy is that you draw your code layouts in boxes with various types of lines to link the objects together, then click a button and the whole thing gets generated into your favourite language. you then fill in a few of the details (ie the implementation inside some of those objects) and you're done.
THIS IS WHAT UML TOOLS PROPONENTS REALLY BELIEVE.
Contrary to the popular belief, there indeed is no God.
I wrote code for a little over 20 years, starting when I was 30-something. Then I got caught in a layoff in the double-whammie of the dotcom bubble bursting and 9/11; by the time people were hiring again, my resume had gone completely stale and I was in my mid-50s. Even taking some retooling classes, i couldn't find anyone who would hire me. I ended up retiring out of a retail job that barely paid the bills. Now I'm living on savings and Social Security; fortunately, the savings survived all of the turmoil, so it's enough.
...) while looking for another job; that's not the point. If someone offered me a job coding, I'd probably take it, enjoy it, and do it well, but I've given up hope finding it for myself; the repeated "Sorry, we're not interested -- Next!" just got too painful to endure, so I quit trying.
I know I did some things wrong (didn't take XXX classes, spent too much time on YYY job boards, didn't get to the ZZZ networking sessions,
So, why am I grumping about and not adding anything to the conversation? Partly to get it off my chest, and partly to make this one point: The older you get, the harder it is to find someone who will hire you. I don't know why that is, or even if it's true for everyone, but it certainly was for me. If you're over 30, keep an eye on what's happening around you. If it looks like things are going south, jump ship while you still can. It's a lot easier to get a new job if you look while you're still in the old one.
... but the code your wrote; more maintainable now, or then?
Interesting point. I'm returning just now to re-use/update/port some stuff I wrote a while back, some of it 5+ years ago, and even some bits from 24 years ago. Sometimes I find the rationale was clear enough, other times I have to kick myself before I can figure it out again, and there is one awkward little knot that still works but I completely forgot how and why, and so far I didn't manage to untie it.
What this does remind me, though, is that my memory is not getting any better. So for fresh code now, I insert more and longer spell-it-out comments than I used to give, and generally try to forget about compressing executable things, because speed, with modern compilers and processors, is just not a problem for what I'm doing. I do know that in future, without the commentaries, it would take me even longer to get (again) the reasons why this stuff was going in just there.
-wb-
It's all fun and games until you put a deadline on it.
We'll never make it.......oh! we made it! http://www.youtube.com/watch?v=SWf3iJjqYCM&list=FL7kKrE4eTs17mQl7eyvJIOg
After watching how the various regimes running (and buying, and selling, and outsourcing) my company feel about programmers, I don't think I would ever go into it as a young person today. But a strange thing has happened. Of all the people that have been there all this time, I'm one of the few that has survived all the M&A shenannigans and outsourcings. It seems that those who moved up into management roles were more replaceable than those of us who stayed technical. Turns out they really needed somebody around who knows how the systems work. And who better than the ones who wrote them. The serious downside to this is that all the shortsightedness and 'people as widgets' thinking is leaving behind no next generation to take over where I leave off.
This stupidity will not end until people stop being rewarded for it. So far, every manager who's engineered the next sell-off of the company has been richly rewarded. The company's for sale again, and I can't imagine anybody being stupid enough to buy it. But fools abound, and I'm sure the current crop has their golden parachutes in order...
Posted from my Android phone. Oh, I can change this? There, that's better...
Its not just banging away at the keyboard or the elegance of the code your write, it is the heart's desire and the enjoyment you get. I have met too many even good programmers that state as soon as they get off work, the last thing they want to see is a computer. My retort to them is they are in the wrong field. I'm 58, took my first assembly code class in 1970, still in high school, at the college next door, for an IBM 360. Been with it every since. I have worked both sides, hardware and software. I currently work with Kennedy Space Center/CCAFS still pouring over code and when I get home, the first thing I do is log onto my home network. Every year I take my oldest son to Black Hat and DefCon at my expense. (DefCon is a lot more fun and the better of the 2 in IMHO). It is one of the only fields that is in a constant change and continuous study required. "They'll get my laptop when they pry my cold dead fingers from it."
I rarely write comments any longer, and only use them when I can't make the code any clearer (or to explain *why* I did something, rather than what I'm trying to do.). 'What' comments rarely get updated when the code changes, and can frequently do more harm than good. I feel a little sad when I feel I need to add a comment to explain what I'm doing. Computing power helps these days. Back in the old days when writing realtime code, the stack overhead from breaking things up into functions/methods would kill you.
Comments can become indispensable when the reason for putting something in (and the criterion for its correctness) is external to the code itself. I used sometimes to think "it must be obvious where that came from", but now with failing memory I often find it's not as obvious as I thought it should be. :(
-wb-
That would be the *why* type of comments. Frequently a small paragraph rather than a simple one-liner as well. I think the failing memory (or sometimes it seems like it) can be a benefit; you know that in 6 months you *won't* remember, where in the the past, you *thought* you would.
Mental exercise significantly decreases the chances of dementia. I'm 56 and involved in lots of things, not the least of which is coding for a large company. Someone once said "learning keeps you young" and he was right. My last career switch was at 53. I picked up a new, fairly technical hobby at 54 at which I'm becoming fairly decent. Earlier this year I completed a 4,400 mile solo motorcycle trip.
There are concessions, of course. My knees are blown out. I can't run or bicycle anymore, and put those things away with true regret. But other things have replaced this. Walks with the dog, (with knee braces) long motorcycle trips, and driving daughter and her friends to skiing trips. (I hang out in the bar and write. Some of my best articles have come from there.)
If you think your life is over at 50, I can tell you from experience, it is only if you want it to be. I see some of my contemporaries sitting in their barcaloungers in front of the boob tube waiting for life to end, and it makes me sad. A few of them used to be sharp, and can no longer carry on a conversation that doesn't involve reminiscing. The people I associate with tend to be decades younger than I, because they're still doing stuff and I am unwilling to give up on doing stuff.
At 65, my mother had a bad heart attack, resulting in a triple bypass. She quit smoking, started a new business, and now in her seventies is a successful small businessperson. But the biggest change I've noticed is that for the first time in years her thoughts are clear, she can carry on a coherent conversation, and she's interested in learning new things.
I thought it had been pretty much settled that activity (mental and physical) tends to keep the parts working. I'm not sure why this is a news item. But I note other threads like this, even in Slashdot, of people worried that their careers will be over at 40. Well, maybe if you're a trapeze artist, but otherwise, it's pretty much up to you.
Oliver's law of assumed responsibility: If you're seen fixing it, you will be blamed for breaking it.
Actual coding is the smallest part of modern software development not just because of all the meetings agile techniques like Scrum require, but also because we're expected to support the code we write instead of just writing it in isolation, tossing it over the wall and expecting some other sucker to maintain it. The theory is that if the developers have to support the code themselves, then they'll pay more attention to quality, reliability, stability and other factors that improve maintainability.
Of course other related work like design, documentation, code review, testing, deployment, performance analysis and so on contribute to making actual coding a small part of the whole process.
Jobs with 20 hour seat-of-the-pants hackathon sessions in some low level language that gets dumped straight to production are increasingly rare.
The question is whether all of this overhead is worth the effort? If done right, maybe all of this turns coding into professional software engineering that can reliably produce high quality solutions to business needs... or maybe it's just another failed attempt, like waterfall, that adds all sorts of useless overhead to fool management into thinking they have some sort of control.
So far, I'm thinking that it may actually help, but the jury's out and I think it's highly dependent on your organization and individual team. Even great ideas can be need up by poor implementation.
Signatures are a waste of bandwi (buffering...)
That agrees with my experience. After a certain age, there is an assumption that if you haven't been promoted to management, there is something wrong with you. I haven't worked as a programmer for about four years. I still love programming and code for fun, but I'd be happy if my job title never mentioned software again.
I'm in school training for a new career. One in which my 44 years--and anything since the last glacial maximum--is considered "recent." No doubt, I will still use my programming skills in my new career, and they will be a good selling feature after I graduate. As a programmer, I can count the number of times I've been paid to work outdoors on no hands. As geologist, it is part of the job. Even as a student, I've been some amazing places and seen incredible things. Any career that requires you to hike with a hammer, a bottle of acid, and a set of colored pencils is a good career.
I just turned 55, and have been writing software my whole career. I still enjoy it, but it's been a long time since I had that feeling like there was blue fire coming out of my fingers as I write. I find it has become pleasantly mundane. Beats the heck out of working for a living, though.
Not only management is an entirely different field requiring a different personality and skill set, but it's a pyramid scheme. By definition, only a minority of engineers can become managers. So if the choice is learning an entirely new profession on level field with newcomers or staying good at what you are good at, have tons of experience in and which is still in high demand, I think it's a no brainer. I fully expect to be coding until retirement, although I do notice that my average work day is 2-3 hours of actually writing code and the rest of the time helping others.
I did my first coding at 37 on using punch cards and coded for cash the next year. A couple of years ago I had to switch from C/C++ and Windows to Java on LINUX and have learned Java and some LINUX. When my Raspberry Pi arrives in a couple of weeks I'll start on Python! Mostly my job descriptions have been Ecologist with some coding. I look at most of the coding I've done as problem/puzzle solving.
Nate
My 'creds' : coding since 1968, not as a career or software jock, but for fun and to support my research/analysis as student and engineer (in that order :-) ).
While you don't have to be a total c++/java/perl expert to do engineering, you sure as heck have to be able to move on from slide rules and TI-88's to actual programming if you want to be a productive engineer.
I'm 57 and continue to enjoy writing stuff in R (as well as explaining to people why LabView is a recipe for disaster if you try to apply it to large projects). Then again, I like abstract algebra and topology, so I suppose I'm an outlier (yeah, I do stats too).
https://app.box.com/WitthoftResume Code: https://github.com/cellocgw
Webmaster adept with HTML, Javascript, CSS, PHP and MySQL and lovin' it!
I think what you meant to say was "elegant code." You can have very elegant code that very efficiently does Thing X. But that doesn't matter one whit if the users expect the software to do Thing Q. Or if it takes five clicks to get to Thing X and the user has to do that a hundred times a day.
My experience is that I started as a hardware engineer, then spent 25 years as an engineering manager. I now have a job as a programmer, work sane hours, and am a lot more productive than the "one-year-out-of-college" kids who are generally creating as many problems as they're solving. Some of my code is now in the Linux kernel and I'm a lot happier going to work.
Graphical programming has been attempted before. It turns out there's more to programming than just connecting boxes together, although it did find some uses in audio processing and such.
Disclaimer: I'm 65 and have enough money to retire, go fishing, whatever.
I wrote my first app in 1967 - a failed attempt to multiply two matrices in Fortran.
Today I code 3D apps.
WebGL, libraries such as Three.js and the whole FOSS thing enable me to build stuff I've been dreaming about for decades - no large teams, no huger servers, no VCs needed.
I'm having a blast! << maybe one day /. will allow me to show that sentence using particles and shaders...
No, not any more. When I was a young programmer, you could disappear into an office and just code all day. But one thing that has happened in the last couple of decades is that coding has become much more collaborative. Even if you are not doing extreme programming, with another coder practically in your lap, test-driven development, continuous integration and methodologies like Scrum mean that you are spending a lot of your day with QA and other devs. Break something and you have 20 guys on your back to fix it, stat. Put in some nifty but unorthodox code and then get it reviewed out of the product. I'm sure there are lots of people who thrive in that environment, and it does tend to improve the quality level of the software, but it means that you don't get to fly solo anymore, and that is what drove a lot of introvert/geek types into programming in the first place. It's also a bit of a shift if you haven't grown up as a dev in the new world, although I've been able to deal with it.
Oh, Wait...
Sent from my ASR33 using ASCII
Seriously, it does.
Religion is what happens when nature strikes and groupthink goes wrong.
How sad for you! I'm 50+, and still find coding to be "thinking out elegant solutions to interesting problems"
Just saying... There was this guy named George Marsaglia. Occassionally posting on comp.lang.c and elsewhere with new algorithms for generating random numbers with a period of 10^45000 or so (ten to the fortyfifththousandth power). Then no posts for a bit, then someone posted he died aged 86.
I can only hope to be fit enough at 86 to come up with elegant solutions to interesting problems.
I learned Autocoder for the IBM 1401 in 1961 and have been coding ever since (I'm retired and just turned 70). As I moved more into the management role in SW development, I used to pick one major effort a year, eg learning to find hidden lines in a graphic projection one year in the 1980's, just for the challenge (for me). I'd carry around a notebook to write the code and review it over and over. Since it took me a long time to finish any effort it was the best desk-checked code I'd ever written. I agree with the comment about puzzle solving -- it's all one never ending puzzle and usually quite a pleasant activity -- until you screw up and nothing works for weeks at a time for "no reason at all". There is a definite change as I age though. While I can do most anything I want in C++ or Java in terms of algorithms, learning enough about new systems to do useful programs is getting tougher and tougher. I'd like to do some things in iOS but I dread the experience of being clueless for an extended period of time. Tying things together and making sense of a system doesn't come quite so easy any more, especially when your attention span is asymptotically approaching Sesame Street. It's a hard slog. I keep trying, but it's nice to have physical activities (like woodworking) to keep a balance.
I've found that more and more a kanban approach tends to make people a little happier... tasks come in, tasks go out... the next task is prioritized, and interaction with others during a coding session should be mitigated by your manager... I'm also finding a unix-like approach of small bits of software that can pump in/out logic separately are a bit better than monolithic tightly coupled libraries... less OO, and more functional piped abstractions. Today I'm doing more of this in Node.js, it lets me get stuff done, usually with less code, tooling and overhead. You could do similar in C/C++, but that brings a compilation step into the mix. When I have to fire up an IDE and do a build to check/test/run/change anything, it just seems like overhead that shouldn't be needed anymore.
Using unix-like principles, and node (or any other scripted language) lets me get stuff done... following conventions make it more maintainable. I'm 37 and still learning... I can imagine I'll still be doing so for another few decades.
Michael J. Ryan - tracker1.info
I am 61, and certainly not the oldest still programming. My first 2 paid programming positions involved FORTRAN IV and COBOL, I now use Java. Recently I've played with Python and Groovy.
A few years ago I met a young man in his mid twenties, who said he was too old to learn programming!
I wrote my first program (in BASIC) when I was eighteen, to display what happens when you feed the sine function complex numbers - I did it for fun. The computer was the size of a 4 draw filing cabinet, and had about 4K bytes - not 4 megabytes, nor 4 gigabytes! Now my main development machine has 16 gigabytes.
Currently I am writing a system to to store, retrieve, and display tagged images using Java on Linux. The full system will be backed by a Postgres database and will be accessed by a web front end.
...this time with way more experience, world knowledge and self-knowledge.
I went into programming with the kind of wide eyed exuberance that only a teenager can have.
Got completely used up and burned out after 12 years with a company that started strong and went straight down the tubes. I've bummed around since then, knowing that I didn't want to work for different morons in another corporation.
Finally though, smartphone programming offers me programming on my own terms: MY project, MY hours, MY tech support --> MY profits. No more apologizing for other's mistakes, no more Dilbert bosses. When I was leaving my former company I was fond of saying "If I want to work for morons I'll work for myself." ;)
I can work from home. No more endless, useless meetings. I can work from anywhere. True freedom, enjoying the fruits of my labor.
Yes, I want to program when I'm 50, but on my terms.
Curb your dogma.
Back in the 1980s when I grew up, there was a widely held view that only autistic personalities who were incapable of interacting with other human beings would want to program computers. I liked programming, and my sixth grade teachers felt I should talk to a psychologist.
Today, people no longer believe only autistics would want to program, but there is a strange view that only people under age 30 should program. Why? Should book writers retire at age 30 too?
55 too, still coding... dunno what all the fuss is about. Programming nowadays is a helluva lotta fun... each line of code compares to 10K lines of assembly language, deployment is continuous rather than once every six months, what you deploy is always in beta... it's Paradise!
I'm 54 and been coding since I was 18 (TI calculator, Commodore PET, TRS80 etc etc) but professionally only since I was 24.
I can look back at code I wrote 6 months ago and realize I've improved significantly since then. It's quite amazing because I've read all kinds of bullshit that our "cognitive abilities" go down at this age but it just isn't true. I'm learning faster than ever because the more you know, the faster you learn.
Most of my peers, in their 30s, are still stuck in complexity and the joy of making things complex which I passed over 30 years ago. I can see problems coming 6 months ahead of time but I'm so far ahead of peers and management they don't believe me, and are arrogant. I say my peace, and if they don't want to listen, they deserve what they get. These things are as obvious as daylight when you've seen them 3 or 4 times in your career.
Most of my career has been C and C++ programming from the lowest level of abstraction (device drivers, interrupt handlers, hand coded assembly modules linked to C programs all the way to the high level abstractions, and applications using classes. While I love C++ for allowing that breadth of abstraction I prefer the higher level languages like Perl, Python, and Javascript when I actually need to get something done quickly and don't mind my code being open source. I was a C programmer and there were aspects of the language with continually bothered me. When C++ came out it was everything I had wanted to improve C. I am completely compatible with C++, as a person and a professional.
I am not as "clever" as some of my peers and I'm not a fast reader like they are (eyesight not as good). But my designs are simpler and more reliable because I shun complexity and attempt to boil down the problem to its essential elements before solving it. I also have a lot of experience with how things break and avoid brittle constructs. Of course I'm guilty of shlocking stuff together when under time pressure but I consider that a skill also. Not everything has to be a masterpiece.
For example, the biggest brain block I've seen in my peers is the inability or unwillingness to use exceptions properly, or even at all. Whenever this subject comes up 95% of the programmers I know just go stupid. Exceptions can remove 70% of the garbage from most programs. I attribute it to the fact that most programmers don't really view their code as multiple calls down a chain of functions, stack frames, and that an exception throw is really just a big return. For example the new "Go" language doesn't have exceptions! The first few days I tried using exceptions in C++ I was sold on the concept. In fact, it was something I had been unconsciously desiring for a long time.
Well, I think the question is incorrectly phrased - "Should you still be coding at 50" has an aspect of "Would you want to...", which I'd expect to be true for anyone with a passion for the subject matter.
But it also has an implicit assumption of "Someone would pay you to code at 50", which, IMHO, is the much more unlikely (and relevant) part.
A lot depends on if your company treats its codebase as something valuable or considers coders a cost.
I'm 50, I write code, no one reports to me, I mentor the newbies as needed. I earn 10x what they do. I took a 2x salary cut to take this job, and I love it. Thankfully management actually reads the code I write and judges those 100 lines/day are actually worth the money.
"I'm going to defend him against that."
And you will prove you are not him, how? Meaningless.
"SNIDE & SMARMY jackass like you'
i shall awaken at 2AM crying out in anguish at your admonition, AC.
-- abc
I know the feeling.
What language? How long from idea to production? (Python and minutes here.)
Difference is, that moniker has a history of posting here that can be traced back and read by anyone. An AC cannot. Whilst it is not my actual name, it's not friggin' AC. You take exception to that? Tough shit. And yes, I shall continue to be snide and smarmy to ACs boasting about themselves. Ten thousand people post AC and typing three letters at the bottom does nothing.
No on all counts. Aging does not suck, some people think it does. Anti-aging is a prominent research field and there is quite a bit of promise in some of the newer avenues. Aging is not a horror and does not turn the brain to Jell-O, diseases are and do. Not everyone is afflicted with them.
Actual coding is the smallest part of modern software development not just because of all the meetings agile techniques like Scrum require, but also because we're expected to support the code we write instead of just writing it in isolation, tossing it over the wall and expecting some other sucker to maintain it. The theory is that if the developers have to support the code themselves, then they'll pay more attention to quality, reliability, stability and other factors that improve maintainability.
I'm seeing at least 2 problems crop up with that idea though. The first one is that it doesn't take much to morph from us supporting the code after the user gives it the ol' college try to what I currently see which is "Ehh, if I have any trouble I'll immediately ask dev for support." (That thing about the usb device? That was literally true, somebody actually came to me and ask for help setting up a 3rd party usb device instead of trying to figure it out or googling it.) The other one is that some of our code wasn't originally done by the development team. (So basically the code is dumped on us and then we get the "fun" job of supporting it and fixing it.)
Did you know 80 to 90% of the moderators on slashdot wouldn't recognize a troll even if one dragged them under a bridge.
As a guy who took a few wrong turns in his career (software engineer -> software sales -> computer/math teacher) I'm inspired by all the older folks still out there making money and making good software. I'm looking forward to getting back into programming and design. I've been doing a boatload of new stuff, mostly Java/Android and am hoping to get hired by a company who wants someone with skills regardless of their age. I'm 52 now (but look 35 and could kick the crap out of a lot of 20-somethings) It's really good to see the older software folks. I hope finding a hiring manager who appreciates older folks is just as easy.
I would try Python with PyGame probably.
The ick of making friends with someone who's visibly old. ???? Most of us old farts don't wear adult diapers, don't have old man smell, and if you actually talked to us, you might just find out that we have insights and ideas worth hearing.
Think about this. Someday you will be old. When that day comes, do you want people to think of you as "Icky"??
Superfocus.com
I come here for the love
Spent years with mainframe Assembler, and what seems like dozens of languages in between then and now - currently writing PHP, Javascript, Ruby, HTML, CSS, and most things webby. I've been writing code since the late 1970s and still love what I do.
Mudge
In theory, theory and practice are the same.
In practice, they're not.
As for me at 48, sitting in front of the computer all day just pains me - literally.
Then don't. Stand there, many people find a standing desk works better for them.
It also pains me intellectually and emotionally - it's boring.
Oh, wait, I thought you were a programmer (cause you know, the topic was about programmers)
Working full-time on a cutting edge product. I plan to work as long as I can. Program at work; program at home.
Regards,
Bill Drissel
both mentally any physically.
My mother is 90. She's currently somewhere in Sri Lanka on holiday. She also does the Times (UK) crossword pretty well every day, lives alone and does keep fit three times a week. No bad for someone who has had both her hips and knees replaced.
I can only wish that I'm as active as her if I get to her age.
I'd rather be riding my '63 Triumph T120.
I like coding, as long as what I'm writing is solving an interesting problem.
Not every problem worth paying for a solution is interesting. That's life in our business.
You're both missing the essential matter. The people who pay the bills don't want to wait for the elegant solution when they can have the good enough solution yesterday. We know that there are better ways to solve problems, but the bean counters put the kabosh on that because they view elegant code solutions, which do the same jobs as the good enough solutions, as wastes of time and money. The worst part about it is that from a business standpoint, they're often right.
correcting a moderation error by posting
Hmmmmm... Who said that my "done right" solution takes longer or costs more than the newbee's "good enough" one?
"Send an Instant Karma to me" - Yes
Contrary what many companies nowadays believe, I don't think people stop being good programmers just because they age ... I reckon it's often just the results of the Peter Principle (look it up if you don't know it) ...
I've started programming at 12 on a ZX Spectrum in a store, later advanced to a C64, Amiga and finally Unix ... been through Basic, 6502 assembler, 68k assembler, Pascal (yuck - and another of Wirth's languages I can't or won't remember the name anymore), C (most of the code written in it), C++ (just a bit) and recently mostly PHP ... I still love it, even though I've not been doing much the last ~10 years ... I still more or less blow away anybody in the company (ISP/Network Consulting) when it comes to hacking some tool or solving some problem that require automation ... including and especially the folks that "learned" programming in School ... granted, we usually don't really need it, and we didn't hire people for programming. But compared to the people 20+ years ago, knowledge of programming nowadays is practically non existent.
For non-programmers programming must be wizardry ... trusting an experienced programmer is also hard ... in more than one occasion, I was asked to do a detailed plan of what would be needed and how it would have to be implemented ... doing that would have taken longer than the actual implementation I did ... (I believe there was a comic on Dilbert about that, too). I guess once you have many years of experience, some processes just "work" inside the brain, allowing you to get the work done without spending too many thoughts on it ... and that's the part one most likely doesn't lose either ... you may need to get back into the syntax, or parameters etc., but the actual "art" of how to program is still there ... also makes learning a new language easier ...
In the late 90's, there was a huge demand for web developers during the dot-com boom. After a long and successful career in finance and accounting, I built a huge Excel model that projected my company's financial statements out five years. Excel > VBA > VB6 > voila! This was way more fun than accounting. I got myself hired by a bespoke software development outfit in 1999 when I was 52, the only girl in a roomful of 20-something guys. I've pretty much been the only girl around since then -- the only one at work, the only one at the dev events & meetups. And always the oldest guy in the room. Right now, I am finishing up a mobile- and tablet-friendly web app done up in ASP.Net MVC4 with jQuery Mobile for a global corporation. It's been a wonderful project. I "had" to buy an iPad to test my app, which rocks on my Droid. I'm hoping to be able to do more web-to-mobile apps. This stuff is wonderful fun. I love making things. I love hitting F5 and magick happens. I compare my work to being a restaurant chef. I don't care that I am a faceless invisible worker back in the kitchen. I love imagining the client's delight when the plate is placed in front of them, my work, my product.
Dude why are you posting this about yourself?
I've been programming since 1977, and I'm still doing it, although my job description hasn't had "programmer" in it since 1984:
(My first job out of university was writing digital signal analysis sw for a research institute, I did that from 1981 to 84.)
During the last few years I've been involved with crypto (AES) and graphics optimization, multicore computing as well as a few programming competitions:
I suspect that I'm probably 20 years older than most of the other quarter/semi-finalists at the two Facebook Hacker Challenges.
The main/only/sufficient reason is of course that I love doing it!
Solving puzzles is something I would pay to do, so getting paid is a great deal imho.
(My official job these days is to be the in-house IT troubleshooter for a very large Norwegian IT company, I manage to sneak in some programming here as well, often some Perl to analyze network trace/log files.)
Terje
=====
It is great to know that you love programming. I call programming architecture and implementation.
I program in C and have been doing Assembly, Cobol, C and some C++ ever since graduation some 40 years ago.
I am 72 and just completed 8 separate applications in with Des / Des3 encryption.
Leslie Satenstein Montreal Quebec Canada
I'm not convinced by TDD though, I do it but I've never really needed it in all the years of coding I've been doing. I prefer to write up test harnesses that exercise more of the system in a larger granularity. ie, instead of writing tests that exercise a method, I prefer to exercise a class - and then the test I write can be an example of how to use that class if it involves setting up, configuring it to whatever task you want, and then making it do work.
I also find this helps find more bugs than traditional TDD, eg the time I had a network class that had methods to set ip address and port, but if you set the port first, it would fail (as setting ip would first initialise the entire internal address variables). TDD doesn't find those bugs, and they're the ones I'm more interested in.
Test driven development dictates when you write test cases (before the next increment of product code which can be validated) not what they test or the abstraction level at which they operate. When you're applying the methodology for it's benefits (other than getting you consulting income or giving you a religion to follow) that can be one method, a stack of programs, a class, or whatever point of the spectrum makes the most sense in terms of coverage provided and difficulty reproducing and fixing any bugs that are uncovered.
For reliable non-trivial systems with state (real world examples I've done include replicated NOSQL and block storage appliances using shared nothing clusters) this can take even take the form of a software model describing correct operation, mock environment providing deterministic execution order, and event/timing (including faults) combinations which vary according to a state search strategy and/or pseudo-random approach so you cover situations that you do not anticipate.
As a tangent that sort of testing is uncommon although neglecting to do it leads to huge problems. Google replaced a commercial replicated light weight database because it did not work and mentions the issue in passing in _Paxos made live_. In _MODIST: Transparent model checking of unmodified distributed systems_ Microsoft research applies model checking to three production systems with one running commercially on 100,000 machines and finds protocol errors in all three. I once found a five year old data loss bug in a shipping storage product when I did that and had a new guy fix it in his first week on the job.
The advantage is when you write the test in relation to the product code. Developed up front it's more likely to influence product code encapsulations and APIs to make test easier so you get better coverage and spend less time tracking down root causes. Since testing the code you just wrote doesn't block on writing the test the context switch overhead to fix the bugs you introduce the total cost to fix them is lower.
When misguided managers think "we'll add quality later" and try to cut corners on test development (they often get demoted and replaced after ship dates slip too much, but that can take a long time whilst your life is made unpleasant) it's not possible for them to ship a product prematurely (the product code is not done) and harder for them to damage the release.
As your software becomes more trivial the importance of doing this is less; although such simple work is easier to outsource or delegate to lower paid junior employees so more senior engineers might not have to deal with such situations for too long.
ah, but you're not talking of TDD as found in many systems, you're talking about TDD as it was originally envisaged.... they're well different. So much so that the term BDD is almost what TDD used to be before the auto-generation tool took over and made everyone think they were doing test-driven development by clicking the "make tests from my code" button that creates a set of stubs, 1 per method.
[sarcasm]Isn't reflection great.. just look at the cool things you do with it... [/sarcasm]
so anyway, I dislike TDD because of this, though it has its place as a way to easily put little "checking" tests in. For the serious stuff, we use a couple of "BDD" tools like dbfit, behat and cucumber.
You've got that quite backwards. They're the ones earning the money. The exploitation is running in precisely the opposite direction.
More to the point, you say "misogyny". I say "lessons learned the hard way." I spent 30 years of adolescence and adulthood emulating my father, one of the kindest, gentlest, most respectful and respectable men in the universe. He had a wife who adored him despite the fact that he was far from handsome or wealthy; she loved him because he was a good man, period, full stop. Mom, by the way, was a smokin' hottie, enough so that my teenage friends creeped me out leering at her. Think: Racquel Welch's near-twin.
From the two of them, I learned a great fairy tale. I learned that good women loved men who were good because they were good men and that no other factors could derail that happy outcome. It took me decades to realize that my parents were a statistical outlier so far beyond the norm that it beggars description. The fact that they found each other was wonderful. So is winning the lottery. Both are about as likely.
Thanks. I think so.
I never said I didn't have relationships. Let me clarify. I don't have *romantic* relationships.
I'd feel the same way if I didn't think I understood them. Unfortunately, I do.
That's an overstatement. I've "worked alongside", professionally, any number of women who consider me a great guy. Very high quality social intercourse came from those relationships.
It's just that none of them would fuck me if I was the last man on earth. They wouldn't hesistate to ask me to come over on a Saturday ("Bring your pickup; my boyfriend and I are moving to a new apartment.") but there are only so many times in a mans life when he's willing to ask a woman out on a date and get uncontrollable laughter as a response. (No, that is not an exaggeration; I've lost track of the number of times.)
Eventually, we find a different path.
Side note - My mom used to have some words for me that she thought were comforting. She'd say "Most women haven't yet been beaten up badly enough by life to appreciate a man as nice as you. Your day will come."
My response was usually "Yeah, Mom, at about roughly the time I go into a retirement home. I suppose I'll have plenty of tail, then, rolling their wheelchairs down the hall to my room."
Mom would laugh. It was a joke. But I think we both understood the truth of that little exchange and cried a little inside.
No one will cry. I have no family that will survive me and I will have no funeral. I long ago accepted that I will someday die in a small room, alone, staring at a blank wall. My attorney has my will and will disperse my few belongings. My cremated remains will be interred in the family plot without ceremony. There will be no mourning.
Believe it or not, recognizing the scope of ones successes and failures in life is oddly comforting. If you find my attitudes mysogynystic, then that's your call to make. Personally, I simply recognize that everyone fails at some thing(s) in life. I've had a success or two, here or there, that have made the world a slightly better place for a person or two. But I've failed at love often enough to give up trying.
You say mysogyny. I say I've simply grown tired of beating my head against that particular brick wall.
Or SmallTalk ... less syntax that gets into the way.
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.