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?
... I would like to certainly see discussions of algorithmic discussions. I passed the google phone interview but passed on doing the on-site because I did not want to move to the Mountain View area at this stage. I would also like to see discussions of full stack architectures and what is the current thinking about those solutions. Also, discussions of new languages and the paradigms they attack and solve.
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.
Sorry, that's considered age discrimination here. Why aren't you also interested in helping minorities and girls?
Of course, I'm assuming that people here at least try to be self-consistent with their posts. Maybe that's not a good assumption.
Leather, whips the whole enchalata. It is the gold standard in training for a programmer.
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...
As a game developer, we look for programmers that can jump in anywhere and help. That means being very familiar with C#, C++, PC and console and mobile SDKs and TRCs and debugging tools, Perforce and Git management, HTTP, shaders, visual language extensions, user interface designer, crash reporting, build system automation, project planning processes, and more. These don't trump good language and algorithm skills, but evolve faster than those things so may be most necessary for senior programmers to ramp up on.
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.
So you can lead the teams from afar.
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.
Older folks code just as well as younger folks, so maybe you should offer training in age discrimination lawsuits?
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.
Nuf said
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.
Your family will be better of without you, you're useless. All of those aches are starting to wear on you, you're tired, aren't you? Years and year of climbing, and you still can't see the summit. Tomorrow will be another day, more of the same, but the barrel in your mouth, the cold steel, the is something new. You don't have to wake up tomorrow. Come on old man, just pull the trigger. DO IT!
How about a solid understanding of the basics plus intelligence. It is these two things combined that gives one the ability to move beyond what is taught and into the realm of real problem solving, and it is that which is valuable in the real world, rather than anything that can be taught.
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.
Older programmers really don't need or want your help.
Go help the new grads. You can start by teaching those kids who think they know everything how to use version control.
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.
I think we need to put more effort into training the young ones / recent college grads.
I'm older, in my mid 40s, and have zero concerns about job security. :-)
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
But does not guarantee people will use it. The exact person who said he would find X useful may not use X after you build it. Read some of the 'lean startup' literature. Make no mistake you are starting a business that may very well fail so don't blow your retirement money on it. If you are doing this because you personally cannot find work and want to help others in the same situation a book might be better; 'reboot your IT career after 50' or 'alternate careers for laid off programmers'
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.
Without doubt, bitching at noobs on stackexchange and slashdot.
Captcha: ablaze
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.
Are you a vacuum cleaner salesman or an ice cream salesman?
https://meta.wikimedia.org/wiki/Solution_in_search_of_a_problem
It sounds to me like you're having a hard time finding a new job as an old programmer that's moved to Australia, and your solution is to come up with solutions.
My advice then is to keep trying to find the job you want, and document your experience. One of the best things about being human rather than some other mammal is that we can easily learn indirectly from someone else's experience. I don't have learn that fire burns by putting my hand in it. If you've already done so, then you can tell me that fire is hot and will burn me.
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.
use a walker.
Train for a real job. "Programming" is not working.
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
for me continuous learning is part of the job. You have to evolve your skills not only to stay relevant, I think if you do not want to learn something new every day in ICT, you do not understand how technology works and better consider another career.
I am 48, I program for more than 20 years, mostly java, and invested continuously in it. Last year I decided to learn a whole new technology stack and learn to make javascript based solutions, both websites and Android/Iphone apps, using the Facebook opensource stack. I learned ES6, node, npm, grunt, Webstorm, Nucleide, react.js, flow, flux, GraphQL, Relay, React Native, Material UI, React router and many many more js libraries. That was the main goal, I also learned docker, git, NGINX.
In retrospective of this year, how would an online solution have helped me?
I am a fast learner. Learning for me is a form of time management. I set some goal I want to achieve and make a roadmap with priorities of things I want to investigate. I use a little toy project, I add more and more to it, see how everything fits together, evaluate if I like the workflow, see if it does what I want. Some topics I abandon after half an hour or so as they do not meet my expectations. After a day I expect to be on a junior level, master most tutorials. After a week to be on a level where I can give others advice about it. After a month I want to be able to contribute to it. E.G. after one week I found some bugs in react native dev tools on Windows (FB is clearly a Mac shop) and contributed some fixes to Facebooks github account. I don't buy books, don't go to conferences. Most online tutorials are too slow paced for me. During this whole year I bought only one book: an e-book "how to develop a react edge". Maybe a good book on the new ES6 standard would have been helpful.
So for me it would be helpful to have an online tool to see what the roadmap is, keep track of the progress, see where I spent time, what worked and what did not work, some sort of log . Make a roadmap model where you can plan skills, give some guidance roadmaps to start from. Add some progress info. People can make personal notes, share experiences about what combinations work, etc..
Sometimes I use sandbox learning environments, but they have to be ready to go in one click. E.g. I used the sandbox tutorial environment for docker. I learned git in a sandbox environment. But I do not use jsfiddle to learn a javascript library, I guess I don't like the editing environment. Instead I clone how-to github repos and use webstorm or meteor. When I decide to keep using it I it integrate it into my private online git repo.
I think there may be a market for a learning environment based on little technology sandboxes wrapped in docker images. Why not make an online market for docker images with sandbox environments? Let people push their sandbox images, add some tags to make the catalog searchable. Make a recommendation engine for sandbox images, let users add sandbox images to their roadmap. Let users recommend sandboxes to each other, rate content.
I spent a lot of time looking for and evaluating libraries. Libraries are tricky, first I have to evaluate which implementation is worth looking into. E.g. there are dozens of flux implementations. Which one will win the market in the long term, is most mature, has most followers. etc.. This involves a lot of searching on blogs, online video of conferences, etc. Then I look for a how-to project an try to copy it step by step in new repo, read the docs, look up some questions on Stack Overflow when I am stuck.
I think there is a market for an online recommendation community for libraries. What library offers the best solution for a problem? Where do I find the best learning resources? A social environment for sharing Interesting blogs/video/docs organized by topic
Also, there are so many little bits and pieces to remember that I created a private wiki with little code snippets that I find useful, commandlines that I use only now and then bu
This is more advice than training, but if you are experienced enough to have insight and know reasons why things should be done a certain way, SHARE the insight and EXPLAIN the reasons! When all someone gives me as justification is "I have 20 years of experience!" I assume they have been barely thinking for 20 years.
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
Larger fonts. Fuck you Unity for your micro editor font on my 4k monitor.
that there's a trend in thinking that "old people" don't know how to program, when they've been doing it for 20-30 years already? How the hell is a dumb kid fresh out of college more valuable than an adult with at least 1 decade worth of experience in the same field? I'd like to blame American corporate and tech culture for this, but I'm not sure.
Apparently to code with kids these days you need to deserve the title of "ninja". So I recommend ninjitsu training.
... 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
do not try to sell training material to senior developers. If you model it as a recommendation community I think you can go for a google-like approach: show sponsored content first.
Also, consider marketing to ICT and HR department heads. Let them pay for access to premium content for their developers as a perk. Lot of IT departments have best practices, standards. You can market to businesses as an internal education platform for company standards.
Not if you worked for the same company, or in the same area, and all your similiarly aged and reputable coworkers who knew you by reputation are retired, in an entirely different career path, concerned you will overshadow their own mediocre work, etc.
Just as an example, I have a family who worked for a major (think fortune 500 tech company.) Out of the people he worked with in-industry, those he knew who hadn't gotten out within the 15-20 he worked there were not the employees you would want to get a referral from, or were heavily working their way up the management tree and forgot the little guys, some of whom helped them get there.
If your looking for a fun way to learn basics or those Google style questions in a new language try codewars.com
I've grown weary of reading technical books. Books on programming put me to sleep. Reading through the chapters of basics to make sure you don't miss anything that may be different from other languages, but is generally the same makes it difficult for me to make it through the beginning of books. For this reason I rely on video tutorials before I touch a book. For web/android/ios programming I really enjoy teamtreehouse.com. Their videos are well produced, and get you going quickly on whatever topic the videos are about.
Otherwise I tend to search youtube for free videos.
So basically the same thing as younger programmers. On the whole, programmers are arseholes and it needs to be beaten out of them. It doesn't matter how good you are, if you're an arsehole then the whole company suffers to an extent far outweighing your own ‘excellence’.
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...
Go over to hackerrank and show you can make programs that solve problems just as fast as anyone else in the world.
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.
Personally I think a course on cutting through bullshit would help. That, and "strategic avoidance of same".
I knew Java was Crap in 1996 when Sun came to present it to our lab. They promised it would become faster, lighter, and that programs would be write-once, run anywhere.
I guess 1 out of 3 isn't bad.
Java as a language isn't bad. Java compilers and run-times all suck. Just pick up any Android phone to see the lagging. Someday I hope to get a computer with enough RAM to make java work ... ah ... someday.
For the last 15 yrs, I've successfully avoided java and have been better off for that. Retired at age 42 in 2008 after consulting for a decade as an enterprise architect after a decade of doing cross-platform C/C++. Cross-platform wasn't 3 - it was 12 platforms and "Windows" was 1, not 3 of them.
I am better at recognizing BS technology. I'm also wrong about popularity. Can't understand why anyone would use php or java today. There are better choices that aren't loaded with baggage like those 2 languages.
I'll be brutal. I'm not missing you. If you're such a toxic person that your coworkers and business associates are unwilling to recommend you, I don't want you. I don't hire often because I hire well, but I've only had twice a problem finding someone by word of mouth, and both of those times, we found someone competent, but not well recommended who was on part time contract for a few months and teleworked. No value in bringing that into my office or teams.
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.
Sorry.. I had to.
Most young programmers are lazy. Back in the day when I started we didn't have APIs. We wrote our own.
Writing Android apps is so easy a monkey can do it.
I agree.
I was an elderly programmer. I retired a year ago. And not because I couldn't learn new technology.
Instead of just skimming documentation it is better to RTFM. Upgrade from MySQL to MariaDB. It is still fun learning new things. A search engine is you friend. Was still taking over systems for you kids who left for better paying jobs. (Warning: as you get older retirement packages become 'golden handcuffs'. V B G)
But why bother to work if you can live the same lifestyle without it? Time to enjoy life and not attend endless, boring meetings.
So Instead of picking up Swift or Go or IoT have fun playing with R and analyzing sport stats. And programming and flying micro-drones. Watch out for wind gusts though. Mess around with a bramble of RaspberryPis. Open source DAW software is amazing. No guilt feelings about going to afternoon baseball games either!
My employer just hired a 60+ yr old.
He seemed fine at first, knew the basics and common concepts (we thought), and answered all the interview questions with the hottest buzz words.
A few months into it, and he is absolutely the worst programmer I've worked with.
I have spent dozens of hours hand-holding him through everything.
It is honestly a lack of motivation. He would ask the right questions, but then never retain the answers. We would provide him with a dozen resources and he wouldn't tap a single one, then the next day ask how to do something that was covered by those resources.
He honestly just don't f**kin apply himself. He is so caught up in "what I learned" in the past that he is completely ignoring anything from "today". I've had to personally fixed every single project he worked on before we deployed it for our clients. It's unreal.
This guy gives old programmers a bad name, he is where this stereotype comes from.
These people exist, stereotypes exist for a reason. Yes, some older programmers are fantastic, but yes, some are also the bane of my existence.
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.
Because the new ones will be able to do things fast, not necessarily correctly.
... that the older programmers know more and can do more than they are given credit for. That's the training that is required.
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.
is for people to stop hating on them.
Coding is a young mans game... And all the modern "paradigms" is shit anyway. "Hey kids! Get off my lawn!" Sorry about that. Anyway, if I cant code in C or assembler go suck an egg!
1. Make a list of the companies (or departments in your present company) where you want to work
2. if you know someone there - have them help you arrange a Q/A with some manages in areas you would like to work - BUT
3. BUT make sure those managers HAVE NO JOB OPENINGS!!!! - repeat HAVE NO JOB OPENINGS!!!
4. now they can say & do just about anything they want, answer just about any question you have, and give you brutal/helpful feedback - HR is not involved - BUT
5. if the have a job opening they have to clam up - say the right thing - see the right candidates - select the right credentials - BUT
6. someday they will have an opening - in the area you were interested - and they will know you had an interest BEFORE there was anything in it for you.
7. we network when there is nothing in it for us in the short run - BUT IN THE LONG RUN the seeds above pay off;-)
I'm almost 70 - have worked IT for various companies in Boston, NY and the Midwest - and call all my peers "pimply faced kids". They just laugh and return an age related insult ;-)
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.
I'm sure the people saying stuff like "Older programmers don't need this" aren't the target so they don't know
I find that with a million possibilities, I have a hard time figuring out what technologies should be used. Let's face it, programmers are bad at explaining stuff and guess who is explaining all the new technologies... programmers..through written text.
So shove it.
I welcome new learning tools.
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.
Managing Millennials - Retention, Reward and Recognition
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.
... and vocabulary drills. Get rid of the grey, update the jargon and possibly the phrasing and word intonation. Sure to take 10+ years off which will help more than showing you know what the %!&(%! you're doing.
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?
Your hair, that is. And edit the resume so it doesn't show your jobs all the way back. That's my experience in dealing with the f*ckwits of HR and Management, who somehow equate youth, which includes "pay them a lot less" and "they'll work 60 and 80 hour weeks, and take calls at home, without complaining", with ability.
If you've been in the field for enough years that you're worrying about this, then you're probably better than at least half of the younger programmers (oh, sorry, #insert "nose_in_air.h", developers, because you know a hell of a lot more about errror catching and handling, and your codes more efficient... and *shorter*, and easier to maintain.
mark, legally and officially an old fart
meditation and yoga
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.
The phycisian assisted suicide program? Die already and make room for the next generations.
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?
"Welcome to Walmart"
How many responses here say "Code Monkeys are cheap"? How man say "Just keep programming"? How many say "Network and it will fix itself"?
Anytime you have A) ultra-cheap replacement workers, B) a minimum-entry skill set that can be learned by anyone, and C) a dependence on the kindness of others you should be looking for another career.
Now go and programmer no more.
Most other people are going to say there probably isn't a specific technology, but I'd recommend Javascript/front end stuff. The reason being is that it's the trendiest, most rapidly changing landscape out there. A new paradigm shift occurs almost yearly. ..and I'm assuming your question is more or less trying to ask ''what can I study that'll keep me more up to date with what the next generation of developers are up to and teach me about how they think as opposed to just being a more of the same of what I already know with a slightly different flavor'
For that, the answer is definitely Javascript. Check out React and Flux especially, that's currently the new way to think about web apps.
tools for "old programmers" doesn't make any more sense than tools for female coders.
This older programmer would disagree. I was a FORTRAN whiz, and would really like to update my skillset with an understanding of OO stuff.
But every time I sign up for, say, a C++ course, they spend a day on the basics (I get really bored learning about operator precedence for the 20th time), then suddenly they start heavily spouting terms like "polymorphism" and I'm totally lost.
I know the fault is with the style of instruction, because in every other aspect of academia I am capable of absorbing complex concepts.
Can anyone recommend a tutorial for someone like me?
Something useful that develops your knowledge and is sophisticated enough to put on a CV. Preferably it should be open source, an app or something that can be looked up. It shouldn't be hard to do.
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.
What? Just me?
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*
Jeez, what a lot of grumpy old curmudgeons there are around here...
I've been doing this web thing for a couple of decades now, and now I'm in my 40s I still find it interesting and rewarding. To answer your question, if you want to build an online tool that appeals to me then I'm not really interested in training, or working on my core skill set. More useful for me would be a resource where I can keep up to date with new technologies that are likely to be important in my field. So that would be news (what's coming along, what's been updated and so on) and also maybe resources (or links to them) where I can learn more.
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.
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
Older folk like books. They like the paper. They like the words and drawings. They like the battery life.
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.)
It has always been about the caffeine. The precise liquid mixture is of no consequence organizationally but personal preference can be a big motivator.
Oh, and the programmer's preferred text editor.
Oh, and an annual training budget, paid for by the employer. It doesn't have to be huge but it should be reliable and relevant.
Oh, and meetings that are short, to the point, and only invite people who need to be there.