Ask Slashdot: What Training Helps Older Programmers Most?
brown.dragon is an older programmer moving to Australia. He writes:
I want to start an online solution that other programmers find helpful, and right now I'm wondering if I should go with "learning new technologies" or "getting really good at the basics". Both are targeted towards giving a career boost to older programmers...
Would you like to keep in touch with the latest technologies because that's what makes it easy to get jobs? Or would you like to be really good at answering (Google/Facebook/Amazon) algorithmic interview questions?
He asks programmers looking for an online educational tool, "which of these (if any), would interest you?" So leave your answers in the comments. What training do you think would help older programmers most?
Would you like to keep in touch with the latest technologies because that's what makes it easy to get jobs? Or would you like to be really good at answering (Google/Facebook/Amazon) algorithmic interview questions?
He asks programmers looking for an online educational tool, "which of these (if any), would interest you?" So leave your answers in the comments. What training do you think would help older programmers most?
that's you're best bet. Just keep writing software. The best way to learn is by doing.
Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
Most programmers I know can pick up a new tech in about two weeks and be average at it automatically then gain mastery of it over time. There's no need to have a tutorial because there are plenty out there already.
Personally, I do so much hands on coding and software engineering that I forget the terminology they used in college. I know how to do the stuff, but I forget the definitions they used. Its kinda embarassing in an interview to not know what they're talking about because I forgot the word they use for something super basic. There's webpages for this too. Not to discourage you, but older programmers can train themselves in just a few days if they want to.
Its not like older programmers today haven't been exposed to OO or something game changing. I'd even imagine older coders can pick up new techs faster than kids out of college just because of a lifetime of experience.
God spoke to me
Older programmers know the basics and they know how to learn new technologies. Matter of fact, that's precisely what they know. Those who don't move into management before they become "older programmers".
There's always a need for better learning tools. But tools for "old programmers" doesn't make any more sense than tools for female coders.
If you think the US is bad with respect to tech jobs, then times that by ten.
Not even the hardest Democrat would want you here.
Just. Go. Away.
You should ask "I've got this bunch of folks with 10-40 years experience. How do I make them most productive?"
I've been around for, jeez, 38 years now. I'm really good at C, C++, Java, RTOS systems, embedded systems, device drivers, talking to hardware in general, and meeting avoidance. I'm not good at "team building", "Agile development", "Synergy", "open office", "ping pong", "free cokes".
Tell me what you want me to do. I'll give you feedback on how reasonable your desires are. I listen to you, you listen to me, you give me a nice quiet place to work, and stuff happens.
It's about the increasing biases in the industry that assumes that older programmers just can't possibly pick up new technology without a lot of help. It's quite the opposite in many cases. As if somebody that started programming hasn't moved from language to language multiple times. They understand the fundaments, and they don't just chase one trend after another. They have a good sense of what is mature enough for consideration and what isn't.
They know that programming all the time not only isn't necessary, it is detrimental in the long term.
The simple fact is that as we age we become less able to pick up new things easily. This is a biological limitation that no amount wishing is wasn't so will fix.
But what older people are better at is considered thought, strategy and leadership, so your best strategy is to be fresh and dynamic when you're young, and as you age, play to those strengths.
Older programmers like me use the latest tools and technologies.
I predate SQL and I teach it to children.
Get over yourself. The question you ask is arrogant and dismissal.
Us old guys are dong great, and judging by your question? We're making a crapload of money more than you.
_ _ _ Go for the eyes Boo! GO FOR THE EYES!
What Training Helps Older Programmers Most?
Physical one. Running or even walking would be a grate start.
Disclaimer: didn't RTFS
I think this question is stupid. I've been in programming for 20+ years. There really is not that much new under the sun. The quasi OOP of JS keeps baffeling me, it is nice to see a move back to procedural programming. And, in general, the mess has gotten bigger and more complicated. But new paradigms etc etc? Mwa...
I believe it doesn't matter how awesome you are at the latest and greatest programming language, or how skillfully you can apply a binary search to an interview problem, if you cannot understand why you are applying technology to help someone. If you can understand the need for software, then all of those other points are much easier to improve on, and apply.
For me, what made me a better programmer (past the bachelors, masters, in computer science, and six years of hardcore, full time, programming) was selling. Not taking management classes, and learning about selling but actually selling software. To sell, you have to understand someone else's need. You have to understand it well enough to sell yourself that you can help them, and then sell them on your belief. This is the good kind of sales. Everyone has seen amazing software products that were shelved, because they didn't meet the need of someone evaluating them. If you can understand how to help someone, with technology, and convince them you'll remove their pain, you'll be able to write your own ticket.
Hustle on the terrible online job boards. Compete with the low cost 3rd world at a fraction of what you're currently making. Then, once you can pitch without sounding completely retarded, try it in person. And you'll fail. Again and again. That's the cost of tuition. Eventually, you won't fail at selling. Talk with people that know how to evaluate an offer, and a technical solution. The problems you'll see, once you really understand your customers, are very rarely that complicated, novel, and difficult, and (for my company that is general development without much of a specialization past very general open source) don't usually require much beyond best practices and a very rudimentary knowledge of efficiency. This is because most of the people that can sell are absolutely terrible at coding, and the people that can code are absolutely terrible at selling.
“Would you tell me, please, which way I ought to go from here?'
'That depends a good deal on where you want to get to,' said the Cat.
'I don't much care where -' said Alice.
'Then it doesn't matter which way you go,' said the Cat.
'- so long as I get SOMEWHERE,' Alice added as an explanation.
'Oh, you're sure to do that,' said the Cat, 'if you only walk long enough.”
I vote you learn how to sell. You'll be able to sell yourself to an employee much easier, if that is your eventual goal.
Sorry, I couldn't resist! And this is being said as somebody who programmed in Fortran many decades ago...you have to be able to laugh at things.
As an IT professional who is not necessarily a programmer, but someone who has written some (probably horrible) code, I would appreciate a getting really good at the basics online course. I've been a sysadmin who specialized in Identity Management and also Security, but missed a few of the coding building blocks along the way. It'd be nice if I could have conversations with our developers having a few of those blocks filled in.
Have gnu, will travel.
Improving the basics improve your overall ability with most programming languages. Learning new technologies doesn't have as much payback, considering how many new things fail to take off..
Non sequitur: Your facts are uncoordinated.
Specialties are important. Depends on what GP wants to do for a while. Specialties are easier for older programmers to pick up, but to be good there is always lots to learn.
-The wise argue that there are few absolutes, the fool argues that there are no probabilities.
Assuming your "older programmers" are indeed programmers with two or three decades of experience under their belt, rather than older people who would like to become programmers (not an unreasonable thing, but I don't know anything about how to train them), they already understand the theory and lots of practice, so all they need to pick up new technologies is to dive in and do stuff with the new technologies. Read books, practice, build stuff, etc.
For being able to do well in the sort of interviews that Google/Facebook/Amazon/etc. do... again, it's just a matter of practice. Brush up on the theory, review your data structures and algorithms course, make sure you understand big-O complexity, etc., then get a good book of practice problems and work your way through it.
Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
Older programmers that are worth anything already know far more than you, dolt.
If they don't.at this point there's no point in hiring them in the first place; they were probably incompetent younger programmers as well that never got any better.
As an older person, I would like to suggest that training I would appreciate would be in knowing when it's time to trim my nose and ear hairs. As it is, I don't notice it until my wife offers to braid it for me, and by then it's really too late.
Wait, what were we talking about again? How 'bout those Cubs, huh? Did I ever tell how we used to have to punch rectangular paper cards to write programs? Believe you me, those were the days. You had to be half-stoned and drunk to program computers back then without going batshit insane. And when you were done debugging, boy, you knew you had done something, even if it was only sorting a bunch of database entries alphabetically. And we liked it.
You are welcome on my lawn.
I've been lucky to have been able to ply my trade as a programmer in many wildly different waysâ"from games to military to commercial software to R&Dâ"and I find I'll use the internet whenever I know that "this has been done before." It's not that I couldn't always write code for a particular situation from first principles, but if I know a few clicks away is the fifteen lines of code that I can easily alter to do the job in a tenth of the time, I'll use it. But while the internet does provide this repository of algorithmic knowledge, I've never come across a quality site that is specifically dedicated to it. Stack Overflow is probably the closest, but it's organized around the questions, not the answers. It relies on searchability and isn't particularly amenable to casual browsing. I've always felt that there were established algorithms out there I've never heard of but that would fit my current programming needs perfectly, if only I knew of them. So I'm imaging something like the pre-google hierarchical internet indexes of oldâ"like Yahoo and Altavistaâ"but just for algorithms and other generalized computing solutions. And if anyone knows of such sites they would give a positive review for, I'll be happy to check them out. But I feel that anything worthwhile out the would have come up in my Google-style searching by now, and if it did, it isn't quite what I'm describing here.
..been doing this since I was 16, and I don't think my geekin' skills have degraded in the slightest, and I learn new technology all the time. I've been doing purely contract work for the last decade (for a variety of companies) - where you're judged entirely on the quality of your output, as well as being required to adapt to new things on a regular basis (which is why I like it so much). Personally I'm glad I'm not a long-term employee of a company because that's what causes atrophy IMO, as well as it'd probably make me worry more about job security. As a contractor however I _have_ no illusion of job security, so not a problem :-)
My eyesight has recently started going downhill, but that's what glasses are for (and microscopes, I do embedded systems so lots of soldering 0402's and suchlike). Other than that, doing great. :-)
[FrLz]
Have you considered rosettacode.org? It has almost 1,000 little problems and puzzles in multiple programming languages.
Table-ized A.I.
I am shocked at the number of 20 somethings that are a decade or more out of date. I am not talking about jumping on the latest and greatest, node.go or whatever, but simply aren't using the latest version (often off by years) of their existing tools. I am not talking religious wars such as C++ vs Java, but programmers who aren't using testing, not using any code analysis tools, not using patterns properly, using globals like they were bicyclist in a performance enhancing drug mart, and all the usual bad practices.
Then to make it worse they will use "modern" techniques like they are some magic spell. If you way-over apply the technique, then it will magically make up for the lousy choice in just about everything else. Let's use multi inheritance OOP on our single SQL call to the single table in the single database. Or let's use the factory pattern for what should have been a single function that takes one parameter.
I am not leaving older programmers out of this. Usually there are subtle differences. They don't realize that things have massively changed in the last 10 years. Threads aren't bad, the GPU can do stuff, disk is pretty much free, don't conserve memory in your single purpose server with 32GB and your application is only using 2.
My advice for any programmer, young or old, is to be flexible. A great choice may not really be the great choice, it may be an illusion. So be prepared to change. And experiment. Lots and lots of experiments. Try out new languages. Try out new datastores. Try out new OSs. Try out new IDEs. If you see the cool kids doing something that requires a fundamental new skill that you don't have, then learn the fundamental new skill. With ML you need linear algebra and some calculus to really get to the meat of the subject. So learn the libraries and if they seem like your future, learn the fundamentals.
To be a great programmer you have to be both a specialist and a Renaissance man. So nail something like C++ networking(as just one specialist example), but make sure you can configure a database, set up a server, program in Python, etc.
Then there are the domains of knowledge. This is where it can get tricky. Do you perfect the game industry, or do you jump from games, to banking, to engine control units? We all know that having a diverse experience will really help. I am dead certain that what you learn in games could easily bring some wildly creative approaches to engine control units; yet the HR types are "How many years have you been working with ECUs?" I have successfully leapt more than once from pretty fundamental tech to completely different fundamental tech. Not easy, but very worth it.
How to recognize when a company quietly labels you an "older programmer" rather than an "experienced programmer".
Don't waste your vote! Vote for whoever you want, unless you live in a swing state it won't matter anyways
Let's see, so far in my life I've been a farm hand, a university computer lab monitor and first tier IT support, a soldier in the US Army, electrical engineer doing firmware development and testing, web application developer, and top tier computer support. Now I'm wanting to get back to something closer to software development I took a look at what was offered in training that the Veteran Administration might pay for. I tried those one week "boot camp" classes that would teach what you should need to know to pass one of those tests for certification from places like Microsoft, CompTIA, Cisco, and so on to be a certified something. I started with some network and security certifications and thought I might move on to something like "Certified Microsoft App Developer" or whatever they call it.
In theory the 40 hours of lecture in one week is approximate to the lecture time one would get in a typical three credit semester long course at a college but having the lecture all in one week does make the process very different. The "boot camp" expect that all the material is soaked in during the lecture, with whatever study time you can do each evening, and any self study you can do on your own before taking the "final" that is in the form of your certification test. Depending on what kind of work you want to do, and what kind of training you can find in your area, this may work for some people.
There are several well respected (and some not so respected) schools that offer classes online in software development. These courses can be toward a bachelor degree, a certificate of some sort, or even a masters degree. Where I live there is only one school within commuting distance that offered on campus graduate level software development courses. Half of my "boot camps" were online and I very much preferred having an instructor in the room. I thought, for me at least, I'd best learn in a semester long course where the instructor was in the room with me. So I signed up for courses at the local university.
If anyone is choosing to take courses at a university then make sure you get a good advisor. While the advisor I had at first was perfectly capable of reading my transcripts from my previous schooling many years ago and translate that to course equivalents at the university, and then create a plan that would lead me to a degree plan, she had little knowledge of what was actually taught in the courses. She pretty much left me on my own to figure out the classes and I ended up with a really bad semester, one course was beyond my experience and education, another was on web development and not that difficult but it didn't apply to the degree I was seeking (something I discovered when signing up for courses for the next semester). I got a different advisor, someone that knew the courses better (and actually taught some of them) and did much better the next semester.
Even though the academic advisors are there to evaluate you for the courses it is your job to evaluate the advisors. I had a bit of a runaround with the school since me, being someone returning to school after many years from being in a university before, they didn't know what to do with me. I'll be taking courses that should teach me Java, Perl, and other web oriented languages, so that I can market myself as a web developer again. Things changed since I last did web development so I decided I needed to update my skills and I found a path that works for me. Given my service in the US Army the American taxpayer is paying for tuition.
Having Uncle Sam pay the bill gives me certain freedoms and restrictions that others on this forum may not have. Point is that one needs to decide what is the goal of the training. For me the goal is to learn how to be a web application developer. Decide what kind of learning environment works for you, on-line, on campus, one week "boot camps", or semester long courses. Find out what is available to you, evaluate the costs, and decide how you want to pay for it. Some employers offer compensati
I am armed because I am free. I am free because I am armed.
I just turned 55, yet in the last 2 years or so I've managed to learn to read and write a couple thousand Chinese characters.
It's amazing the things you can do with 30 minutes a day and a brain that's been properly schooled in how to learn things.
Il n'y a pas de Planet B.
HIndi and Urdu are essentially the same language, genius.
And FWIW, I have numerous Indian colleagues whose English is just fine, no more or less "bad" than that of any of the other dozens of non-native speakers I work with daily. Possibly because English is one of India's official languages.
Il n'y a pas de Planet B.
Oldies come from era where they have developed themselves from groundup. The processes and OO was evolving. And they've lived this evolution. None of the current generation have this perspective. You can't learn this from a book. That said, technologies are evolving: servers are written differently, there is focus on scale, embedded systems use an OS like Android etc. 16 years into programming post college, I consider myself old enough. I constantly build myself, and due to lack of time, I prefer organized courses: on the lines of udemy / coursera, Slashdot deals. I love watching lectures on subjects that I missed in college (all the open courseware). Talks from conferences on youtube is great too. And I spend an hour watching video's daily, usually play them at 1.5x or 2x. This is quite gratifying.
That must be why there are no courses on one or the other, just both. *eyeroll*
Sure, if you're good at one you can sort of get by in the other. That doesn't make them the same any more than Italian & Spanish are. No prizes for guessing where you're from.
Confucius say, "Find worm in apple - bad. Find half a worm - worse."
I had my 66th birthday, a week ago. So, officially in the UK, I'm retired.
However, I still program and still learn new stuff, at the moment a lot of technology around the Raspberry Pi. I'm also a philosophy undergraduate and, as such, I have to do formal (propositional and predicate) logic, so I'm refreshing my Prolog a little, because we're going to do a workshop for some of the other students.
I don't consider myself to be particularly bright, but I do enjoy technology (and learning, in general) so I'm self-motivated by curiosity. My feeling is that motivation will probably matter more than age, if the person isn't somewhat engaged, they probably are not going to learn. It's one of the big dangers of doing something just because it's well-paid. I've been lucky, working at something I like and it's pretty well-paid as well.
On y va, qui mal y pense!
Succinct summaries of new (but proven) technologies & techniques. For me it's less about how to learn, and more about what to learn. Having an idea of what new technologies & techniques have been developed (and/or are becoming popular), what problems they solve for me, what trade-offs are involved, and what alternatives exist, helps to direct my learning. In other words a trade or hobbyist magazine that focuses on focuses on technology in the 'early majority' area of the adoption curve, across programming disciplines.
i-name =twylite [http://public.xdi.org/=twylite], see idcommons.net
What Training Helps Older Programmers Most?
Here's your answer: Stop thinking of yourself as older!
When we get older, there are several hurdles we need to pass, one of them is our mindset. If we see ourselves as "older" instead of more experienced, we will often display this trough our actions and our talk with others. People will then also perceive us as "older" rather than experienced.
If youre the "go-getter" type that will rater spend time solving tasks and problems than spend time on age related issues, you will soon forget age. Sure, the occasional aging symptoms like back pains and other irritating signs of age will remind you, but if you try to stay healthy and fit - you need not remind yourself of this and others will take no notice of your "age".
Im in my 50s now, and people often remark how young I am, why? Its my attitude. I get things done, I have fun with my coworkers, and I totally forget my age. In my mind Im not a day over 20.
Those companies who miss out just because of ageism - will lose big money on it, not to mention sour up their own work-culture as everyone will be afraid of becoming older rather than embrance this valuable experience. Those companies have a tendency to fail in other areas too.
Your best training - is your mindset.
What this world is coming to - is for you and me to decide.
I'm an "older" IT guy (systems engineer) who doesn't really want to move for a job at this point in my life. From both our branches of the IT world, I do think that the only technical people who will have jobs in the developed world will need to be big-time generalists. And yes, that means the dreaded buzzword DevOps. Otherwise, the future isn't pretty -- IT project management, "architecture" (hand-wavey diagram writer) or remotely managing a set of offshore coders 8 time zones away.
I'm not a straight IT operations person - I'm in systems integration for an IT services company. Therefore, I get to see lots of development work being done by both young and old, onshore and offshore. I have to make the output from the developers work in a real world environment. It's obvious that lots of developers don't understand the systems their code is running on, and IT people don't understand development. At the same time, IT operations is being cloudified and commoditized. I know so many people who've invested decades learning the ins and outs of Cisco networking, Exchange/sendmail and keeping the SAN gods happy. Now SDN, Office 365 and good-enough software-defined storage are eating that whole once-lucrative market. On the dev side it's not much better - you have entire ecosystems being introduced and thrown out in a matter of years, and they're mostly yet another layer of abstraction on top of the old one. And, the introduction of public and private cloud means both groups have to learn an entirely new way of doing things and deploying software. Lots of traditional IT folks I know think this is a fad and won't last past the Second Dotcom Bubble...but I'm not getting that vibe this time. Some of the crazier stuff is going away, but some is going to stick around or take on a slightly different form.
Change is constant, so nailing down any sort of fundamental skill set is difficult when you're only teaching the tools. I've been extremely lucky and have had exposure to lots of different IT environments, companies that do things way differently than the best practices guides show, etc. Because of this, I'm a really good troubleshooter and pick new things up fast. It's kind of what's kept me out of the development world outside of all the scripting, automation and glue coding I have to do as part of my job. I'd rather have the traditional CS education and learn how to learn a new language or architecture, than go the "AngularJS Bootcamp" route and learn a single tool that will be abandoned in 2 years.
One of the things older IT and development folks have is experience to know when something is a "rehash-with-structural-improvements" and learn it from that angle. Any online resource should approach things this way. Look at how many newbie developers think client-side JavaScript or the phone APIs are total magic when they haven't grown up with thick client applications as an example. Or, on the IT side, IT folks treat code as a complete black box that just eats system resources.
In my opinion, a killer solution would be an online DevOps style training class aimed at one side or the other, meeting in the middle, that strips away all the marketing bullcrap. Teach experienced single-stack IT guys to work with developers effectively, and teach developers about the real-world limitations of systems. Like a traditional CS course, teach the fundamentals and not the how-to, and limit leaning on a particular vendor or toolset. Part of the problem is that both sides (IT and dev) are exploding in size now and there are a million snake-oil salesmen trying to peddle products. I do think that someone who is sufficiently motivated to get a solid footing in this new merged world will have a very interesting technical job for quite a while. Let's face it; straight IT guys are being replaced with automation and software-defined stuff, and straight coders are moving offshore at an amazing pace. You might see lots of Silicon Valley startups hiring fresh-faced JavaScript engineers, but regular businesses are outsourcing things as q
Apparently to code with kids these days you need to deserve the title of "ninja". So I recommend ninjitsu training.
"see discussions of algorithmic discussions"
Whoah, that's like, meta, man!
Hm, my Indian colleagues tell me they've no problem understanding Urdu, and it's pretty well known that Pakistanis and Indians watch each others' TV shows. (At least when someone's government isn't blocking the other country's signals.)
Linguists usually describe Hindi and Urdu as being "different registers of the same Hindustani language". There are some differences in vocabulary, but the major difference is that one is written using Devanagari script and the other with Arabic script.
Have you ever visited Italy? The first time I was there, people would speak to me in Italian, I'd reply in Spanish, and I got along quite well. Had little trouble reading the newspapers once I'd twigged to the spelling differences. Can't say whether the reverse would be true, as I don't actually speak Italian. I've had similar experiences in Norway with my Swedish.
And what has where I'm from to do with any of this?
Il n'y a pas de Planet B.
... treat them like grown-ups. They know what they're doing.
And if they don't,I doubt you're gonna help it.
My 2 cents.
We suffer more in our imagination than in reality. - Seneca
The customers of "consultancy" gigs are the dumber part here of paying good money for "consultants" out of college...
Have you even tried to imagine what those discussions would be like?
"Oh, yeah. This one, I think, is starting to get like, personal."
"No, he has a point. He just came on too strong, to the point of being obnoxious. He strikes me as quite abrasive, had he not brought on his argument about the derivative."
"What were we talking about? Who, the toxic boss, or his underling who logs in anonymously, not knowing that that's his boss."
WARNING: Smartphones have side effects--most of them undocumented.
Based on my observation of "older", (I'd prefer to use "senior" or "experienced") programmers, I'd say they fall into two camps:
(a) The guys with 20+ years of experience, who is comfortable with his technical competence and does not want to move into management. They stay current on what they need automatically, and get the job done.
(b) The guys with 1 years experience 20 times. They stopping learning a long time ago, and you cannot help them.
So the first group is your target; what I've often observed is that their meeting and PM skills could be improved; hence their contributions (direct and indirect : how often have you seen a "senior guy" make a quiet suggestion that headed-off disaster?) are persistently under-estimated...
The fact that you didn't include transgender programmers makes your post sexist.
I am very small, utmostly microscopic.
Please don't use words you don't understand. It makes you look silly and uneducated.
Il n'y a pas de Planet B.
To be fair, those are your words not the poster's.
However in the US, that's what "minority" usually means. Unless the person saying it is black, in which case it means black.
I am very small, utmostly microscopic.
I read all the comments. Not a one of them answered the question. Rather they picked on the premise. I myself have been programming for 38 years. I can pick up a new syntax (language) in an afternoon so teaching me the latest language du-jour would be a waste of my time. I suspect that along with the others who have posted the real benefit that experienced coders bring to an organization is one of rigor. Since we learned to do things in situations where you didn't dare submit a job for compilation until you were very certain of its efficacy, as in submitting your card deck only to return hours later to 'syntax error on line 330', we have a built in system of checks and balances which younger programmers don't have. They are used to immediate feedback, and even the Agile system tends to lead down the path of spaggetti on the wall.
I think what we need is training on communicating our value. Most of us have spent a large portion of our career dealing directly with hardware. That tends to give us advantages in how we dissect a program, irrespective of it is to be coded in Go, C, or Python. So from that standpoint, I would pick the later of answering algorithmic questions.
I really don't need to be trained in another language. I can work in 23 now. Picking up another out of the needs of the organization or the project team is immaterial. What I need is to be able to pursuade the interviewer that hiring me is a benefit, particularly over and above hiring a newbie right out of college who has all the buzwords on his/her resume.
As a ~60 year old developer, I've followed two major shifts since I began as a pro (in 1986).
First, Dev tools have become much bigger and more interdependent and mastery of the dev idioms takes longer now and can no longer be learned from books, as was once possible for C/Unix. Frameworks are used a lot more now (for better or worse), and S/W deliverables now depend on mixtures of languages and their libraries / components, third party APIs, and O/S service components / stacks. This requires broader awareness of the S/W ecosystem but allows less time for mastery of each component, since the ecosystem is so vast and the components change often.
Second, there are more forms of computing now that require a "deep dive" technically. These usually demand deeper skills in math, statistics, engineering, and maybe hardware (e.g. DSP, image processing, computer vision, real time O/S and Arduino, music, crypto, machine learning, or graphics). The classic academic CS preparation I got before 1990 did not prepare me to work in this space foundationally, and I've had to learn the math through remedial courses or self instruction.
So I guess I'm suggesting that any resource that can provide a good clear intro overview of A) software stacks and ecosystems, or B) the math and engineering beneath advanced tech subjects, I'd find both of these helpful.
A good example of this is Michael Nielsen's web site "Neural Nets and Deep Learning", which provides an excellent overview of those two topics while minimizing the jargon, arcane math notation, and flummery that so often pervades tech talk. Another example is Lyons' excellent book for non-engineers, 'Understanding Digital Signal Processing'. I'd love to see more material like those.
Overall decline in health is, what threatens aging professionals the most — not ignorance of the exciting new technology of the week. Learning a particular tool has never been especially valuable — education is supposed to teach you one thing, primarily: how to learn new things on your own. If you are a developer already, you must've mastered that long ago.
So, strength training and regular walks and/or yoga (while still legal).
In Soviet Washington the swamp drains you.
... that the older programmers know more and can do more than they are given credit for. That's the training that is required.
As an older programmer if I need to learn a technology I learn it! The problem I face is the amount of ageism in this industry! Once you're over 40 most firms just don't seem to be interested.
Build a Man a Fire, and He'll Be Warm for a Day. Set a Man on Fire, and He'll Be Warm for the Rest of His Life.
Programmers suck, and projects fail, often because the person leading the team hasn't any clue about how things are programmed. It would seem logical to for successful programmers to graduate out of programming, and use their experience to actually guide projects.
I'll never forget, some twenty years ago, as a lowly programmer, following a 50+ page specification to build a shitty web-site, that detailed right down to how to spell the word "Login", but never detailed the variable name to be used -- wouldn't be a big deal, except front-end and back-end needed to agree on the variable name, and were two different programmers in two different departments. Another amount of stupid. Project manager had never seen anything but a finished web-page. Big surprise.
It doesn't matter what you want to teach an old programmer if you don't offer them dog biscuits.
Seastead this.
The absolute best way of training anyone in a new (technology, language, API, set of bindings, class library, toolset etc) is to give them some worthwhile, engaging and difficult problem to solve.
I'm older than I care to admit, and I am the one who is trying to tempt a bunch of much younger people who think they know better into adopting a new technology, since it solves a problem that they otherwise could only solve by spending a *lot* of money. However, they are now recognising that this "new" technology (FPGA in this case) is the only way to solve a particularly worthwhile and engaging problem - viz, how to crunch clinical exomes from the output of an Next Gen Sequencer without having to move a ton of data across the Internet to a big cloudy HPC, or buying one so they can keep it mildly busy. They are going to learn a whole new set of tools and programming methods, and there is some significant paradigm shifting going on; but the problem is that the problem itself is intractable without such a change.
I wonder who else you miss
An important thing to note about building your software team....there is probably no magical must-have person out there. I'm really happy with the team I built, so yeah it doesn't matter who I've missed. I'm sure I've missed lots of good people, but I only have so many slots to fill and there are more good engineers than there are slots.
So for the networking (or rather the reluctance to do it) its not a question of "clueless company misses good people". Its "What do I do personally to maximize my probability of getting a job?". If you're not willing to network, then your probability just went down. As a hiring manager, I don't really care. I already have more resumes than positions to fill.
"You cannot find out which view is the right one by science in the ordinary sense." - C.S. Lewis on Intelligent Design
Too many experienced programmers are complacent to stay in their current professional area, which is mostly server or mobile these days. But these technologies will be very important in future and even today present great opportunities to start your own company. There are plenty of wealthy folks in Silicon Valley who would cough up dough to have the smartest house on the block.
Honestly the #1 problem I found is the snot nosed punk straight out of college that tries to defend his unholy mess at peer review. Training in how to not print out the programming policy guidelines and beat the shit out of these kids with it is really needed.
I dont care how clever you are, you follow the guidelines. and if you dont comment your code, I'm flagging it as incomplete every....fucking....time.....
Do not look at laser with remaining good eye.
What Training Helps Older Programmers Most?
Reading and doing. Once you accrue a certain amount of expertise, there is really not much that you do in terms of training. You simply read.
Now, there are exceptions when it comes to using new tools or when switching to completely different domains.
If you have been an embedded developer all your life, you will require some specific tool training to become a JEE developer (and viceversa.) But the bulk of programming is based on principles that people simply acquire and master as they become old ponies in this rodeo.
At that point, it's just reading and reading and reading.
Same is true in my experience. It doesn't matter what your record of accomplishment is either -- in fact it's almost a handicap to have an impressive resume when you're older.
One thing I noticed is when it started to get harder to get interviews, when I did get an interview everyone would seem excited about bringing me on ... except the hiring manager. The first time it happened I thought it was a fluke, but after it happened a number of times I realized: nobody wants to supervise someone with more experience than they have.
So my advice to older programmers is: don't put your hopes in gaining even more expertise. It works against you. Start your own business, or get training in some other kind of job.
Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
Get into contracting, where experience is very much valued.
If you have a clean record, get into GOVERNMENT CONTRACTING....you can make good money there, and contracts are long lasting (years at a time).
Do make sure to incorporate yourself first.
Light travels faster than sound. This is why some people appear bright until you hear them speak.........
If you have a legitimate opinion, why are you so afraid of being identified with it?
Ok, now all you ACs can try to attack me by responding to this post. That's why most Trolls are ACs, and vice versa.
If you won't own your own words, you aren't worth my attention.
My current job has a 3 month notice period so unless I quit/get sacked getting into contracting is all but impossible as nobody's going to wait 3 months for some to start a contractor job normally they need you to start ASAP.
Build a Man a Fire, and He'll Be Warm for a Day. Set a Man on Fire, and He'll Be Warm for the Rest of His Life.
Managing Millennials - Retention, Reward and Recognition
What country do you live in? That's unenforceable in the USA.
Quit and don't come in the next day. Tell them 'sue me'.
There will be consequences, just not legal ones. Be prepared for them. Make sure you have a friend in related industries to catch them Libeling you.
John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
Kidding aside, there is no training that older programmers need that younger programmers wouldn't need more. Older programmers' ability to keep up with new technologies already surpasses that of younger programmers, because they're already seen 99% of those "new" technologies before, 20 years ago the first time they were introduced.
I know a number of very gifted programmers who did not finishes their bachelors as once upon a time you could sneak in the backdoor without a degree. Today, HR uses the lack of a degree as a club to keep their salaries low. Plus, moving to a new company will be harder than ever these days with so many folks with a BS and MS. Even if it is nothing but journalism degree finish it. HR fill usually just toss any applicant without a degree. If you've been coding for 15 years, what your degree concentration is in will matter much less at most companies. (And if it does matter, then they are probably only hiring new grads from name brand schools like MIT, Stanford, CMU, etc anyway). Don't get me wrong, new grads without a STEM degree face an uphill battle.
I think he's making a reference to an Anonymous Coward (or group thereof) whose typical term is a whole lot less wholesome that "minorities"....
Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
I have a good understanding of programming itself. I've written code from scratch in many different languages from assembly to C++ to JavaScript. The problem these days is the amount of build tools and frameworks to learn in order to make things "easy." It would be helpful to learn what all the various frameworks and tools do and why I should use them, especially those related to JavaScript development. Will the world end if I keep using nothing more than ES5, a bit of jQuery and source control?
Because minorities and girls are already being helped by dozens of dedicated organizations and are, in fact, way ahead of the game.
John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
meditation and yoga
I thought all Android apps had to run on the Java VM. What's the better choice? Don't code for Android?
John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
The only difference that I've noticed is that kids these days don't read the manual. You want to help old programmers, host lots of manuals. You want to help young programmers, make a video where you tell them how it would feel to actually do it if they actually learned how.
That is it right there: paradigms. Older programmers have a lot of experience, a lot of knowledge, a lot of skills, but they may not be aware of shifts in paradigms, what that means, why it is relevant, and why you may or may not want to follow.
That being said, any experienced programmer should be able to figure it out. If not, maybe they are just old, not experienced.
It may not be age at all, but rather ideology. You might believe that as you get older you're owed perpetually increasing pay, but it might turn out that most developers peak as a mid-level employee and will never actually be 2 or 3 times as useful as the guy with only 5 or 10 years of experience. An "impressive" resume is going to hurt because when they look at it they're going to see large pay demands, and not necessarily additional skills that they need. That is especially true if you have balanced experience, because they want balanced employees but they don't want to pay for multi-discipline experts because they don't need it.
How many older devs show up to the interview, "well, I've been doing the same sort of stuff for decades, but using different tools overs the years. I still enjoy it, I could do this forever! I know I'm at the max pay I can expect since I never jumped to management." Then I think you'd find they don't actually care that about age. How many older programmers sound that way? I don't meet them. The ones I meet either have a bunch of complaints, or want something more/else, or think they're very important people because of their age and experience. And if true, great, important people don't even apply for jobs, they just announce that they're available and then choose an offer. But then we usually loop back to the complaints, usually they start with "gosh nobody understands how important I am."
The fact that Accenture, EDS (HP whatever) etc etc can still get meetings is proof that senior management in government and large corporate are completely corrupt and incompetent.
John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
Right, if you're scared about facing uncertainty with 3 months of notice, do not try to be a consultant. You would probably die of a heart attack the first year. Try to understand: if you had the personality for consulting, that would sound like a great deal to you to just put in your notice and have 3 months to get everything ready. After all, if you have the personality to be a consultant, you already save more of your money, and have some set aside for unexpected externalities. It isn't like a contractor works constantly anyways! You have to be ready all the time not to have a contract, not only after 3 months of preparation.
If someone's brain is that bad at 60 they need to see a doctor.
My dad is pushing 90, he is slowing down a lot now. He seems to have forgotten how electromagnetic fields work, unless he actually thinks about it, then it clicks back on.
John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
The best teachers have experience that is burning inside them, straining to get out. They see foolishness around them, know from experience the answers, and want to share what they've learned. THESE are the people we "old guys" want teaching us.
If you start by saying, "I want to teach older programmers something," but you don't already have something in mind that just HAS to be communicated, you're an opportunist. We'll spot you a mile away, and stay away.
that retrains your brain right there.
Seriously though, the most important thing I've meta-learned is to exercise a lot of judgement about which new things to BOTHER to learn.
90% of the new stuff will be flash-in-the-pan. Some small residue of new stuff will actually stick and be important. (How's my metaphoring? 1-800-WRI-TEGD)
So learning the sixth-sense cues about what is going to matter is vital. So knowing you should probably learn Go, containers, ... and not bother with for example the 95% of weird-ass js client-side frameworks which just cause an unmaintainable fur-ball.It's good to look at those things, just in case there's a mind-blowingly important new idea there, but you have to know when to quickly look away.
Where are we going and why are we in a handbasket?
So discussions of discussions is an abstract group that applies to all discussions. It includes itself, does that make it incomplete?
I'm an old programmer (first computer I ever wrote programs on used punched card decks), and ideally the best training for me would actually be training for the hordes of younger programmers who have no real interest in programming except as a paycheck, and who don't have any real deep understanding of how computers work - and who also write very bad code. There was a time, a golden age in computing, where almost all the programmers were college trained engineers, scientists and mathematicians who were really interested in working with computers, and brought all sorts of deep skills to the table. Today, not so much...
There is no God, and Dirac is his prophet.
As an older programmer (say, 50+), learning new programming paradigms is easy. Hell, absorbing new frameworks, programming languages etc. in a week or two is still a piece of cake. Why? Because that's not too far from the domain you know. BUT, diving into totally new application domains requires a lot more efforts than when you were younger. As an example: if you've never been exposed to an EE education and you suddenly have a project about, say, writing an antennae simulator, you'll have to absorb Maxwell's Equations, and related maths. Even if you've had CS training with maths background in your prime, you'll definitively need a lot more time to wrap your head around this with 50, 60 than if you were in your 30ies. That's not impossible, of course, but the additional time to understand this new domain, and apply it to programming, will slow you down so much that companies will often refrain from hiring you, despite your immense wealth of additional side-knowledge that could be very useful.
cpghost at Cordula's Web.
My sister's first job out of college was at a public university in the southwest where she hoped to pick up her master's while she worked. Her boss didn't have a degree, and set out to make her life miserable. Skip forward just a few months...mission accomplished. :-P
20 January 2017: the End of an Error.
Straw man. After selling my company I would have been happy to take a programming job at $45K instead of the 100K-150K I'd been earning.
Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
You might want to use more words, perhaps even enough to express an idea. I can tell that you're disagreeing with something, but who knows what!
I'm not really convinced even that you understood me, much less that you identified some sort of logical error that I made.
Maybe this is just me, but I stumble over a lot of this "old programmers" articles recently. What happened? Well, maybe it's just the Google bubble I live in. *sigh*
They day you stopped learning is the day you become a legitimately "aged" developer.
In my experience, the bias against "aged" developers has been justified, not because of age, but because of complacency. The problem with some "aged" developers (I am turning 40) is that they stopped learning and rely only on existing knowledge for solutions.
In this industry, there are two types of knowledge:
1. The type that changes quickly: language, syntax, libraries, maven/nuget packages tools, IDEs, plugins, code generators
2. The type that never gets old: good coding practices, architecture, design patterns, decoupling, vast experience, etc.
Young developers usually stay up update to date on the first type, while slowly growing the second type. Usually, a young coder writes their code more quickly and delivers faster, but their code is sometimes less maintainable because of lack of the second type of knowledge.
Aging developers have built up a good store of the second type of knowledge and have learned the first type of knowledge for so long they think they are done.
So some developers give up on the first type of knowledge, become complacent in their first type of knowledge. This is when I would say they have "aged".
Some times these "aged" developers get bitter when a young developer outshines them on the first type of knowledge. I used to do that to old developers all the time. Some of them would try to outshine the young developer with the second type of knowledge. When you do this, instead of bridging the knowledge gap together, you increase the rift. Accept that the young developers are better at the first type of knowledge. Embrace it, cheer it on, and let them go with it. But steer their exuberance with your second type of knowledge. Let them share with you their first type of knowledge, so you learn, then enhance what they taught you with your second type of knowledge, so they learn.
The best developers, the ones who become rockstar developers are usually the ones who are over 40, have a ton of the second type of knowledge, but also keep on the first type of knowledge.
See, no matter how long you have been developing, your current skill level shouldn't be what you use for each project. The world of dev changes every year. You don't need to know everything, but you need to know how to learn.
All developers of any age need to start every iteration/spring with learning time.
Learning Steps
1. Crowd Source.
- What is the current development world doing in regards to your solution?
- Of those, which have stuck and why?
2. Has anything new been released that can help you with your current solution.
3. Choose the technology: language, framework, architecture, design patterns, etc.
4. Are there any tools, IDE plugins, etc, that will automate boiler plate code for what I am doing?
5. Would it be faster to write a tool to generate the code or to write the code?
Only then should you implement the work in your iteration/sprint.
If you do this for every sprint/iteration, you will deliver much faster. It seems like learning will add time to your overall solution. It doesn't. It might not save time in every sprint, but in any given year it could save weeks to months of time. Your delivered solutions will feel up-to-date not because you used some new fangled thing shiny toy, but because you increased your toolbox with better tools before you started and used better tools.
Also, since you never stop learning, you never become an "aged" developer.
Yes, agism exists. But I think you will find that it is rare. More often than not that the interviewer noticed during the interview that the candidate has stopped putting effort into learning the first type of knowledge.
He's saying that's not the argument he's making and you're putting words (i.e. a poorly formed argument) in his mouth.
Especially weaning off the use of the shift key to code in numbers and the chicken plucker to edit your paper tape.
Tracy Johnson
Old fashioned text games hosted below:
http://empire.openmpe.com/
BT
This is what I've been asking myself in recent times. How hard is it entering a software project with some hundred thousands LoC, hundreds of packages and more than ten years on the market? Could we need a new tool for this? (In fact, I'm working on this idea since I am self-employed, but unless you ask me about it, I won't shill.)
Same is true in my experience. It doesn't matter what your record of accomplishment is either -- in fact it's almost a handicap to have an impressive resume when you're older.
One thing I noticed is when it started to get harder to get interviews, when I did get an interview everyone would seem excited about bringing me on ... except the hiring manager. The first time it happened I thought it was a fluke, but after it happened a number of times I realized: nobody wants to supervise someone with more experience than they have.
So my advice to older programmers is: don't put your hopes in gaining even more expertise. It works against you. Start your own business, or get training in some other kind of job.
Perhaps you are being forced into becoming an independent consutant. I would not have a hope whatsover that the government will force a penalty for age discrimination.
Leslie Satenstein Montreal Quebec Canada