I am a Software Dev in my mid 20s and posts like this always make me nervous. I love my craft, and want to improve it, but recognize it will be another 5 to 7 years before I am truly proficient. Just in time to be obsolete. How do I combat this? Better networking? Starting my own business? Consulting?
I would like to believe that people who find jobs don't write posts like this to provide the opposite experience. But it seems to be weighted so heavily on the negative, it hards to believe the positive does exist.
But then I think about the jobs they are applying for. Basic coding tests for an Architect? Are they really hiring an Architect or just the second developer and CTO is already taken? Start ups seem to like to assign titles from the top down, but you cannot exactly have an Architect if its you and one other person.
Also 99% rejection rate without an interview? That sounds like you are spamming your resume to everyone, don't know how to write a resume, or are woefully under qualified and don't know it.
> [...] it will be another 5 to 7 years before I am truly proficient. Just in time to be obsolete. How do I combat this? Better networking? Starting my own business? Consulting?
Judging from how you use it, I think that under the word "obsolete" you mean
something different than how I understand it. Care to clarify?
Sure but every jump is opportunity cost. The older you get the harder it's going to be to pick up yet another language with its own ecosystem, tool chains, frameworks, the works.
Are you always picking up new skills or perspectives by doing that? Sure. Do you still have to be stingy with your resources (time, energy, interest)? Absolutely.
Depends on how much you enjoy learning, I suppose. I love learning new things. I'm not stingy on things I love. I don't doubt it's going to get harder to learn after retirement, but that's still more than 20 years away for me.
I hear a lot of hiring horror stories. Perhaps it's because my career has been on the East Coast, or because I only apply to places I'm generally interested in and have researched/stalked (vice a shotgun approach) but I've never suffered any hiring silliness. Maybe I'm just lucky? I'm 37 now.
I generally assume the absurd hiring practices are either large companies that have become institutionalized and thus have terrible processes free from the scrutiny of sanity (Google, etc) or are small companies that don't really know what they are doing or need. Both sound like terrible places to work.
Yes, if you just want to coast. Coasting is certainly a perfectly legitimate goal, it just doesn't work in this industry.
You have to constantly grow the breadth _and_ depth of your skill set.
Depth because, from a theoretical perspective, change in computer science is exceptionally slow and incremental. The basic theories and algorithms in the latest machine learning craze, for example, are not much different from those of 30 years ago. If you understood the 30-year-old theory, grasping the modern stuff is much easier. The big enabler has principally been from new hardware.
Breadth because what passes for "skill" today (just like it did yesterday) is effectively familiarity with tooling and buzzwords. You have to pay attention to how tooling and best practices evolve. The tools may be inferior and the best practices not very effective, but the productivity of teams and companies depends on everybody being on the same page. And even if the tooling and practices are worse, it won't that bad. (See depth, above; change is slow and incremental.)
Personally, I took a mid-career break for law school. One of my varied reasons was because the law is perhaps the last professional domain where age and experience is still highly valued. Even a 21-year-old hot shot millionaire would rightly think twice before choosing as his counsel a young top-of-his-class Stanford graduate over a 70-year-old attorney with 50 years of experience in battle.
Philosopher-lawyers from Harvard and Stanford don't have particularly good track records in winning cases. Another reason for my choosing to go to law school was my confusion about Lawrence Lessig losing his case at SCOTUS challenging copyright extension. That's when I began to realize that maybe I (and others, like Lessig) was living in a bubble regarding my understanding not only of the law effecting my professional life, but the law more generally.
Plus, I did some of my best coding while going to law school. Nothing feeds your desire to hack like an extended absence from the grind of programming for a living. And being immersed in an unrelated body of knowledge seems to enhance creativity when programming. I immediately returned to San Francisco after graduating and went back to coding (pay was better, anyhow), but every penny spent was well worth it. The stress, however, probably shaved years off my life. Law school is like bootcamp for the mind, but even more harsh and unsympathetic. My first year was pretty darned close to Paper Chase, including scenes where the professor chastises students in front of the class, tells them to get out of his class, etc. If only undergraduate school were like that. To see some students flunk out their first year only to return to try again was unexpectedly humbling and inspiring, more so than the sheer terror of being one of those to flunk out.
Coasting is certainly a perfectly legitimate goal, it just doesn't work in this industry.
Maybe not when you're young, but you can coast just fine as an older software dev. I'm doing it right now. Now, it might not look like coasting. Sure, I get pulled in to build test infrastructure from the ground up, prop a build server to fit the source control flow that a particular team has chosen, can walk a dev through writing unit test and integrating them into their flow. Hire some testers and dev with a high percentage of "good fits". Hell, manage a team if you need me to. Deal with the client in a professional manner instead of coming across as some basement dweller? All of that before my first cup of coffee without breaking stride. But only because of years of experience does it become second nature.
The tech stack? Meh, you've learned a dozen, you've learned them all. That's the easy part, and when it's not easy I'll go read up. But to me, the truly hard stuff gets easy after enough years and one can cruise through the non-tech parts that (to me) are the hardest part of the job. The only thing I still struggle with is putting up with bullshit in a tactful manner. That gets harder with each passing year, probably because experience makes it more obvious and harder to ignore.
I had a hard enough time dealing with other people's bullshit when I was 10. I can't even swallow my own bullshit now. And it seems like more jobs out there are constantly increasing their ratios of of bullshit filler to useful, productive work.
But I can't really tell whether it is objectively increasing, or if I am just getting better at recognizing it.
I think you may be insufficiently fearful of the current and future economy. Or maybe I'm just too fearful. But I grew up rather poor, and while I thankfully learned to shed most of the proletarian work ethic that keeps poor and working-class people in economic shackles (that is, the political mindset, perceptions of character, and in particular the kinds of labor considered meaningful), I still believe that the prudent economic life demands a constant hustle.
My financial advisor says the average cost of a 4-year private education will be well over $350,000 in less than 20 years. (It'll be that in just a couple years for the elite private schools, including non-Ivy League elites where most students don't get much aid.) Now, I don't plan on paying for my son to attend a private university if we can help it (public undergrad is fine by me), even though we might be able to swing it without too much damage, but that number serves to really drive home the cost of keeping your family securely middle-class.
Also, yes, middle management is always an escape. OTOH, middle managers are always the first to get the axe during layoffs. I probably misinterpreted the original question, but moving to middle management is not something I aspire to. I respect it, but I'm not a people person and I don't like managing people. I've been fortunate that the few people I have managed I was able to hire myself, people who I felt were much more self-motivated and self-directed than the average engineer.
If I can't continue hacking for an income, I'll probably return to the law.
I left it unsaid, but IMHO ageism is rife in the software industry. There'a ageism in almost every industry (including the law, it's just reversed ;) but IME it's comparatively greater in the software industry. Many people won't bother even denying it, and aren't afraid to excuse it.
I saw ageism even when I was in my early-20s, working with an original Amiga veteran (a bone fide historical figure in the Silicon Valley) whom other young engineers would constantly deride, arguing he was too "behind the times" and just "didn't get it". It was all bollocks of course, and I understood that. (Though I never completely understood why he chose to stay in the trenches, and continues to do so AFAIK, despite the fact he could probably join a VC firm.) Now that I'm older and approaching grey beard status (an age which decreases every year), I won't let myself forget the mentality among the junior engineers, as well as the bean counters, recruiters, and other managers who not only tolerated it, but enabled it.
In light of the ageism, if you want to continue hacking, and you want to minimize your risk of income volatility later in your career, you have to constantly dedicate yourself to improving the depth and breadth of your knowledge. That's a good idea in any industry, but especially in software. And that's why I don't see coasting as a viable option.
But people's situations and preferences vary, of course. Coasting can make more or less sense, depending on context.
"There were also a couple of companies that assigned me coding tests where they asked me to “print a ladder” and “find repeating numbers.” I rejected those tests not because of arrogance but because my skills were beyond what they thought is needed from the role. And yes, the roles were for a Software Architect. However, instead of testing my skills in architecture and logic, I had to print a ladder on the screen."
This is arrogance. In my experience, most companies throw simple tests even at people applying for higher positions for several reasons:
1. It very quickly sorts out people who lie on their resume
2. You can tell a lot about a person's skill level by how they answer even a simple coding assignment - how are functions and variables named, does it take in args, what style is the commenting, does it do error handling, input validation, which language features are used to solve it etc, etc?
To be honest, it's also a good filter for people like, well, the author. I don't want to work with an arrogant "rockstar" who's "too good" for FizzBuzz.
Yeah, I've never really understood being _offended_ by being asked to do something relatively simple (and honestly, those are actually pretty good problems). I might consider it a little amusing if somebody asked me to write FizzBuzz or something really basic, but I would shrug my shoulders and do it.
I agree, although I might be offended if an interviewer spent more than a few minutes on such things once it was clear that you could do them. However, that's more about not respecting the value of your time than the difficulty of the problem(s), just like expecting you to do a day of homework problem(s) before they even meet you.
3. Software Architects don't get to spend all day every day building sandcastles of the mind; sometimes they have to get down in the trenches and write some low-level code. If they won't do it during an interview, they probably won't do it on the job either.
In fact, I'd never trust an architect that didn't. I've worked with too many that can solve problems on a white board but hand wave away real world issues.
> how are functions and variables named, does it take in args, what style is the commenting, does it do error handling, input validation, which language features are used to solve it etc, etc?
A lot of that is going to depend on the test. For fizzbuzz using functions at all would be over complicated, if it's timed then I'm not going to bother with comments and variable naming.
When I look at software dev career boards most of the jobs are for senior roles. Look at Stack Overflow Careers and Glassdoor, just search "junior" then search "senior". I searched several major cities and they all had far more senior roles than junior/entry.
Hi, kids! Oldster here. Y'all really need to quit with the "oh, $DEITY, I'm looking at the wrong end of 40 and I'll never work again!" Yes, you will. Yeah, give up that dream of game development (which you should have done anyway, regardless of age). Some brah with his half-assed "Uber for..." won't hire you, sure. But there are plenty of places that would love to have someone that comes in before noon, does the work that needs to be done, and does solid work, and doesn't spend all day at the foosball table.
It depends a lot on how one defines "dead end", too. You have steady work, it pays six figures, but it's a CRUD app? Yeah, go whine to the guy in Appalachia or Detroit. Let me tell you about "dead end": one factory in town, there are only so many management positions to go around, and when that factory closes down you're screwed because your skills don't transfer so well that you'll just pick and move to Seattle where the jobs are. That's a dead end: you're going nowhere.
FoxPro dev and not finding work? That's your own fault. Software dev is a dead end only if you insist on turning down that cul-de-sac, turning off the car, and throwing the keys into a grassy field.
(As a sidenote, the author just comes across as whiny because he's not treated as the special snowflake he really is. If you're so insulted by being asked to do FizzBuzz, then you ought to be able to knock it out in Brainfuck if required. But maybe you can't, eh, Mr. Hotshot?)
However, I will say that the way recruiting works for devs is just atrocious.
I heartily agree, but off-topic. It sucks for everyone, young or old. Maybe, just maybe, as the oldsters roll of to management that'll change, but meet the new boss...
The kind of recruiting described in the article here probably sucks more for older candidates, though. They're going to have more buzzwords to match up (or not) with greater experience, but more importantly, as developers get older and more experienced, they tend to be less reliant on this kind of recruitment anyway, preferring to rely on networking or other ways of making contact that bypass the buzzword-driven recruiter dance. If, for whatever reason, you're an older developer who knows what they're doing but isn't able to bypass the kindergarten stuff, you're going to be relatively rare among your peers, while if you're a 24-year-old hotshot looking for their second job the opposite is probably true.
I really don’t think that’s what he’s saying, and if at least some of this doesn’t resonate with you, you’ve never looked for (programming) work after 40. The problem is that programming is, by it’s nature, “strange” work. In every other job, you perform some function for a long time, learn all the ins and outs of it, and then move on to manage other people who are performing that function: break their work down into tasks, assign different people to different tasks based on skill sets, suggest timeframes, etc.. That’s true from sandwich making up to neurosurgery. Programming work seems to defy that natural progression. I’ve been doing this for 25 years now, and I’m no better at breaking software development projects down into discrete tasks for _other people_ to carry out than I was when I started - and I’ve never met nor worked with anybody else who could, or even pretended they could. So we have this odd career where you start out as a programmer, and you stay a programmer until you retire. Couple that with the outsiders expectation that programming is getting easier when the reality is that the opposite is true, you have a _lot_ of people with a very low opinion of programmers as professionals - i.e. if you were actually any good, you wouldn’t have to be doing this any more.
(As a sidenote, the author just comes across as whiny because he's not treated as the special snowflake he really is. If you're so insulted by being asked to do FizzBuzz, then you ought to be able to knock it out in Brainfuck if required. But maybe you can't, eh, Mr. Hotshot?)
I remember going through a phase, probably around my mid-20s, when I got quite insulted by being asked to do such simple tasks in interviews. I never showed that during the interviews, obviously, but I had qualifications and several years of experience writing real production software, so what kind of idiot did they think I was and how was writing fizz-buzz going to demonstrate what I could do?!
A few years later, having more often sat on the other side of the interview table, I had learned that the number of people who have somehow achieved impressive looking qualifications from reputable institutions, gained several years of professional experience, and yet really can't write fizz-buzz, is astonishing.
Trivial programming exercises aren't there to determine a good programmer's level of skill, they're there to stop the interviewer wasting several hours on a no-chance candidate who slipped past the screening process and accidentally wound up face-to-face. You get to the interesting stuff that actually tells you something about the candidate after that, and if they're any good at all, your trivial challenge will be a two minute diversion that they solve while probably having a friendly chat with you about something else at the same time.
It's a little surprising to me that someone with as much experience as the author describes here hasn't realised this yet. It was one of the very first lessons I learned as soon as I started helping with interviewing candidates.
It's a little surprising to me that someone with as much experience as the author describes here hasn't realised this yet.
Bing-m'f'ing-O, and you summarize better than I. If one has not only been around the block, but has worn ruts in the sidewalk, then you know exactly why you're being asked to write FizzBuzz. I was actually once asked to reverse a string. "Optimized for memory or speed?" was my response, not a feeling of insult. I guess when I think about it, thanks to your prompting, that's my actual complaint with the article.
Ha. I'm 42 and currently working on an online version for the card game Dominion. Paid. So it's not a game I invented, but still pretty cool, and very different from the work for banks I've done the past couple of years.
On the other hand it's going to be harder to land them. My sister, who looks younger than her mid-30s, was at a job interview wherein the founders told her they didn't want any "old people", meaning people over 30.
Personally I think age discrimination laws are dumb. People who don't want to hire someone my age will find a reason to select younger candidates. I'd rather have it right there in the job req so I don't waste my time pursuing opportunities that aren't there.
My sister, who looks younger than her mid-30s, was at a job interview wherein the founders told her they didn't want any "old people"
Any company so dense that they make statements during an interview that open them to legal liability is truly a company you don't want to work for. Because I guarantee there's a whole host of other stuff they aren't supposed to do as employer and aren't aware of it. Little stuff like, I dunno, "no, you can't put that in an employment contract and ask people sign it" or "actually, that's not how payroll works in this state".
Specific to your sister, if they don't like old people, I'll bet they wouldn't be fond of having girlz in their frat house, either. Unless she's cute, of course.
I agree with the author. As someone in their late 30's back in the job market due to joining a few poor startup opportunities, its terrible. Software engineering is one of the few career paths that experience doesn't mean shit. Everyone here is saying yes its not a big deal to answer stupid questions like fizzbuzz, and while I do answer them... it really inconsequential to the job. Yes I have to regularly practice on sites like hackerrank that really have little to do with my capabilities in executing in a real environment, but really its just memorizing and practice that are almost unrelated to my job function.
Sure you can blame people for not keeping up with their skills and knowledge set like mikestew, but a lot of times this is not what you're interviewed on. Its like interviewing companies are so lazy as to not check your references. Most of the time if the interviewer is knowledgable they should be able to weed out people that are lying on their resumes. Maybe the problem is not with the people lying on their resumes and people that are doing the interviewing.
If I could do it over again, I probably would have gone down a different career path and programmed as a hobby.
> If I could do it over again, I probably would have gone down a different career path and programmed as a hobby.
Really? While I'd love to program as a hobby, I don't know what I'd do as a job then. For me, programming is easy money. I have no what else I could do. Game designer perhaps. Or musician. But those are really better kept as a hobby.
It can be bad at startups and certain companies, as they don't want to pay the higher salaries required and want people who will work like dogs.
The latter is funny, as when I started out (and maybe even now), I was always up for putting many hours into the product I was working, but only if it was worth doing and interesting to me. What I quickly learned was that these projects did not exist, especially at larger companies, and if they did, they were almost impossible to join. And even then, once on the project, political BS and favoritism could easily leave you working on an irrelevant/meaningless feature.
The reverse of "aging out" ("they're young, so they're stupid") is what I experienced when starting out.
While at eBay, the idiot managers did everything in their power to try to paint me as a stupid know-nothing and would constantly try to box me in. Whenever I did anything that showed ability, knowledge, etc, they'd freak out and try even harder to stomp me out. Working longer hours (or having to work longer hours) wasn't a display of anything other than me inconveniencing them and other employees, as now they have to stay late as well. Then right in line with such accusations, there'd be claims I'm not working enough, am a slacker, am always late (these Bay Area companies have a "show up and leave whenever you want" policy, but then magically everyone is always late), etc.
While at Google (2010), there was nothing but crap to work on, then later there'd be statements along the lines of, "you won't really be able to work on anything until you're a Senior Software Engineer or a Staff Software Engineer, as it's assumed anyone at the Software Engineer III level or below doesn't know what they are doing." There's always an excuse or some BS explanation as they tried to trap everyone into working long painful hours on nothing special, while dealing with endless BS.
Google was strange. There was overt discrimination based on age (older folks would complain about it, but then turn around and say the above about younger ones), gender, ethnicity, school attended, and anything else they could use, but it's magically never been mentioned publicly. They'd also talk down to QA Engineers and contractors like they were nothing.
Google was swarming with off-putting, arrogant, anal retentive pricks that would use everything as an excuse to say the most insulting garbage. It was a hellish environment in which many were on edge (anxiety) or miserable (depressed), while working long and hard on an irrelevant part of nothing special (something that's also magically never been mentioned publicly).
I've certainly seen some evidence that getting hired is harder now that I'm older, but I'm not actually sure about the causation. I've seen lots of second hand evidence that getting hired is a lot harder now for everybody, regardless of age.
This is just a theory, but I think we've got a situation where there are about the same number of software engineers out there looking for jobs as ever, and there are about the same number of jobs as ever, but for some reason the system has evolved to where applicants have to apply to a much larger number of positions than they used to, and employers have to screen a much larger number of applicants. When this happens, applicants get much less picky about the positions they apply for (and have to get less picky) and employers end up screening on more and more arbitrary criteria.
Part of this might just be what you could call the "online dating" problem, where the problem is that the technology has made it way too easy to make superficial contacts, so contactees get super-dismissive, and contactors decide that if they're going to continue playing the game they're just going to have to make an even greater number of superficial contacts, contactees get even more dismissive, and eventually everybody just gets really jaded.
Another part might be (and I should stress again that I'm just hypothesizing here) that because there are so many applicants for each position now, that there is, almost by necessity, a screening layer of professional HR hiring people (not just the classic recruiters, but "sourcers", recruiters working directly for employers, full-time HR people who specialize in hiring, etc.) And it's actually a real problem because these people aren't, in general, competent to be screening applicants, and indeed can't be, unless they are former software engineers themselves.
And it's actually a real problem because [professional HR hiring people] aren't, in general, competent to be screening applicants, and indeed can't be, unless they are former software engineers themselves.
Bingo. Unfortunately, in a situation where it is typically in both sides' best interests to play to their strengths and hide their weaknesses as much as they reasonably can (and sometimes more), it is hard to see how to fix that problem. I suspect the rules of the game need to change, so that technical experts are involved much earlier in the process, even if it means staff with software development or related roles have to step away from their normal work now and then to participate in recruitment activities.
I suspect the rules of the game need to change, so that technical experts are involved much earlier in the process, even if it means staff with software development or related roles have to step away from their normal work now and then to participate in recruitment activities.
I totally agree with you. In an ideal world (at least a better one), I imagine it would go something like this:
Engineering: We need to hire some more people.
HR: Why are you telling us? That's not our problem.
Engineering: ?!
some time later
Engineering: OK, we've found a guy we want to hire.
HR: Excellent. We can take it from here.
Note: I am not exaggerating for effect here. I am totally serious. The hiring of engineers should not be an HR problem.
Curiously, that is how it's usually worked in the smaller companies I've worked for over the years. There might have been some sort of external recruitment agency involved in some cases, but the in-house people driving the process were always people like team leaders or department heads where the new recruit would be working, and typically the CVs were triaged or reviewed by a couple of other senior people within those teams or departments.
I've never applied to a very large company via the equivalent process myself, only wound up in them through other means. However, seeing from inside how things have sometimes been handled, with HR/legal driving the process and technical people taking a back seat, I can't say I'm regretting my life choices here. :-)
> I've seen lots of second hand evidence that getting hired is a lot harder now for everybody, regardless of age.
Is this in the US? Because I don't think it's global. I live in Netherland, and I never have any problem finding a new job. I don't know any unemployed programmers, and a lot of desperate recruiters.
Maybe it's the result of Netherland neglecting to invest more in STEM education, and underpaying programmers. Managers tend to get paid better than programmers here, so that's draining the programmer population, keeping demand high.
I'm 45. Become independent and cultivate a reputation for getting shit done. Any time you want some work you go out for coffee with someone you know and they will guaranteed have something for you to do. The trick then, obviously, is to get it done.
I think software development is the greatest vocation for a 'older' person, you just have to look at it differently. I'm 57, and I KNOW I am unemployable and I'm fine with that.
To me, software is only a tool to get where I want. The potential is the products that I can produce, not the actual career of writing software, and I'm bringing my 30 years of business knowledge to the table.
I know what businesses want. I know what steps to take. I know what kind of relationship a business wants with their software vendor.
Case in point: my current project is a very mature industry where the current market is 40% larger companies serviced by a couple of large ISVs, but 60% of the smaller companies can't afford these ISV platforms and rely on a few old outdated packages or roll their own. My sole client now is a very small operation but she's got great insight to where she wants to go and what functionality will take her there.. like social media integration, ongoing customer touches, SMS, etc (which the current crop of platforms don't have), which makes her the perfect first client. And she feels comfortable that I can become a good partner of hers because a) I know what to do, and b) I don't bullshit. And yes, she's very aware I'm 57. So what. And, unlike the younger developers, I've got a little money and security backing me so I can take the time to develop the platform full-time.
I know I can't get a job, but I can make one. What other industry can you do that at 57?
I don't recognize this at all. 42, working as freelancer, and I'm regularly swamped with offers from recruiters. And yes, there is plenty of junk among them, and most recruiters suck, but I've found plenty of decent contracts within bicycle distance, and each one paid better than the previous one (except the current one, but that's because I'm helping a friend build a game).
This is Netherland, though. The situation could very well be different in other countries.
47 here. The network of people that I've built up over 25 years is still there. If I need a job, I just contact one and they just offer it to me. Why? Because I can do every phase of dev. I can build and maintain the project and budget. I can interact with the heads of all departments and leave them feeling warm and fuzzy. I get the job done. Usually ahead of schedule. I'm a fire and forget developer. If I applied for the run of the mill full stack position, I'd never make the cut. And I don't care because I never setup my future to fall into that hole.
49 comments
[ 3.3 ms ] story [ 95.0 ms ] threadI would like to believe that people who find jobs don't write posts like this to provide the opposite experience. But it seems to be weighted so heavily on the negative, it hards to believe the positive does exist.
But then I think about the jobs they are applying for. Basic coding tests for an Architect? Are they really hiring an Architect or just the second developer and CTO is already taken? Start ups seem to like to assign titles from the top down, but you cannot exactly have an Architect if its you and one other person.
Also 99% rejection rate without an interview? That sounds like you are spamming your resume to everyone, don't know how to write a resume, or are woefully under qualified and don't know it.
Judging from how you use it, I think that under the word "obsolete" you mean something different than how I understand it. Care to clarify?
I assume that's what he/she means.
Are you always picking up new skills or perspectives by doing that? Sure. Do you still have to be stingy with your resources (time, energy, interest)? Absolutely.
I generally assume the absurd hiring practices are either large companies that have become institutionalized and thus have terrible processes free from the scrutiny of sanity (Google, etc) or are small companies that don't really know what they are doing or need. Both sound like terrible places to work.
You have to constantly grow the breadth _and_ depth of your skill set.
Depth because, from a theoretical perspective, change in computer science is exceptionally slow and incremental. The basic theories and algorithms in the latest machine learning craze, for example, are not much different from those of 30 years ago. If you understood the 30-year-old theory, grasping the modern stuff is much easier. The big enabler has principally been from new hardware.
Breadth because what passes for "skill" today (just like it did yesterday) is effectively familiarity with tooling and buzzwords. You have to pay attention to how tooling and best practices evolve. The tools may be inferior and the best practices not very effective, but the productivity of teams and companies depends on everybody being on the same page. And even if the tooling and practices are worse, it won't that bad. (See depth, above; change is slow and incremental.)
Personally, I took a mid-career break for law school. One of my varied reasons was because the law is perhaps the last professional domain where age and experience is still highly valued. Even a 21-year-old hot shot millionaire would rightly think twice before choosing as his counsel a young top-of-his-class Stanford graduate over a 70-year-old attorney with 50 years of experience in battle.
Philosopher-lawyers from Harvard and Stanford don't have particularly good track records in winning cases. Another reason for my choosing to go to law school was my confusion about Lawrence Lessig losing his case at SCOTUS challenging copyright extension. That's when I began to realize that maybe I (and others, like Lessig) was living in a bubble regarding my understanding not only of the law effecting my professional life, but the law more generally.
Plus, I did some of my best coding while going to law school. Nothing feeds your desire to hack like an extended absence from the grind of programming for a living. And being immersed in an unrelated body of knowledge seems to enhance creativity when programming. I immediately returned to San Francisco after graduating and went back to coding (pay was better, anyhow), but every penny spent was well worth it. The stress, however, probably shaved years off my life. Law school is like bootcamp for the mind, but even more harsh and unsympathetic. My first year was pretty darned close to Paper Chase, including scenes where the professor chastises students in front of the class, tells them to get out of his class, etc. If only undergraduate school were like that. To see some students flunk out their first year only to return to try again was unexpectedly humbling and inspiring, more so than the sheer terror of being one of those to flunk out.
Maybe not when you're young, but you can coast just fine as an older software dev. I'm doing it right now. Now, it might not look like coasting. Sure, I get pulled in to build test infrastructure from the ground up, prop a build server to fit the source control flow that a particular team has chosen, can walk a dev through writing unit test and integrating them into their flow. Hire some testers and dev with a high percentage of "good fits". Hell, manage a team if you need me to. Deal with the client in a professional manner instead of coming across as some basement dweller? All of that before my first cup of coffee without breaking stride. But only because of years of experience does it become second nature.
The tech stack? Meh, you've learned a dozen, you've learned them all. That's the easy part, and when it's not easy I'll go read up. But to me, the truly hard stuff gets easy after enough years and one can cruise through the non-tech parts that (to me) are the hardest part of the job. The only thing I still struggle with is putting up with bullshit in a tactful manner. That gets harder with each passing year, probably because experience makes it more obvious and harder to ignore.
But I can't really tell whether it is objectively increasing, or if I am just getting better at recognizing it.
My financial advisor says the average cost of a 4-year private education will be well over $350,000 in less than 20 years. (It'll be that in just a couple years for the elite private schools, including non-Ivy League elites where most students don't get much aid.) Now, I don't plan on paying for my son to attend a private university if we can help it (public undergrad is fine by me), even though we might be able to swing it without too much damage, but that number serves to really drive home the cost of keeping your family securely middle-class.
Also, yes, middle management is always an escape. OTOH, middle managers are always the first to get the axe during layoffs. I probably misinterpreted the original question, but moving to middle management is not something I aspire to. I respect it, but I'm not a people person and I don't like managing people. I've been fortunate that the few people I have managed I was able to hire myself, people who I felt were much more self-motivated and self-directed than the average engineer.
If I can't continue hacking for an income, I'll probably return to the law.
I left it unsaid, but IMHO ageism is rife in the software industry. There'a ageism in almost every industry (including the law, it's just reversed ;) but IME it's comparatively greater in the software industry. Many people won't bother even denying it, and aren't afraid to excuse it.
I saw ageism even when I was in my early-20s, working with an original Amiga veteran (a bone fide historical figure in the Silicon Valley) whom other young engineers would constantly deride, arguing he was too "behind the times" and just "didn't get it". It was all bollocks of course, and I understood that. (Though I never completely understood why he chose to stay in the trenches, and continues to do so AFAIK, despite the fact he could probably join a VC firm.) Now that I'm older and approaching grey beard status (an age which decreases every year), I won't let myself forget the mentality among the junior engineers, as well as the bean counters, recruiters, and other managers who not only tolerated it, but enabled it.
In light of the ageism, if you want to continue hacking, and you want to minimize your risk of income volatility later in your career, you have to constantly dedicate yourself to improving the depth and breadth of your knowledge. That's a good idea in any industry, but especially in software. And that's why I don't see coasting as a viable option.
But people's situations and preferences vary, of course. Coasting can make more or less sense, depending on context.
This is arrogance. In my experience, most companies throw simple tests even at people applying for higher positions for several reasons:
1. It very quickly sorts out people who lie on their resume
2. You can tell a lot about a person's skill level by how they answer even a simple coding assignment - how are functions and variables named, does it take in args, what style is the commenting, does it do error handling, input validation, which language features are used to solve it etc, etc?
A lot of that is going to depend on the test. For fizzbuzz using functions at all would be over complicated, if it's timed then I'm not going to bother with comments and variable naming.
They mean 3-5 years.
It depends a lot on how one defines "dead end", too. You have steady work, it pays six figures, but it's a CRUD app? Yeah, go whine to the guy in Appalachia or Detroit. Let me tell you about "dead end": one factory in town, there are only so many management positions to go around, and when that factory closes down you're screwed because your skills don't transfer so well that you'll just pick and move to Seattle where the jobs are. That's a dead end: you're going nowhere.
FoxPro dev and not finding work? That's your own fault. Software dev is a dead end only if you insist on turning down that cul-de-sac, turning off the car, and throwing the keys into a grassy field.
(As a sidenote, the author just comes across as whiny because he's not treated as the special snowflake he really is. If you're so insulted by being asked to do FizzBuzz, then you ought to be able to knock it out in Brainfuck if required. But maybe you can't, eh, Mr. Hotshot?)
I heartily agree, but off-topic. It sucks for everyone, young or old. Maybe, just maybe, as the oldsters roll of to management that'll change, but meet the new boss...
I remember going through a phase, probably around my mid-20s, when I got quite insulted by being asked to do such simple tasks in interviews. I never showed that during the interviews, obviously, but I had qualifications and several years of experience writing real production software, so what kind of idiot did they think I was and how was writing fizz-buzz going to demonstrate what I could do?!
A few years later, having more often sat on the other side of the interview table, I had learned that the number of people who have somehow achieved impressive looking qualifications from reputable institutions, gained several years of professional experience, and yet really can't write fizz-buzz, is astonishing.
Trivial programming exercises aren't there to determine a good programmer's level of skill, they're there to stop the interviewer wasting several hours on a no-chance candidate who slipped past the screening process and accidentally wound up face-to-face. You get to the interesting stuff that actually tells you something about the candidate after that, and if they're any good at all, your trivial challenge will be a two minute diversion that they solve while probably having a friendly chat with you about something else at the same time.
It's a little surprising to me that someone with as much experience as the author describes here hasn't realised this yet. It was one of the very first lessons I learned as soon as I started helping with interviewing candidates.
Bing-m'f'ing-O, and you summarize better than I. If one has not only been around the block, but has worn ruts in the sidewalk, then you know exactly why you're being asked to write FizzBuzz. I was actually once asked to reverse a string. "Optimized for memory or speed?" was my response, not a feeling of insult. I guess when I think about it, thanks to your prompting, that's my actual complaint with the article.
Ha. I'm 42 and currently working on an online version for the card game Dominion. Paid. So it's not a game I invented, but still pretty cool, and very different from the work for banks I've done the past couple of years.
On the other hand it's going to be harder to land them. My sister, who looks younger than her mid-30s, was at a job interview wherein the founders told her they didn't want any "old people", meaning people over 30.
Any company so dense that they make statements during an interview that open them to legal liability is truly a company you don't want to work for. Because I guarantee there's a whole host of other stuff they aren't supposed to do as employer and aren't aware of it. Little stuff like, I dunno, "no, you can't put that in an employment contract and ask people sign it" or "actually, that's not how payroll works in this state".
Specific to your sister, if they don't like old people, I'll bet they wouldn't be fond of having girlz in their frat house, either. Unless she's cute, of course.
Sure you can blame people for not keeping up with their skills and knowledge set like mikestew, but a lot of times this is not what you're interviewed on. Its like interviewing companies are so lazy as to not check your references. Most of the time if the interviewer is knowledgable they should be able to weed out people that are lying on their resumes. Maybe the problem is not with the people lying on their resumes and people that are doing the interviewing.
If I could do it over again, I probably would have gone down a different career path and programmed as a hobby.
Really? While I'd love to program as a hobby, I don't know what I'd do as a job then. For me, programming is easy money. I have no what else I could do. Game designer perhaps. Or musician. But those are really better kept as a hobby.
The latter is funny, as when I started out (and maybe even now), I was always up for putting many hours into the product I was working, but only if it was worth doing and interesting to me. What I quickly learned was that these projects did not exist, especially at larger companies, and if they did, they were almost impossible to join. And even then, once on the project, political BS and favoritism could easily leave you working on an irrelevant/meaningless feature.
The reverse of "aging out" ("they're young, so they're stupid") is what I experienced when starting out.
While at eBay, the idiot managers did everything in their power to try to paint me as a stupid know-nothing and would constantly try to box me in. Whenever I did anything that showed ability, knowledge, etc, they'd freak out and try even harder to stomp me out. Working longer hours (or having to work longer hours) wasn't a display of anything other than me inconveniencing them and other employees, as now they have to stay late as well. Then right in line with such accusations, there'd be claims I'm not working enough, am a slacker, am always late (these Bay Area companies have a "show up and leave whenever you want" policy, but then magically everyone is always late), etc.
While at Google (2010), there was nothing but crap to work on, then later there'd be statements along the lines of, "you won't really be able to work on anything until you're a Senior Software Engineer or a Staff Software Engineer, as it's assumed anyone at the Software Engineer III level or below doesn't know what they are doing." There's always an excuse or some BS explanation as they tried to trap everyone into working long painful hours on nothing special, while dealing with endless BS.
Google was strange. There was overt discrimination based on age (older folks would complain about it, but then turn around and say the above about younger ones), gender, ethnicity, school attended, and anything else they could use, but it's magically never been mentioned publicly. They'd also talk down to QA Engineers and contractors like they were nothing.
Google was swarming with off-putting, arrogant, anal retentive pricks that would use everything as an excuse to say the most insulting garbage. It was a hellish environment in which many were on edge (anxiety) or miserable (depressed), while working long and hard on an irrelevant part of nothing special (something that's also magically never been mentioned publicly).
This is just a theory, but I think we've got a situation where there are about the same number of software engineers out there looking for jobs as ever, and there are about the same number of jobs as ever, but for some reason the system has evolved to where applicants have to apply to a much larger number of positions than they used to, and employers have to screen a much larger number of applicants. When this happens, applicants get much less picky about the positions they apply for (and have to get less picky) and employers end up screening on more and more arbitrary criteria.
Part of this might just be what you could call the "online dating" problem, where the problem is that the technology has made it way too easy to make superficial contacts, so contactees get super-dismissive, and contactors decide that if they're going to continue playing the game they're just going to have to make an even greater number of superficial contacts, contactees get even more dismissive, and eventually everybody just gets really jaded.
Another part might be (and I should stress again that I'm just hypothesizing here) that because there are so many applicants for each position now, that there is, almost by necessity, a screening layer of professional HR hiring people (not just the classic recruiters, but "sourcers", recruiters working directly for employers, full-time HR people who specialize in hiring, etc.) And it's actually a real problem because these people aren't, in general, competent to be screening applicants, and indeed can't be, unless they are former software engineers themselves.
Bingo. Unfortunately, in a situation where it is typically in both sides' best interests to play to their strengths and hide their weaknesses as much as they reasonably can (and sometimes more), it is hard to see how to fix that problem. I suspect the rules of the game need to change, so that technical experts are involved much earlier in the process, even if it means staff with software development or related roles have to step away from their normal work now and then to participate in recruitment activities.
I totally agree with you. In an ideal world (at least a better one), I imagine it would go something like this:
Engineering: We need to hire some more people.
HR: Why are you telling us? That's not our problem.
Engineering: ?!
some time later
Engineering: OK, we've found a guy we want to hire.
HR: Excellent. We can take it from here.
Note: I am not exaggerating for effect here. I am totally serious. The hiring of engineers should not be an HR problem.
I've never applied to a very large company via the equivalent process myself, only wound up in them through other means. However, seeing from inside how things have sometimes been handled, with HR/legal driving the process and technical people taking a back seat, I can't say I'm regretting my life choices here. :-)
Is this in the US? Because I don't think it's global. I live in Netherland, and I never have any problem finding a new job. I don't know any unemployed programmers, and a lot of desperate recruiters.
Maybe it's the result of Netherland neglecting to invest more in STEM education, and underpaying programmers. Managers tend to get paid better than programmers here, so that's draining the programmer population, keeping demand high.
To me, software is only a tool to get where I want. The potential is the products that I can produce, not the actual career of writing software, and I'm bringing my 30 years of business knowledge to the table.
I know what businesses want. I know what steps to take. I know what kind of relationship a business wants with their software vendor. Case in point: my current project is a very mature industry where the current market is 40% larger companies serviced by a couple of large ISVs, but 60% of the smaller companies can't afford these ISV platforms and rely on a few old outdated packages or roll their own. My sole client now is a very small operation but she's got great insight to where she wants to go and what functionality will take her there.. like social media integration, ongoing customer touches, SMS, etc (which the current crop of platforms don't have), which makes her the perfect first client. And she feels comfortable that I can become a good partner of hers because a) I know what to do, and b) I don't bullshit. And yes, she's very aware I'm 57. So what. And, unlike the younger developers, I've got a little money and security backing me so I can take the time to develop the platform full-time.
I know I can't get a job, but I can make one. What other industry can you do that at 57?
This is Netherland, though. The situation could very well be different in other countries.