Some unsolicited Old Man Advice
After 20 years in the industry I’ve picked up a few things. Here are some of the more relevant.
I posted this some time ago on a comment in response to a Reddit thread asking for advice from people with 10+ years of experience in development. As someone with about 20, I thought I could offer some sage wisdom in addition to my normal dick jokes. I ran across it recently while looking for something else, and thought maybe it would benefit a wider audience.
Old Man Advice
Most problems in your career will be self-inflicted. The more experienced and valuable you are the less bullshit you need to put up with.
Get paid for the work you do — paid in money. Not “experience” or “exposure”.
Don’t tolerate long periods of unpaid overtime. I’m the first to put in the extra hours when crunch time happens or something goes wrong, but if you are getting slammed routinely, the company is under-staffed or broken.
I have never in my life been able to fix a dysfunction in an organisation. No testing? Poor practises? Obsessive documentation? Godawful custom code? It’s there to stay. Unless you’ve been specifically tasked to fix it and it’s been acknowledged, it’s a feature.
Yes, yes. “PHP is dying and is no longer worth learning.” I’ve been hearing it for 15 years, assholes. Give it a rest. By all means learn something else, there are tons of good options now. But my PHP skills have always been exceptionally valuable to the market.
Always learn. Always. If you’re not learning things you’re going backwards.
Be honest in your assessment of things. Just because you like something doesn’t mean it sprays golden coins out of its ass. The easiest technology might be the slowest. The fastest technology might have the worst documentation. Old technology is of more value to business even though it’s less shiny. Making critical and unvarnished assessments of all aspects of something you’re evaluating is key.
Don’t undervalue ecosystem in technology choices. That package with 122 qualified local developers, 10,000 stack overflow questions and a million plugins beats this fancy new fast one thing every time.
Performance matters much less than you think. Unless it’s actively a factor, don’t assume it’s a factor. 99% of performance optimisations are premature.
The fact that you already know something is a key factor to whether it’s the best choice. But it shouldn’t be the only factor. Your service might be plenty fast to just do it in good-old-Ruby. But if something comes along that really should be an Elixir app… maybe it’s time to learn.
Maintainability and clarity of code matters more than just about anything else.
Don’t be deliberately resistant to new ideas. If your instinctive reaction is “nope”, analyse it and try and see objectively what the benefits are and if they outweigh the downsides. Honestly they often don’t.
This especially counts for industry-wide differences. If you’re doing X while the entire rest of the industry does Y, reassess. It’s probably not everyone else who’s wrong.
While I’m old-man-ranting, stop acting like frameworks are “flavour of the month/week”. Laravel 4 came out in 2013. Ruby’s been out since around 2005, and the same for Symfony. Ember is from 2011, and React from 2013. These are stable, mature technologies. Every person who mentions “whatever framework flavour of the month” with snarky guffaws just makes me assume they’re a fuckwit. Feel free to snarkily deride “the framework of the half-decade” if you like. BOOM, take that Angular!
You have to keep learning. If you’re not learning on the job you have to learn twice as hard at home instead of playing Overwatch or whatever you whipper-snappers are into these days. So make sure you’re learning on the job. It doesn’t matter what. Angular, PHP, agile, AWS, unit testing, .Net, git. Learning is good.
One final one — your job isn’t your career. Value your career over a job. If you hate your job, that doesn’t mean you hate your career. If you stop learning on the job you stop your career. Your job can harm or help your career, and if a job is harming your career… find a new one. I know that’s easier said than done sometimes, but anyone who is miserable and flailing while not looking for another job gets zero sympathy from me.