

Ask Slashdot: Career Advice For an Aging Perl Developer? 271
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!
Things to Learn (Score:5, Funny)
- Hindi
- Mandarin
Re:Things to Learn (Score:4, Funny)
You got it all wrong:
- Mandarin
- Hindi
Re:Things to Learn (Score:5, Insightful)
Mandarin's for hardware people. Hindi's for software people.
Re: (Score:2)
Re:Things to Learn (Score:4, Funny)
Re: (Score:2)
Quite the Opposite (Score:5, Insightful)
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.
Comment removed (Score:5, Interesting)
Re: (Score:3)
Who says he has knowledge of business? Just because he's 40-something? And a PMI certification? For the love of God. Here comes another useless PM.
Re: (Score:2)
Also helpful: "Would the interviewer want to grab a beer with me some time?" Assuming you're interviewing with someone who you would work with directly that is; it's well known that HR goons are barely sentient creatures, and as such are not capable of understanding personality.
Re:Quite the Opposite (Score:5, Insightful)
I'm lucky enough to have a diverse enough job now I can pick and choose the things I want to do - indeed I get to delegate managers (I delegate managers to manage me!) and I never delegate decent techs to manage! - they are two very different jobs and mind sets. The payscale, the HR ladder and you, are simply wrong. It's a different job mate. "know your strengths" - if you like doing something you will be good at it, if you are good at5 something you will likely enjoy it.
If now, at the the age of 49, I was told I couldn't do the things I enjoy doing (for paid work money) I would... I would probably just die, to be frank.
Re:Quite the Opposite (Score:4)
ftfy
Random string of lower case letters...Random string of lower case letters...Random string of lower case letters...Random string of lower case letters...Random string of lower case letters...Random string of lower case letters...Random string of lower case letters...Random string of lower case letters...Random string of lower case letters...Random string of lower case letters...Random string of lower case letters...Random string of lower case letters...Random string of lower case letters...Random string of lower case let
Re: (Score:2)
Hell, even if you *want* to manage, you should keep your skills up, or you'll end up as some shit line manager. You just need to understand how those skills are used in technical management, and they keep on helping you as a manager.
Re: (Score:2)
Agreed. Although I am a manager, I don't feel I need to be one. I could just as easily be a system administrator or coder, and I get pinged constantly for that sort of thing. And many people my age don't want to have anything to do with management, which I can completely understand.
Being a manager is not what happens to older technical people. Although I certainly appreciate fresh perspective, the older folks on my team get the jobs completed and are entirely reliable, which is golden when you have to b
Re: (Score:2)
Please do not move to management simply because you're "of a certain age" and haven't kept up with technology. The last thing IT folks need is a manager who became a manager for the wrong reasons. "I can't find any other job" is a wrong reason.
I am a 44-year-old Perl developer (turned manager). But I haven't worked at a Perl shop in about 4 years. At my last full-time Perl job, I became a manager (because the team needed a new manager, and I felt I was ready to do it), and then from there I moved to a
Re:Quite the Opposite (Score:5, Insightful)
Here the guy listens, learns from those under him but has the previous technical insight and the business experience to be able to respect the iron triangle and the business while being able to manage money and his department. But hey don't listen to me on these definitions, this is just my experience. (I'm sure I'll get a bit of flame for even suggesting this)
Though I guess if you haven't ever had a manager role I'd say go PM. But as real advice I'd say read up on modern JS techniques and go in as a front end developer at say a php shop or any shop that separates their front end guys from their back end guys. JS esp. things like node are making a rather big break through imho.
Re:Quite the Opposite (Score:5, Funny)
I agree with your notes on team lead, architects and IT managers. But I don't think you really get what Prime Ministers do, or how easy it is for the OP to become one.
Re:Quite the Opposite (Score:4, Insightful)
" It's like having someone in charge of you that doesn't even know how to do your job (on a conceptual level or otherwise). Why are they my manager or supervisor? What qualifies them to tell me what to do?"
What are you? Twelve?
Re:Quite the Opposite (Score:5, Informative)
What a jumbled mush of disgruntled ramblings. I can understand why you are so disgruntled because you are probably upset that none of your coworkers or likely even friends and family listen to your incoherent arguments.
Making business more reliable and reducing risks is not communism. It isn't even capitalism, it is just good business.
Part of managing a company is ensuring you do not take unnecessary risks. One very unnecessary risk is relying too much on individual employees. Any employee can be hit by a bus tomorrow, and a well run company can weather the loss of any one employee no matter how skilled. One part of proper knowledge management is codifying and disseminating the intrinsic knowledge of key employees so the company is not too reliant on them.
Re: (Score:2)
Well tell that to upper management where they all think they are unique snowflakes.
Re: (Score:2)
BTW: management IS a trade. You can get degrees in it and everything!
Re: Quite the Opposite (Score:3)
Re:Quite the Opposite (Score:5, Insightful)
"Personally, I hate it when I have managers that don't understand what I'm doing. It's like having someone in charge of you that doesn't even know how to do your job"
I need to disagree with you,
1. You have your job because the company you work for felt you were the best person to do it.
2. Your manager has their job because the company you work for felt they were the best person to do it.
3. Your manager is not there to do or understand your job.
4. Your manager is there to ensure you do your job, to support you, to coordinate with the rest of the business that your job interacts with, leadership, users, finance etc.
5. Your manager should be looking to you as the expert in your position. If they are not then you are not doing your job.
I could go on an on about the differences between an Engineer, a Tech, a Manager, and a Team lead.
It sounds like what you are looking for in a manager is really a team lead position.
Re: (Score:3)
Re: (Score:3)
It's like having someone in charge of you that doesn't even know how to do your job (on a conceptual level or otherwise). Why are they my manager or supervisor?
Because they have other skill-sets or experience you lack, at least if they were properly promoted.
A boss who doesn't know how to do your job but who trusts you when you say what you can or can't do or has an understanding of what you can or can't do can still be your boss in a useful way. If you're running a sports stadium, you don't have to know how to drive the Zamboni or run the concession stand, you have to know how to interface with the people responsible for them, as well as with the owners, etc...
Re: Quite the Opposite (Score:3)
At the companies I've worked with... (Score:4, Insightful)
...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.
Re: (Score:2)
Yeah Python is the new Perl... younger folks tend to snear at Perl. However being a long time Perl programmer I have learned Python just to see what all the buzz is about. I would recommend the subject of the OP to learn Python but they do occupy the same solution space and most anything can be done in either language with the same ease and elegance. However with that said Mod_Perl Apache modules rocks for customizing Apache.
Re: (Score:3)
I still use Perl when I have something that's heavily regex-based.
Python's better for when you need something that's readable afterwards and/or leverages a lot of pre-written code.
Python's equivalent of CPAN provides code that's a lot less fragile than what comes out of CPAN. Probably because it's not having to run a lot of stuff through a C compiler.
Re: (Score:2, Insightful)
I don't know about the UK, but in the States you have to have on the job experience for any particular skill for it to count. Taking classes or learning on your own doesn't count. I learned that the hard way. I posted code on GitHub with a reference on my resume and LinkedIN page and zero hits. People just didn't care enough to even look at it.
And what also stinks is that you are your last job - all your previous experience doesn't seem to matter anymore. I was a senior developer for over 10 years and my
Re: At the companies I've worked with... (Score:2)
Re: (Score:3)
Actually, I have interviewed people with ten years of experience who are shit. It's nice to have, but usually the only thing it guarantees is that they want more money. Sometimes, that experience is worth the money. Sometimes, it isn't.
I recently interviewed a bunch of former government drones with years of experience. Except not so much. They were constrained by the roles that the government put them in, and they were spoiled by the rate that the government paid them to do as little as they did. They
Re: At the companies I've worked with... (Score:2)
swift (Score:2)
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-
Two general directions... (Score:4, Insightful)
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.
Re: (Score:2)
He should make sure he considers learning Python or Ruby (if he's going to a chef shop). They're not that hard to figure out if he already mastered Perl, but he will have to learn more OO if he wants to work with those effectively.
If anything, it's probably a good thing he didn't try learning OO with perl. Perl OO is a terrible hack.
Re: (Score:2)
How about IoT development? Lots of devices can run Perl and Python, and it seems like the industry badly needs some experience on the security front.
Re: (Score:2)
yeah it just means you are old
Re: Two general directions... (Score:2)
Database skills (Score:5, Insightful)
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.
Flip to a modern stack (Score:2)
Learn Python, Flask, ReactJS, Bootstrap.
Once you learn these, you'll never go back to the "old way" of doing things again.
Re:Flip to a modern stack (Score:4, Insightful)
Learn Perl, Mojolicious, ReactJS, Bootstrap.
Once you learn these, you'll never go back to the "old way" of doing things again.
Re: (Score:3)
Learn Perl, Mojolicious, ReactJS, Bootstrap.
Once you learn these, you'll never go back to the "old way" of doing things again.
Also, Mojolicious.
Oh - and Mojolicious.
Okay, seriously: Mojolicious is an excellent and fast way to jump from legacy Perl to modern, rapid turn-around, DevOpsy kinds of web work. I've written a fairly non-trivial web service in it, and it's everything a (Perl) guy could want. The documentation is a little opaque; the authors assumes too much knowledge about the approaches he's taking, but once you learn his... uh.. dialect, I guess.... Once you get the way he expresses stuff, it's pretty easy to do non-triv
Re: (Score:2)
We've got a core Mojolicious dev in the Chicago Perl Mongers [pm.org], which makes it a lot easier for me trying to grok their docs. The IRC channel (irc.perl.org #mojo) helps a lot as a human-companion to the Guides.
Moose, Moo, Mo (Score:3, Interesting)
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.
Re:Moose, Moo, Mo (Score:5, Funny)
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.
Then learn to affect a cheesy eastern European accent and tell the interviewer you are after Moose and Perl.
Re: (Score:2)
I LOLed.
I do have mod points, but I already commented in this thread. Alas.
Re: Moose, Moo, Mo (Score:2)
Re: (Score:2)
Re: (Score:2)
Sticking w/ Programming? (Score:2, Insightful)
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.
First of all (Score:5, Insightful)
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.
Re:First of all (Score:5, Insightful)
Bingo. The real key is to go deep on something and specialize. As a web application developer approaching 50 who did a lot of database work, I realized I had put serious time into learning the ins and outs of the relational model, SQL, business rules thinking, etc... and I had also put lots of time into understanding Linux. Turns out database and Linux skills are in high demand. So I've dropped most of the web app programming (Honestly, in that domain you are competing with a worldwide talent pool, most of whom are willing to work cheaper than you) and really strengthened my enterprise database skills. I now do PostgreSQL consulting almost full-time, and really it is a pleasure to do more serious knowledge work instead of constantly scrambling for scut-level web application work.
Also as you age, put more time into the things that change least. SQL isn't going away anytime soon. Ditto for Linux. Web app frameworks change every freaking *year*. Leave that stuff to the young guys.
Re: (Score:2)
Re: (Score:2)
Of course you have to have built on things throughout your career TANSTAAFL and all that. Point being, think strategically. Play to your strengths and to the true underlying needs you can meet, rather than chasing after the hot new technology trend that can have you chasing your tail.
But age is not the whole story. I didn't become any kind of developer until around 33, and certainly had no serious understanding of databases until my late 30s. And yet, here I am, a very much in-demand expert.
Re: (Score:2)
Where are you?
Currently in the UK it isn't easy for developers. There is a lot of downward pressure on wages, and insane house prices make relocating difficult. The possible exit from the EU has thrown things up in the air too, with my own company already seeing European customers hold off until they know what is happening.
Wages have only just reached 2008 levels again, but growth is very slow. For older developers it's hard to convince employers to meet your needs.
PHP and Frameworks (Score:2)
Re: (Score:2)
Asking a Perl 5 developer to use a broken language such PHP?
Just one reason to make a Perl developer insane: Perl 5 has clean variable scoping rules. PHP doesn't.
You can be anything (Score:3, Insightful)
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.
Sysadmin FTW (Score:4, Insightful)
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.
Re: (Score:3)
I came here to say a lot of this. Especially since, as I have gotten into the devops world myself, and there is a bit of an equalizer in that a lot of the big buzzwords are things that most people have kind of similar and easily obtainable levels of experience with.
Chef hasn't been around so long that there are many people with more than a couple of years epxerience....but its also all done in ruby, which is decently easy to pick up at a basic level, especially if you know perl. You could easily get yoursel
Look to larger, established companies for testing (Score:4, Insightful)
Re: (Score:2)
> 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 t
Re: (Score:2)
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.
Re: (Score:2)
Skill up (Score:3)
Re: (Score:2)
Re: (Score:2)
After you do that, figure out which similar technologies you like, and learn those.
Re: (Score:2)
Because the latest framework fad is surely a long-term winner.
No fad is a long term winner. They are all short term winners. It's time for them to pick a new horse, if the old one is dead.
Re: (Score:2)
Perl knowledge as an asset (Score:3)
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.
Follow your own passion first. (Score:3, Interesting)
Capitalize on JS (Score:2)
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:
Re: (Score:2)
I agree, but just adding to the above:
Backbone is falling out of fashion, new stuff is not being built in it, but there are a lot of stuff that is not going to get ported to other frameworks anytime soon. Angular is currently hot but with angular2 getting popular it might not be such a good idea (while learning angular2 will not give get you any jobs, at least not yet). ReactJS and Ember are currently the best bets in my opinion.
Look you can learn the responsive part of bootstrap in one day, it is just some
Re: Capitalize on JS (Score:2)
Some good advice indeed. Also, jQuery has been on a decline for a while too, and MVC has peaked recently, thank God.
The world is your oyster (Score:2)
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
Python (Score:2)
You'll never look back on Perl.
Re: (Score:2)
There are still a lot of Perl shops (Score:3)
See http://jobs.perl.org/ [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 [dcbpw.org], which I help to organize)
I hate to tell you this (Score:2)
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.
What advice is even necessary? (Score:2)
Re: What advice is even necessary? (Score:2)
I avoid it myself but perl is a popular language. On more than one occasion I got commercial Lisp jobs just when I wanted to, and that was before Clojure existed.
Object-orientedness micro-lesson (Score:3)
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
I hear Ireland is nice this time of year... (Score:2)
I’ll just leave this here
http://www.amazon.com/gp/jobs/... [amazon.com]
Or
http://www.amazon.com/gp/jobs/... [amazon.com]
WTF (Score:2)
Ask Slashdot: how come we get an "aging developer" topic at least once a month?
Re: WTF (Score:5, Funny)
Change your title to Devops. (Score:2)
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.
Stop looking for approval (Score:5, Insightful)
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.
Re: Stop looking for approval (Score:2)
Re: (Score:2)
I don't see what that changes, nor how you could possibly know. Seems like an awfully big presumption for a t.
Move to the US! (Score:2)
We'll hire you! :)
It's all in how you play it out (Score:2)
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.
Uh oh (Score:3)
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.
No advice... But... (Score:2)
I would honestly con
Perl not dead! (Score:3)
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.
Re: (Score:2)
Recruiters look at what you done in the last three positions and/or three years on your resume, and assume that you want to continue doing the same thing as before. So when I was out of work for two years (2009-2010), recruiters assumed that I wanted to continue being out of work. O_o
Smart recruiters will understand that you can parlay past experience into a new job. Dumb recruiters will go by the check list (i.e., five years of experience in a technology that came out six months ago).
Re: (Score:2)
Perl has 'use strict' and 'perl -c' that allow you to verifiy that all the variables used in your program are correctly declared (no typo). 'perl -c' allows to check at compile time and to avoid to discover issues at runtime.
Tell me how to do that with Python and I will consider it once again...
Re: (Score:2)
For example, pylint will tell you when you've attempted to access a variable that never has had anything assigned to it.
Re: 40 is not old (Score:2)
Fair enough, though I prefer work environments where I can respect others' skills, because it challenges, educates and inspires me. Maybe you outgrew your team.
Re: (Score:2)
> if it ever materializes in an implementation that's loaded by default on ever major linux distro
And you want a pony too?
Don't expect Perl 6 to be installed by default on a major Linux distro until a major application requires it. Programming languages runtimes are dragged in distros by their usage, not just because they are cool.
So, what are you waiting for building that killer app?