On the other hand, if you want to hear how to make it past 40 in software, this is probably an excellent place to ask!
On the other hand, if you want to hear how to make it past 40 in software, this is probably an excellent place to ask!
1) Don’t include irrelevant experience on your resume. Nobody cares that you were writing php websites in 1997. Try not to put anything on linked in or you’re resume that would indicate your age unless you’re one of the top people in your field and your experience makes you stand out.
2) Keep up with new languages. Don’t be the guy that only knows perl when everyone else is using python. If you aren’t learning rust and go today, you’re going to be left behind five years from now. And once everyone is on go and rust, you should be learning the next thing.
3) Stay curious. I know you have a family and kids and other commitments, but you have to stay interested in the world. Keep up with business news, and science news and stay connected with pop culture as much as possible. If you’re applying for a startup with a bunch of 20 or 30 something’s you, you need to be able to meet them where they are.
4) Don’t get complacent. You’re always a bad quarter away from getting laid off, and that becomes more true the older and more higher paid you are. Keep your resume updated. If recruiters aren’t beating down your door, you need to ask yourself why. Because if people aren’t trying to hire you, your employer probably isn’t excited to keep paying you either. I was a junior guy on a team with all sysadmins 5 years ago. They were all the same age as me, but with many more years experience all at the same company, doing the same thing and really resistant to changing. I came in and really dove into the deep end with devops, despite having little programming or sysadmin experience (I had a networking background). Within 5 years I was a senior developer, making more money than any of the rest of the people on the team, and eventually got poached by a recruiter offering 40% more money. They’re all still there barely holding on to their jobs.
Rule of thumb, your business should be viable at 50% billed time...
Every year I take an unpaid break for over a month around the holiday season. I love it but it always is a bit scary to be away from customers at the same time.
Reasonably well. I made more money with my last job as employee, which was paid above the average of the market. However I own my timetable now and I work mostly from home. That is worth some money too and it improves the quality of life, which is hard to quantify but it's very important. I'll never be an employee again unless I absolutely have no alternatives.
It's definitely the kind of company you want to work at if you're middle-aged.
List this firm please, it might help someone.
But I don't think that's exclusively a software engineering issue. If I tried to become an electrician at 40, my guess is I'd encounter some bias, though probably less than in software.
One other thing: by "BigCorps", I'm referring to things like banks, Wal-Mart and so forth, not technology companies like eg Google.
Yeah, I'd much rather work at a traditional conservative BigCorp than a Silicon Valley company that never grew up from startup mentality.
If you do want to stay I tech, I'd recommend looking at the B2B telecom sector. It's far, far more conservative then any other part of the tech industry. They're the only tech companies that I've seen ban T-shirts in the office.
They don't immediately adopt new technologies, but frankly, nowadays I see that as more as a feature than a bug (although once in a blue moon I wish the delay in finally adopting them, when they have been successfully proven themselves, wasn't so long).
The most glaringly conservative aspect of my current job is its very rigid adherence to process. Again I must say that, having worked in places where it wasn't the case, I'm so glad that process is followed strictly.
The big problem with this job is that I've acquired a ton of domain knowledge that probably won't be useful in another job. This means that I need to keep other tech skills (algorithms, programming languages...) much more finely honed. On the other hand, I've acquired top notch documentation skills.
EDIT: I also can confirm that there is plenty of >40yo people here. Definitely a good place to be when you reach that age, although I'm only in my eearly thirties. I've found also a high level of diversity in general, which is very, very good.
I just got hired by one in Texas that reflects that impression, which I had before I ever interviewed there.
"I don't think Java is all that bad, and I can enjoy well-done object-oriented programming."
This is probably the most accurate opinion of Java the language I've seen, one that isn't tarnished by what anyone has seen in any proprietary codebase.
I would rather program in Java the programming language than Javascript any day of the year, even if I dislike the vast majority of popular Java frameworks like Spring, Hibernate, etc.
The important principle is that you should devote your learning time to things that are more likely to survive. A good way to do this is to pick something that has been around for a long time. Knowing how to write an optimized linux kernel driver is far more long-term-valuable than, say, a Javascript framework. Knowing how to do quantitative marketing is even more valuable than that.
The absolute worst thing you can do is to chase the new shiny every year. If you do that, you will never be more experienced than the most junior member of your team.
But, they did acknowledge it. And they're now making design decisions to facilitate the web as an application platform, rather than intentionally trying to make application development as difficult as possible to dissuade it. So now we've got WebAssembly and tomorrow or the day after we will have any language anyone wants to use being used. In that arena, Javascript will get pantsed and laughed out of the room. It will probably happen with pretty amazing speed, as there are legions of developers who have been holding their breath for this for 20 years.
In this discussion, when we talk about value, I think it makes sense to look at value in the sense of how valuable a skill is to the longevity of your career.
In that sense, JavaScript has some upsides - it's everywhere, and will likely continue to be everywhere. There will be lots of demand for JavaScript development.
But because JavaScript is everywhere, tons of people know it, and tons of people are learning it. So although there will be lots of demand for JS development, if you're a JS developer, there will also be a ton of people offering a skillset that is broadly similar to yours.
As you mentioned, the demand for something like Linux driver developers is tiny in comparison to the demand for JS developers. But the talent pool is relatively tiny, too. So it might be easier for you to differentiate yourself because when an employer is looking for someone with your skillset, they're not going to have to wade through hundreds of resumes from people who look pretty qualified.
In general, I think it's most valuable to specialize in solving a certain type of problem, where programming just happens to usually be the best way of solving it. It's often easier to sell yourself as a solver of specific kinds of problems than it is to sell yourself as a generalist with experience in JS, HTML, CSS, etc.
Given how much JS development thrashes, it's a pretty reasonable bet that whatever you're learning this year will be out of fashion next year, and irrelevant in five years. That's the high-order bit, when you're thinking about your career.
Even for something as "narrow" as linux kernel development, I can pretty much guarantee that someone will want hire you in 20 years, so long as you are competent. I can't make that guarantee for most technologies.
I really wish it were possible to make reference to JS in a less-than-glowing light without being downvoted, but alas. Substitute any other brand-new technology for "Javascript framework" if you're having difficulty seeing the argument.
But would I bet on Javascript over (for example) C? No way. Any new developer would be wise to learn C, even if they completely ignored Javascript. And I don't need any technical details about the language to make that call.
Work on understanding the business needs and not just business requirements for your feature.
Learn how to foster team growth, not just your own personal growth.
Figure out processes to help the team and not just building your feature.
Don't be intimidated by younger engineers who are trying to climb the ladder. Help them succeed.
You don't have to be as actively sought after. You should be staying at positions longer - 5 years, maybe even 10. (Note well, however: By this point, you probably have seen several toxic environments. If you're in one, don't wait - get out. Life is too short to put up with it.)
I have a file where I keep track of headhunters that I think are worth their salt. I'll use it if and when I feel like it's time to move on.
For the record, I'm 55.
(I'm 40 and my current role is with a small company where I implement solutions rather than have a title)
Bingo.
Security is one of the few cross-discipline, cross-domain specialities where it is possible to be a reasonably good domain expert and still have a good coverage across other domains. The fundamentals don't change. (And I say this as someone who's been immersed in the field for 25 years, so of course I'm biased.)
There are few other domains that can offer the same level of constant demand.
The beauty - and the depressing aspect - of security is that maybe 10% of security is about software. The remaining 90% is all about what is between people's earlobes. To become good at security, you'll need to learn how to explain extremely difficult and often subtle concepts. And you'll have to do that for both technical and non-technical crowd. That's a fantastic and continuous trial by fire. It's also lots of fun!
Bonus: because everything is a tradeoff, you really can't avoid the engineering approach. Teaching the concepts and reasons for tradeoffs to less senior developers will be part of the job specification. Fun.
> language/framework of the week
To quote something I have often stated in our interviews - there are only four programming language families. Everything else is syntax.
1: Imperative - C, Fortran, Pascal, ...
2: Object-oriented - C++, Java, Python, Ruby, (maybe Delphi's Object-Pascal), ...
3: Functional - OCaml, Erlang, Haskell, F#, ...
4: Declarative - Makefiles, QML, SQL, ....
To be perfectly honest, I don't know which bucket I should use for Prolog. It's supposedly logical, declarative and functional at the same time. I've never managed to understand it, despite trying.
And for the record: perl in basic form is imperative. With the introduction of "bless" keyword it crosses over to object-oriented domain but following the syntax is not necessarily straightforward. [I've spent a non-insignificant number of days auditing OO-perl. It's not a pleasant experience.]
If I wanted to jam languages into 4 categories, it would probably be the Algol, Lisp, and ML families, plus All Those Other Languages. :)
Declarative vs imperative is more interesting: what vs how, building descriptions of problems rather than chains of calculations or lists of steps. I don't think functional style is strongly related to declarative, except in the very low level sense that a functional program doesn't necessarily have a sequential evaluation semantics. But that's increasingly true of seemingly imperative languages also.
* Imperative languages describe how to perform the solution.
* Functional languages describe the solution.
* Logic languages describe the problem.
I'm not sure I actually agree with this categorisation, though.
Understanding customer needs and translating that into product definitions is something that will likely never go out of demand, and is needed in industries outside tech. And if demand for distsys goes out of style I'll just learn something else. I've already kind of done that, having cut my teeth on embedded systems, followed by a short stint in mobile before getting to where I am now.
Judging by what I see around me, I don't see the strategy being any less effective in 10 or more years.
More seriously, having had a look around my cohort, there aren't that many people who've left programming altogether, and those that have have done so for personal reasons. Generally people have moved "upwards" and acquired management track positions. Small companies are good for this - because it's so flat you can easily get a high-ranking job title which you can then leverage into the next job.
Look "up". Look at the older and more senior people in your organisation. Maybe even directly ask them about careers. Recognise that if nobody around you is over 30, you're either in a very unusual place like an SV startup or you've wandered into Logan's Run.
Physically, I age linearly n.
Mentally, I age logarithmically 17 + ln(n).
Think of it like being on a first date: your idealized self. You're real, but like 120% real.
So far in this thread:
- continue to learn / evolve
- go into management(well, someone will mention it)
- Go into: consulting / start your own business / remote work
I'm not too far from 40 myself. Any advice?
This is a huge advantage compared to some recent graduate that has no idea, knows nobody, and is still learning the geography of the industry.
Don't stop learning. Don't stop making contacts, friends, and other connections. At some point you won't need a resume to get a job, you'll just need to know who to call.
It's not so much about hustling as it is developing meaningful professional relationships with people. You don't need to be a huge extrovert to make it work, you just need to engage with people. Solve problems together. Help each other out. If you get someone out of a jam they'll remember it, and when it comes time for a reference maybe they'll be there to back you up and vouch that you're the right material.
It's pretty easy to go about doing your job without really paying attention to anyone else on your team or at your company.
But if the fact is that a large percentage of folks doing programming a 29 won't be doing it at 45 and aren't going to have a good exit plan (if they made a high salary in that time), then in a sense what's being said is:
"Programming is a dead-end job for those under forty" and about forty is the end-point for them.