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.
Checklist of things to learn:
- Hindi
- Mandarin
Take it to the limit, everybody to the limit, come on, everybody fhqwhgads.
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.
Learn Python, Flask, ReactJS, Bootstrap.
Once you learn these, you'll never go back to the "old way" of doing things again.
If you plan on staying with Perl, I would highly recommend checking out Moose and the other derivative packages that append object systems to Perl 5.
http://moose.iinteractive.com/en/about.html
Using Moose along with helper packages such as Moose::Exporter, Method::Signatures::Simple allow you to write classes that are familiar to classes in other languages but do things that have yet to be implemented there.
Once you start using a modern object system in Perl it's hard to go back to the old way of doing things, and you shouldn't have to.
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.
Get more advanced with PHP Frameworks such as Yii, Laravel, Zend. Get on board with OO. Also, if you have any experience using a versioning system such as SVN or Git, make sure to highlight this on your CV.
Crimey
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.
Most recruiters don't understand the technology. They only look at the buzzwords on your resume. When you see a job you are interested in try to make your resume come as close to possible of what they are looking for. That doesn't mean that you need to lie, just emphasize the parts of your experience that match the technology specs they are listing in the ad
Most recruiters will go down a buzzword checklist and try to get as many matches as possible.Even though you may not be the perfect candidate if you have roughly half of the skills they are requesting you still have a chance at getting the position. From there you can learn the other half.
I am 55 and at the peak of my game! with js and jQuery, I would learn angularjs - I am seeing a lot of traffic in that area. And don't be afraid of going with a firm - I have had great success doing that.
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.
1. go on the dole and stay on with a sudden disability
2. off your worthless ass
3. see if the 7-11 will hire a non-Apu
Don't sell yourself on your technical skills & knowledge: the reason why you have been able to do all that stuff without getting any formal training is the reason why they can now hire another 20+ year old to do the same. In fact, your most valuable assets now are experience in managing projects and knowing how to make things happen.
Moved from Perl to Java about 7 years ago.
Never looked back.
Very enjoyable language and development environment.
Plenty of work in London and the UK.
Good path into new things like Scala and Play.
Find someone who needs your skill set like cPanel.net
cPanel is perl based, and they have open positions if you are willing to move to Houston, TX USA
http://job.listings.cpanel.net/x/detail/a2ldog9w0ykj
VH-882
I'd advise you to paddle your canoe over to Python, Django and AngularJS or similar.
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.
A little tongue-in-cheek, but once you know Perl, you can argue that learning any other language with a fully-BNF-described grammar is much simpler.
I hit this decision point about 10 years ago (soon I'll be 50). Every manager I've ever worked for who moved on from being a crusty coder, sucked as a manager too, where as managers who did what they did because they loved it, where almost always really great. As the technologies I knew well began to fall to the wayside, I didn't not want to become a reluctant manager or lead. So I started over. And I have continued to do that every 3 or so years. Short of using a compiler, there is not one thing I do today that has much of anything to do with what I did 10 years ago, but I love what I do just as much. That's the trick - keep yourself engaged in what makes you excited. If that is managing teams - great. If not, don't become one of "those" mangers that lost his spark.
Nothing evolves faster than the word of god in the minds of men who think themselves divinely inspired.
Javascript is hot right now thanks to Modern Browser capabilities and NodeJS. So if you have knowledge of and are comfortable with jQuery -- here's where to go next:
Anyway -- that's the basics of where to go if you'd like to leverage your existing knowledge of jQuery into something marketable. Express for NodeJS is also a good primer for Ruby on Rails as it is a "rails-like" framework with NPMs being similar to Gems
You have some reasonable skills. I'll second the guy who said to learn Python. Shell and Perl are awesome and get the job done, but Python is super nice to work with and has a ton of features and less-ugly syntax. Anyway, management is an option as described above, but if you're like me you like to build stuff and make the solutions happen. Freshen up your resume, copy the style of other "hipster" applicants, to a certain degree, you know what I mean. Then market yourself with multiple resumes in the fields you are sharp in; web app management, sys admin, Linux. I'll bet you know enough about securing a web app to become a web-centric security person, and those security jobs are going to get hot, if you don't mind the risk involved. Yeah you could be a software dev, a web admin, a manager of all that, Linux admin, you probably know enough about networking to be a senior net admin. Don't even fret about the no college or no certs. Both of those are nice to have, but better to have the real skills to do the real work.
Personally, I'm at the top of my field and can basically ignore job come-on and target big players directly. But don't be afraid to do some contracting. There are TONS of contracting companies out there, and most of them are desperate to get anybody to work for them. Just make sure the fit is right for you. Name your salary, NEVER low-ball yourself. You have the skills to pay the bills, as the kids say. I look way younger then I am, but I don't hide my wealth of old-school knowledge. I routinely outclass much younger applicants and take the job. Usually with one interview. Take your skills and become the star that you are.
BTW, you owe me $15 for this session. See you next week! ;)
This is the NSA, we're gonna geet U h@x0r5! Also, what is a h@x0r5?
I think the Big Data ecosystem is very fast changing and knowledge of systems and math (and some background/interest in algorithms) goes a long way.
I was 40 when I left academia (where I was not able to convince people that I know something about data analysis -- I was a Perl guy, Matlab guy, sysadmin, researcher, faculty member, task master, all in one). Some people that know me helped me get an interview for a contractor position and I managed to hang on and thrive.
Language-wise, Python is a good transition to do -- it is like Perl [1] if Perl came from a language design background. Once you experience a python, you won't go back :)
S
[1] Python is much much more than Perl...
Fuck that, be a boss and start to learn what (DEVOPS) needs. PUPPET,CFENGINE PYTHON.
I would suggest learning Ruby. It was inspired by Perl and they have much in common. The language is modern and its Rails framework is pretty popular. The best thing about it is, that it has really dynamic community, trying to keep up with modern development best practises. Check it out, after learning it you will be able to learn python quickly and switch wihout much effort. If you are searching for some language that will give you stability and will not vanish, probably go with Java C#, they have been around for more than decade and it seems like they are not going anywhere.
Spend the weekend here, http://www.pythonchallenge.com...
You'll never look back on Perl.
I am Bennett Haselton! I am Bennett Haselton!
First of all, ZipRecruiter.com is a jobs search service that can help you find a job.
But they use Perl a lot, they are doing well, and they have open Perl positions. Even if you are in the U.K. they might hire you for a work-from-home position.
https://www.ziprecruiter.com/careers
> I've been using perl professionally for 22 years now, and I'm not seeing much of a drop off,
I see that it's nearly disappeared from Southern California, while it seems to be a skill that people sometimes pick up in Northern California and it's more common in the London area (when I've worked with UK teams). That's just based on experience and the 200 odd resumes I've picked from, in the last few years. Perl is sometimes used as a glue language, but that's a far cry from the goto scripting language of the 90s.
Often wrong but never in doubt.
I am Jack9.
Everyone knows me.
You're well-positioned to do Puppet, Docker, continuous integration and all sorts of things that support a team. A year doing that while you sort it out will just help you call yourself a full stack developer.
jump into a mulcher to become perlite.
They don't like us oldsters in this biz.
Eloi are stupid, throw morlocks at them!
The problem is not your age, but that your resume lacks the formal CS degree and experience with relevant technologies. This is nothing that can be fixed in two months. In the short term you could polish your Perl skills. Convey's 'Object Oriented Perl' will allow you to learn OOP using a language that is familiar to you. A great Perl programmer should know about 'Higher Order Perl' by Dominus which provides the additional benefits of introducing functional programming to you as well.
In the long term I would recommend the 'Linux Programming Interface' by Kerrisk to get a solid OS foundation. Brush up on algorithms with 'Introduction to Algorithms' by Cormen et al and watch the associated course at MIT in iTunes University. For any object-oriented development work you will need to build C++ or Java experience. For functional programming have a look at Scala and lambda functions in C++.
When ready to interview have a look at 'Algorithms for Interviews' by Aziz; that is a bit childish but so are interviews at times. Finally, get active in the open source community to prove that you can code before you interview. Don't use an aol, yahoo, msn, comcast, hotmail or similar outlandish e-mail address to apply.
See http://jobs.perl.org/
A couple of years back, I was trying to hire someone ... although we were hoping for OO Perl skills. We ended up hiring someone with database skills to train up in Perl, instead.
The problem with age isn't so much that you have less portable skills, it's that you have a less portable life -- if you have a sponse & kids, you don't want to move the kids in the middle of a school year and away from their friends ... if you have a spouse, you have the problem of trying to find a place that's convenient for both your jobs.
If you're single with no kids ... Booking.com is hiring in the Netherlands. It's effectively an English speaking country these days (although it's been 30 years since I've been there).
(I have no affiliation with booking.com, other than they were a sponsor for many years of the DC-Baltimore Perl Workshop, which I help to organize)
Build it, and they will come^Hplain.
If the object is to get a job programming go to the job sites and see what they want. Asking what's "hot" is a sure way to end up back where you are now in a couple of years.
Seriously, you know Perl, and have ostensibly been writing it for 10 years? Can you seriously think of another language with a steeper learning curve, when it comes down to getting THAT good at it? Picking up something new should be a walk in the park, you're just making it scarier than it is within your own head.
If DevOps isn't up your alley (as some have suggested), ETL/Database work doesn't sound find (as others have suggested), and you don't want to go into management (which honestly, shy of entrepreneurship is your best bet at a good pay grade) - there's no reason you can't go on Code Academy's website and pick up a new language, or PHP framework. First things first though, as someone in EXACTLY the same boat (but a handful of years younger than you), the only reason I'm hesitant to just pick up another language for professional use is that other than a few projects using Moose over the years, perl has given me an utter lack in the fundamentals of OOP. Lucky us! Code Academy has a course for that, too!
Myself, I'm actually going into ETL and data warehousing (and a bit of entrepreneurship), because I've got a lot of experience with that over recent years, but if I were interested in more development work after my current contract ends, I'd be on CA learning OOP, then a PHP framework, and after that Python and Rails (both, not either/or). I'd put together some projects with each to show off at interviews, so I could demonstrate I know what I'm doing at an interview when they ask why I have nothing on my resume using those skills, and I'd hit the job sites and recruiting firms HARD.
To Estee Lauder.
Learn Chef/Puppet and Ruby.
Experiment with Docker and the ELK stack(ElasticSearch, Logstash, Kibana).
Then you will be up to speed mostly.
Die. Here, that's the best and most realistic advice you will ever get.
A bunch of us were wiped out in '09 because our company used the downturn as an excuse to trim people and make everyone else just work harder and longer - basically a backhanded pay cut for the survivors.
A bunch of other companies in the area did the same thing with their IT and development staffs. So, there was a bunch of people looking for jobs all at once. And the younger ones got hired first.
But the parent's attitude is pretty much what happens - career death.
Without on the job experience and being currently employed, any new skills you learn is worthless.
This industry is not a viable option for long term employment. This isn't the industry that I got into back in the mid-nineties. I just wish I got into the business end when I had the chance.
I'm turning 50 this year, and the side-effects of the cancer "cure" I had 8 years ago are slowly devouring me. Even now I'm taking a sick day from work, always wondering if this'll be the day they fire me.
He's in UK, you fool! Socialised Medicine!
I hate to tell you this, but I wouldn't hire you no matter what "skills" you try to pick up in two months time.
You knew the project would finish someday, yet you spent three years content to sit on your arse and while away the time on the current project instead of learning something new at home on your own time.
You dropped the ball. You didn't plan.
And because you don't plan ahead, I wouldn't want you.
I do not fail; I succeed at finding out what does not work.
I was unlucky for finding a job for more than a year now. I'm a Perl, JS, Java, PHP, C# C++ developer with strong software architecture experience.
I had built real world ecommerce architecture that been used for more than 15 years now.
I can't answer you question except to wish you good luck
Here's what I've learned:
1) Being able to do something is good.
2) Being able to teach someone else how to do something is better.
3) Being able to convince someone to do something is best of all.
In other words, think about whether maybe you should move to management. Do you still really want to write code? I'll bet you've developed some skills over the years that would serve you well in management. And the most important thing to remember is, don't be the manager that you always hated.
Think about your future. Not just what you want to do today, but how you see yourself in a few years. I know it's a cliche that everybody gets asked at interviews, but you've got to be willing to give yourself an honest answer.
You are welcome on my lawn.
...facing are a lot of hype. The age factor is a lot of hype and the new languages are a lot of hype. Anyone who has good core programming skill (of any flavor) is still going to have to address (on a new job) finding themselves in a wilderness of complexity. Anyone who can dig in and eat fire will always find a place, and the only path to this is experience. (There goes the age factor.) (Think of a steel blade tempered in a fire.)
Bukowski said it. I believe it. That settles it.
The real key is to go deep on something and specialize.
You guys got there before you got to your "advanced" age. Trying to get there when your older just wont happen because the labor market - especially in technology - is just too inflexible now. One can learn those skills on their own but without on-the-job experience, nobody will even look at you. Get an entry level job after 35? Not gonna happen.
If you don't start in that direction when you are young, it's too late.
So, the parent's and GP's advice is perfectly sound (and I agree 100%) if you are just starting out.
Wait for Perl 6 and then all your problems will be solved. :)
Man, I'm somewhat in a similar situation, hopefully (as far as I can see at least) my job at the office is assured.
I programm in Java, and in a lesser degree in WEB langs, python, SQL, I know about linux admin stuff, and some thing on networks and security.
But I think that nowadays I'm more appreciated because I know more about business, negotiation with our users, and more about the whole platform where we run our applications that how productive I'm at coding, I know that I'm slower that young guys at coding, BUT, when the young guys just leave a problem because they don't have the knowledge, the patience or plain luck, I prevail, the experience, patience an conviction to correct stuff, to know whats happening when things go wrong is not a usual youngers skill, I'm sure that's usually the other way round.
I try the last couple of years to do a round of job interviews (once a year), to test my own value (and know my real value in the market) I often "sell" myself not as a speedy and fast programmer, but I do maintain apps. running, I know how to see logs (and interpret them, optimize things, understand where things fail), I did some security stuff, and I maintain some source repos (in a propietary tool, that no young guy can even come close to handle or understand).
Friends and coworkers here, want me to go up in the management direction, but I love technical stuff, and I hate administrative stuff (I don't want Excel and Word become my IDE) so, I try to run out of that, but in little steps I had to do some of that too, but that also helps to be even more usefull, I think.
Sorry for my English, I hope to be understood.
Where in the UK are you based? Ping a email to pctuthill at gmail dot com. I'd be interested in talking to you.
My company is hiring perl developers (Irvine CA)
Email me at "etickets" at gmail.com
Stop aging.
It's a perfect time for being wasted.
A perfect time to watch the stars.
- Burden Brothers, "Beautiful Night"
I'm 38 and my career is thriving like nobody's business. I'm by far the most educated and talented person on the team. The young guys are pretty shitty to be honest. Don't know if it's the millennial attitude (they all seem to not give a shit and bugs are "ok.. just the cost of doing business") or what
Not only that but here I have 17~ years experience and some of my similarly-aged coworkers have about 5 years of experience (due to getting higher degrees and taking time off)
so I don't think 40 is anywhere near being a dinosaur.
If there were one single language to distinguish yourself it might be Swift. it's currenlty apple specific so this will limit your platforms and it's not a sysadmin language. it's an application language. But like perl it is suited for rapid development for small niches like the other languages you know. So you could sell it on a first to market sort of basis that might be consistent with your other skills. The advantage is it's new and thus a level playing field for the short dinosaur arms of an over-the-hill 40 something.
Some drink at the fountain of knowledge. Others just gargle.
That was my suggestion also. And add QA to the resume , even it was just for unit testing your own code. Recruiters use buzzwords for search.
-- Another senseless waste of fine bytes.
.. that you're a terrible developer. Find another line of work. If you were a good developer you wouldn't be asking questions like this. You wouldn't be 'catching up' because you'd be apprised and learn new technologies as they happened. You didn't do that stuff. You're a terrible developer.
Just learn a popular language and framework or two and become proficient at them. Jeez...
Plenty of jobs at jobs.perl.org
Many require DBIx::Class, Moose and one of Catalyst/Mojolicious/Dancer.
Learn those and you will have new opportunities open to you.
All I can say is that when interviewing, I favour people who are technically competent and enthusiastic. Age doesn't matter (although on average older people tend to be less enthusiastic about learning new tech). My advice would be to take a few free decent comprehensive online courses (Coursera, etc), write some decent code, put it on GitHub, contact some agents and tell them you favour interviews with some hands-on coding. If you don't learn new stuff then you are going to eventually have to leave development, as it is a moving target. That is half the fun of it though!
0. MAKE A CONCEPTUAL MODEL OF THE PROBLEM-DOMAIN THAT YOUR PROGRAM WILL REPRESENT AND WORK ON.
Jot down a circles-and-arrows model (diagram) of the types of entities that exist (and are important as far as your program will be concerned) in your problem domain. The circles, with an entity-type-name written in each, represent the important different kinds of objects/entities in your domain. The arrows, which you may refer to later when defining attributes or functions that work on the entity types, summarize the important relationships you have noticed between the different kinds of entities in your problem-domain. Look around for groups of entity-types in your domain model which are really just different subtypes of a common kind of general entity type in your domain. Create a named circle for the general type of entity, drawing it above the group of more specific subtype entity-type circles, and join the general-entity-type circle, to each of the entity-subtype circles separately, with a different kind/colour of arrow than you used to represent relationships between one kind of entity and a completely different kind in your domain model diagram.
1. TURN THE CONCEPTUAL MODEL OF THE DOMAIN INTO A STRUCT-BASED DATA MODEL
Organize data (variable) definitions in the program you are writing into "struct" definitions, where each kind of struct has a set of attributes that together represent the essential properties of some kind of entity in your problem domain.
(And, for advanced credit, create an additional named struct-type to represent the properties of some kind of abstract record-keeping entity-type you are concocting as part of your "solution" domain. A "solution" domain model is an extension of your model of the problem domain, where you are adding abstractions (new variables) into your problem domain to create a computer model of the solution to whatever problem you've been asked to program a solution for in the problem domain. Some of those solution-domain entity types may not have occurred to you when you first looked around at the external "outside of the program" problem-domain to create your struct-definition-based data model of the problem domain entity types.)
2. NAME YOUR DATA TYPES AFTER THE PRECISE NAMES OF DOMAIN ENTITY TYPES
Use the common (but precise) name of each kind of domain entity as the type-name of the corresponding struct definition.
3. METHODS - are functions/procedures specifically applicable to the attributes of a single struct type.
For each type of struct you have defined, define the interface signature of, and code for the implemention of, a set of functions which access the attributes of, set the attribute values of, or compute some function of the attributes of a single type of struct.
4. INHERITANCE
Object-oriented languages let you create a struct-type which is meant to represent a specific subtype of domain entity, whenever you have already created a struct-type (and its functions) to represent the common attributes shared by several subtypes of entity. That is, you have already created an abstract supertype struct definition to represent general properties of a general category of domain entity, now you want to add attributes (or specific values of attributes) that describe how different subtypes of the general entity differ from each other.
In an object oriented programming language, the subtype of struct can be created so that its definition references (mentions) the supertype struct type by name.
Then any in-memory instance of that subtype struct inherits all the attributes and applicable functions of the supertype struct definition. Then you add more, specific attributes, attribute value settings, and function interfaces or function implementations to the new subtype of struct you are creating.
5. PROGRAM WITH YOUR DOMAIN-ENTITY-MODELLING STRUCTS AND THEIR STRUCT-TYPE-SPECIFIC FUNCTION-SETS
To represent
Where are we going and why are we in a handbasket?
The distinction of "UK based perl" seems odd - what's different about UK perl than the perl used in the rest of the world? Other than apparently not using OO features, which is probably a big plus.
I’ll just leave this here
http://www.amazon.com/gp/jobs/...
Or
http://www.amazon.com/gp/jobs/...
Every normal man must be tempted, at times, to spit on his hands, hoist the black flag, and begin slitting throats. -HLM
It depends in part on what you want to do but since you have some front end work with jquery and javascript I would base further learning and your job search off of that. I would recommend taking online course, especially ones with certificate in HTML5, CSS3, javascript/jquery and learning something like angularjs. There are a lot of free courses/books in the space.
Given that learning work for a couple of months I think it would be reasonably straightforward to get a contract job on front end dev. If it isn't then build some credibility by contributing to an open source project on front-end stuff.
Don't worry on the age thing. I am 60 and picked up web front end on a contract when the real front end resource got swamped. Since then I have worked with the tech enough to add it creditably to my back end chops. So it can definitely be done.
As far as Perl goes and if you want to do something other than front end web stuff I would strongly recommend mastering python. It is in no small part why Perl gigs are much scarcer.
Also on the javascritpt side learn a bit of node.js as node is pretty strongly backed into modern web front end development.
Ask Slashdot: how come we get an "aging developer" topic at least once a month?
no, I don't have a sig
Devops is the be all end all for coders like you (and me). You can't do it with less than a decade of experience.
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.
We'll hire you! :)
I am 50 and found myself fired in '07. I recently finished a degree and an MBA. I decided to enrole in CS and what I have found is this: you need .Net, C# , Java and Oracle. I say this because my classes are C++, Assembler and such. The majority of jobs specify totally different requirements!
I'm an 'aging' Perl developer but my situation is very different. I've been working mostly on newer applications (nothing more than a few years old) mostly at mid to mid/late stage startups and I don't think I am running out of Perl jobs (although it is ALWAYS wise to have more than one pan cooking so I've also tried to grab whatever Javascript I can since I enjoy that language tremendously).
Things I've done which I think helped me and might help you:
-- Volunteer on as many open source projects as you can. I've gotten a lot from open source and I wanted to give back and it turned out giving back (coding, blogging, and general advocacy) helped me even more. I think its helped me to keep my coding skills fresh (problem with a job is that the work can get you behind the technology curve if the company is a bit conservative and just likes to keep things working as they are). Also my work in that area has helped my personal branding since people in Perl tend to know me as the guy that works on such and such project.
-- Try not to take jobs with really old codebases that are limping along. The more time you spend hacking CGI like its 1999 you are not learning new stuff that is going to get you a job tomorrow.
-- Don't take crap from the just out of college programmers ;) Try to use your long term knowledge to your advantage, you know stuff that younger people can't possibly have run into yet (even though 80% of what I learned in IT over the years is now out of date that still 20% more than someone with less than a year experience ;)
Best of Luck.
Peace, or Not?
Demand is growing. Developers are in short supply. Pay is solid based on supply and demand. Because it's newer, nobody actually has X years experience in it as a requirement either.
It's fast, powerful, easy to learn and most definitely not going away anytime soon.
Oh, poster has no problem. Just move to the US. They're throwing out all the illegal immigrants while encouraging our tech businesses to fill the tech jobs in India or somewhere like that at a rate of a small bowl of curry per workday. So getting a job mowing my lawn or picking vegetables, no problem at all. Well. unless you've been in jail. Or in trouble. Or even arrested for the wrong reasons. Because bitch, we do not believe in rehabilitation.
Looking at the same lines of work myself. For pretty much the same reasons.
1 Older? Yes. (42, shit man, you're almost dead. Me, I've been dead for decades, apparently.)
2 Skilled? Makes no difference.
3 Self taught? See #2 and #1
But hey. Lawns need mowing too. And those beets aren't going to pick themselves, fuckers.
Although they can't (yet) keep you from the independent entrepreneurial path. Not that they aren't trying to work out how.
What kind of learning curve could I expect if I took on a new language I have no experience with?
If you're over 40 and you don't know how to answer that question based on past experience, I think you're in trouble. Picking up new languages, frameworks, APIs, and what have you are just par for the course. Those things have been a constant in every development job I've had. If a language is related to something that I already know, then within a few weeks, I may be writing some Perl-ish looking Python and becoming more comfortable using constructs that don't appear in Perl very quickly.
It is pitch black. You are likely to be eaten by a grue.
I bow to your oh so low Slashdot identity. Lowest I have seen in a long time.
Is that a roll of dimes in your pocket or are you happy to see me?
If you want to stick with perl, I would suggest to read chromatic's Modern Perl book.
http://onyxneon.com/books/mode...
Forget being a regular Dev. go SysAdmin/DevOps. Get a RCT or RCE from Redhat and become a Linux Admin. Plenty of demand, knowing perl is a plus, you already have CentOs experience and age is not as big an issue as with Development.
I have one question. If the Japanese Ministry of Agriculture is not in charge of Gundam, then who is?
Is parrot out yet?
In any case, having taken a look at node and its surrounding structure plus that wonderful innovation of webrtc i.e. meteor, there should not be any problems with going in that direction. In fact, as maybe a nice addendum to your skills, perhaps doing a node like perl based solution would be great idea for some fun. To wit, what you would need to know to make a transition to the node based world a la metoer:
1. anonymous closures => call back functions based on function pointer passing
2. asynchronous methods => microservices that do not have a guaranteed return end point, but you can constantly poll
3. db on the client side => A way of mirroring a segment of the database on the client side. In a way this is amazing, because all the client can change is what the client needs to know.
4. a model view controller architecture that is duplicated on the client end => write once, run on both ends. Right, so perl cannot do this, since it cannot run in the browser, unless there is a roundtripping perl -> javascript translator somewhere.
5. A DOM view + poll mechanism + webrtc to the local db and the backend => This is the mechanism by which all reactive templating technologies work. They hook into the DOM and are able to make changes to the view to produce a rich internet application.
The browser addons have been a great tool for poking into the internals of most applications. Web 2.0 is truly gone now. Once flash is totally dead, that will be the new era of the web, at least from the UI perspective.
If you're an aging Perl developer, your best choice would be seppuku.
If you need to write a series of different CSV formats with specific field names and some hardcoded values, consider using reflection to write a custom writer class that you can pass in a format map class and the data class into. The data class should have all data you want to expose stored in public properties if you are using .NET. If you are writing to XML, just create a class with a property hierarchy to match your data structure including the hierarchy and use the builtin XMLserializer. Be careful if you plan on outputting to a string first as strings are Unicode (UTF-16) whereas XML is usually UTF-8. You might have to extend the Stringwriter class with an Encoding parameter.
I hope someone finds these tips useful.
Jesus was a compassionate social conservative who called individuals to sin no more.
As a long-time Perl fan, I found Ruby to be an absolute delight. It's as expressive as Perl in some ways and more expressive in others.
I started my career as a Perl hacker, and then moved on to PHP (bleah), before making the transition to Ruby on Rails.
I got my first Ruby job without actually having any Ruby work on my resume. I had the general experience, the business experience, the right attitude, and a desire to learn.
I think most enlightened employers will be more interested in the right fit for the company (personality, general ability) than in finding someone with a precise set of skills on their resume.
Why the heck did you wait this long? I'm 40 as well and frankly I never considered even once letting my skills go out of date. You don't wait for the last two months to plan for what's next. You watch hundreds of hours of videos and learn all the time. There are 16 hours in a waking day. There are at least 4 you could have spent learning something new. In 2015 if you aren't practically an object oriented expert, you shouldn't be in the business. You've had 25 years to learn those skills.
I would honestly consider claiming unemployment and going back to the university for a semester of object oriented programming, design patterns, and data structures.
Oh, by the way, 40 isn't aging. I'm 40 and just got started.
I don't know why anyone still develops in Aging Perl.
I'm 64, a Perl guy and in London. I still get a fair amount of contract work, some of which I turn down. Recently that's included a couple of start-ups. Are you London area? I suspect this may also be a geographical and networking problem. I'm ex-investment bank and people know me.
Meanwhile some of the other advice is great, learn Python [I did], learn Java [I do some, hate it, it reminds me of COBOL], improve Javascript, especially the 'new' frameworks. But, I like to program and I like freelance, if you're programming 'for cash', then the advice about graduating to management is good. At this age, I can look at things and go NOOOOO, often saving others a lot of time, money and heartache, but I don't like meetings/suits etc. etc.
So if you're old, I'm moribund [although 2 hour half marathon suggests otherwise, keep healthy too!], don't despair, very best of of luck from me.
On y va, qui mal y pense!
Read a book on design patterns, preferably the jss one. Then l
I have had the same problem in my career. Personally I don't think it is about learning languages, it is more about learning technologies.
For example, lets say you are aiming for a job as a frontend web developer, then it is more important to understand stuff like the Model View Controller pattern (MVC), HTTP and the tech used to build a modern web app.
Sure, they are probably looking for a developer that knows a certain framework, for example angular and it is a merit to know that, but as the OP said, if you understand the tech, then it is fairly simple to pick up a new language.
I also tend to be brutally honest with what I'm good at and my shortcomings and that has worked for me this far. I make it a point that I pick up new stuff really quickly.
If you don't mind moving to Amsterdam...
They use perl extensively, and have been looking around for new and old talent.
They even offer a relocation package.
rent out umbrellas. Fuck cube life.
I recommend learning Hadoop, learn how to make the filters/plugins work. Learn the setup and feeding of it, its taking off quite fast in the larger enterprises, we are finding it powering all types of analytical stuff and it pays well.
Perl isn't growing, its really useful but its not adding jobs. If your looking for adding jobs, puppet and chef shops are always hiring folks for deployment script programmers.
McDonald's is always hiring. They need managers.
Stop referring to yourself (and, by extension, other people your age) as "aging". That's an attitude, nothing more, and it will kill opportunities you might otherwise take.
I'm older than you and just spent two weeks of caffeinated all night coding sessions writing a sizeable website in a framework I'd never used and a language I was only barely familiar with before. I learned a ton and had a lot of fun. I can only rate my current skills, abilities and attitude as better than they were 5, 10, and 20 years ago. There's no reason you should be different.
I've been doing Drupal for years. After working with SilverStripe on my latest project, I ... don't want to work with Drupal anymore.
SilverStripe is a real OOP/MVC framework, where your solution is defined in (easily deployable) code. And they make writing that code as easy as possible. The CMS layer is also completely separate (and optional) to the underlying framework layer.
Drupal is a frankenstein framework, with your solution defined in heavily abstracted database entities, which are a PITA to deploy. Features, Config Management (incl the D8 initiative), etc, I now view as giant workarounds to the real problem, which is: that stuff shouldn't live in the DB in the first place.
Drupal certainly has its pros... it's insanely flexible and modular, has proven scalability, 10s of thousands of free modules for anything you can think of, millions of sites out there (huge community, easy to find answers about anything). But dear god am I sick of wrestling with configuration GUIs and worrying about how to get the results of that up to production.
"Mind, as manifested by the capacity to make choices, is to some extent present in every electron." -Freeman Dyson
Learn Ruby. It's what Perl 6 should have been — the good stuff from Perl, but cleaned up.
Then you can either go the devops/sysadmin route — both Puppet and Chef are written in Ruby — or you can go the Rails or Sinatra route and head towards web services development.
GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
It's too bad that when you have 10+ years of experience and your cover letter mentions that they are already using patches you've sent them over the years, they completely ignore you.
One issue I fixed for them was particularly "entertaining". I sent them a note mentioning a problem. They replied saying basically "yes, we are aware of that problem, but we're not sure how to fix it, so it may take quite a while". A few minutes I replied back with a fixed version of their file, which I was using for our customers. Soon after they released an update with my fix.
So it took me a few minutes to solve a CPanel bug that they couldn't figure out. Then I send them a resume and crickets.
I've used perl for things it probably shouldn't be used for but it was expedient and fast for the situation. One very large Web CMS system for a Fortune 50 company, for instance. They (wisely) converted in to Java (well better than keeping it in Perl - which even I will agree with). So if you've learned ANY other mainstream OO language, there is a market for fixing legacy language stuff and converting it into something more supportable.
You have tons of experience. What you seem to lack is the confidence to match it. I have a similar background to yours and also am self-taught. Your lack of a degree, or being able to speak eloquently about software- these don't affect the quality of your code or diminish your hard-earned wisdom & knowledge.
I started my own (software) business after 15 years of working in IT and couldn't be happier. There are three very simple things you should do:
1) Stop focusing on your lack of a degree or fancy words. Neither of those things = good software.
2) Don't be afraid when you don't know something, just ask your peer(s) or research for yourself. No one knows it all.
3) Start recognizing your strengths and vast knowledge acquired over the years and realize that has tremendous value.
We use perl at my (US-based) work for many mission-critical systems. Contact me with your email address and I'll point you in the right direction (as we are always looking for Perl people)
Pull yourself together man! Even 50 is no longer old in almost any sphere. If you love coding, keep doing it - don't just move into management because you're having some kind of existential crisis.
Programming languages haven't (and don't) change much. They are all still loops and conditionals et al with different syntax. Sure, some academics have creating towering ideological structures of how they think the world ought to work from their ivory towers (I'm looking at you, java, AngularJS etc) but when it boils down to it, most of us are still coding the hell out of a text editors and terminal emulators using command line unix tools written before you were born (albeit on slightly larger screens)
Programming is enormous fun. If you must figure out how to create MVC structures with NoSQL databases and convoluted OO callback stacks then fine; you'll also need to then learn how to circumvent most of those products of utopian academia to get that real world thing you're doing to work, and soon be back at writing stuff in C and Perl (albeit feeling more comfortable that you at least understand and no longer feel intimidated / outdated by the hipster coders...)
The major Perl conference is coming up. If you want to network with people and companies that are still active with Perl, that would be a great place for you to be.
http://www.yapcna.org/yn2015/
lf(1): it's like ls(1) but sorts filenames by extension, tersely
Learn Java and also Scala for maximum flexibity for web coding, business application development and also for Big Data. Hive-QL is also hot in BD. Learn from every experience (positive or negative) and write down what you learned in a positive way to help keep your perspective until you have confidence in your skills. Good luck! It CAN be done!
http://jobs.cpanel.com/
Not trivial to master, but that's what it takes to be highly relevant today. If that's too much, it's possible to specialize in a more narrow area such as big data implementation and make good money without writing lots of code. But most new development is mobile + web.
--Say what now?
.
== WolfriderV6 == I'm willing to admit that *I just might* be wrong... Are you??
Save enough money, invest, and then do things that interest you without worrying about paychecks.
Having a laugh
The city is so desperate for good people that I f you can't find a role as a contractor you're probably dead already
Stop t ferrying to yourself in such a narrow manor. TBH contractors are not meant to be a narrow skill set. Say what you CAN do, not your life goal. That's the secret to obtaining a new role. Nobody gives a toss what u want to do. Only what you can do or are willing to do