Ask Slashdot: Career Advice For an Aging Perl Developer?
New submitter ukrifleman writes: I've been doing UK based perl, JS, light PHP and JQUERY dev plus Centos/Debian sys admin on a freelance basis for over a decade now. Mostly maintaining older stuff but I also undertook a big, 3 year bespoke project (all written in legacy non OO perl). The trouble is, that contract has now finished and all the legacy work has dried out and I've only got about 2 months of income left! I need to get a full time job.
To most dev firms I'm going to look like a bit of a dinosaur, 40 odd years old, knows little of OO coding OR modern languages and aproaches to projects. I can write other languages and, with a bit of practice I'll pick them up pretty quickly. I really don't know where to start. What's hot, what's worth learning, I'm self-taught so have no CS degree, just 15 years of dev and sys admin experience. I've got a bit of team and project management experience too it's quite a worry going up against young whipper snappers that know all the buzz words and modern tech!
Am I better off trying to get a junior job to start so I can catch up with some tech? Would I be better off trawling the thousands of job sites or finding a bonafide IT specialist recruitment firm? Should I take the brutally honest approach to my CV/interviews or just wing it and hope I don't bite off more than I can chew? What kind of learning curve could I expect if I took on a new language I have no experience with? Are there any qualififcations that I NEED to have before firms would be willing to take me on? I've been sitting here at this desk for 10 years typing away and only now do I realise that I've stagnated to the point where I may well be obsolete! Have a question for Slashdot's readers? Take a look at other recent questions first to see if someone else has had a similar question. And if not, ask away! The more details and context you include, the more likely your question will be selected.
To most dev firms I'm going to look like a bit of a dinosaur, 40 odd years old, knows little of OO coding OR modern languages and aproaches to projects. I can write other languages and, with a bit of practice I'll pick them up pretty quickly. I really don't know where to start. What's hot, what's worth learning, I'm self-taught so have no CS degree, just 15 years of dev and sys admin experience. I've got a bit of team and project management experience too it's quite a worry going up against young whipper snappers that know all the buzz words and modern tech!
Am I better off trying to get a junior job to start so I can catch up with some tech? Would I be better off trawling the thousands of job sites or finding a bonafide IT specialist recruitment firm? Should I take the brutally honest approach to my CV/interviews or just wing it and hope I don't bite off more than I can chew? What kind of learning curve could I expect if I took on a new language I have no experience with? Are there any qualififcations that I NEED to have before firms would be willing to take me on? I've been sitting here at this desk for 10 years typing away and only now do I realise that I've stagnated to the point where I may well be obsolete! Have a question for Slashdot's readers? Take a look at other recent questions first to see if someone else has had a similar question. And if not, ask away! The more details and context you include, the more likely your question will be selected.
Time to move to management. Fluff the resume a bit and put yourself out there as someone who can manage a decent term project and get stuff done. Job interviews, much like everything in life, comes down to 10% what you say, and 90% how you say it. Come across as wise not old, confident not down on yourself, and have an air of "If you don't hire me you're a f'in moron" without actually saying that, and you might be surprised what you get.
...Python is the new Perl. So if you're looking to continue in the niche of Sysadmin-that-can-script (always in demand) definitely pick up Python.
After that, the question is: What do you *want* to do? It's not specific enough to say you want to code, you need to pick a class of application and learn it. Front end web development is fun, large-scale data processing and mobile applications require very different sets of tools all with their own very different learning curves.
Once you pick the development area you'd like to dive into, then the list of tools you need to be good with are probably in an O'Reilly book. So buy it and dive in. Take whatever job you can pick up in that niche as soon as possible and let a company pay you to move from intermediate to advanced while you make their products work.
Speaking as another aging (37) Perl developer with a somewhat similar background, you have the skillset to get in two potential directions (in this order)
1. You've got Perl + Sysadmin skills, so head towards DevOps positions. Start playing around with all of the Amazon cloud services at home and get used to them.
2. You've been doing web forever, head towards front-end jobs that leverage your existing HTML/CSS/etc and primary in Javascript.
If you worked on something serious, it used an RDBMS or some other better-than-csv database for data storage and retrieval. Don't discount your database skills. Look for jobs requiring experience on that flavor of database, and talk up your skills.
If you want to stick with development, I'd get into Python (and the Django framework). Very popular right now and growing, easy to learn and lots of open source community help. Your sys-admin experience will also help a lot.
You could also look at a DevOps position if configuration management doesn't scare you.
40 is not a dinosaur. I'm 57 and have NO difficulty locating work. Fortunately (for me, not so much for employers). Employers have discovered that experience DOES count (and least those with more brains than a raven, those who don't... I don't want to work for anyway).
I also don't insist that I *deserve* every perc on the planet and that my work always be interesting.
Keep in mind, it's your work, not your life.
With this much experience you can do anything. Being a freelance engineer for a longer period of time IMHO qualifies you for any position. You want to keep writing code? Learn JavaScript/CoffeeScript/Node.js/Mongo, spend a couple of nights with it, or port some of your Perl code to Node and put it up on GitHub and you should not have any issues landing a contract. Want to manage? You can be a team-lead or a project-manager right of the bat, if you want to get corporate you'll probably need some certs. Also read up on Agile, Devops, Continuos-(testing/deployment) and try them out and you are set.
Learn Perl, Mojolicious, ReactJS, Bootstrap.
Once you learn these, you'll never go back to the "old way" of doing things again.
I do a strange combination of admin/design/integration work, and one of the reasons I do a decent job is because I can also script and automate stuff. You wouldn't believe how many Windows (and some Linux) admins lack these skills or are very rusty on them. So I'm the admin who can do a little coding -- can you be the coder who can do admin work? I believe the new phrase is DevOps...
I feel your pain and I'm getting older too. The company I work for does industry specific IT work, in an industry with a huge amount of proprietary, barely-transferable knowledge. I've seen people in my group get sucked so far down the proprietary knowledge route that they might as well be in your spot. I've had to really work to keep up to date, and am always trying to rotate my responsibilities around as much as I can to avoid being labelled "The X Guy", where X is some crazy technology that is interesting, but not conducive to employment outside our industry.
One thing I'd recommend is to think twice about management if that's not what you want to do. Most companies try to force good techies into management simply because that's the only promotional path available. However, I've worked for some awful managers who were great techies, and I'm not liking the small amount of management duties that have started creeping into my job description. if you like computers because they're more predictable than people, just wait till your first management job. People are not predictable or easy to deal with unless you have the skills...and it's something you're born with, not something you can acquire.
I've been using perl professionally for 22 years now, and I'm not seeing much of a drop off. I am noticing that a lot of the work is in testing organizations. They've written a lot of code and it needs to be maintained. Look around for automation testing positions and you'll see that a lot of them are in perl. It is not particularly fun and sexy, but you didn't say that was a requirement.
Mandarin's for hardware people. Hindi's for software people.
You're 40+, with decades of experience. You're done proving yourself to others. Start selling your experience. Either manage others, or start your own business and manage others.
Clients don't ask suppliers what language is being used behind the scenes. You can keep doing what you do best -- I've got a 20+ year business in web development, and I'm still programming is raw perl -- avoiding new stuff when you have the experience with old stuff has so many advantages, to your clients too.
Modern stuff has a smaller/easier learning curve; but you're already past the learning curve. Anything modern won't be able to output a string of text any better than Perl, provided that you already know Perl, which you do. And since that's all the web is -- a whole whack of markup text -- who the hell cares.
Start your own, do what you like, hire the juniors when you actually want to, and you'll never need to apply for a job ever again. You're 40. It's about time you self-sign your own certificate. You're an expect.