I am already old, and my experience interferes with my work, or Why is it difficult for older people to work as programmers

I'm old. At the same time, I am at ease with myself. I don't lie at night worrying about my old age. But I understand very well that I am definitely old - at least in terms of programming. Most non-programmers would laugh at the thought of old age. In many fields, being in your mid-fifties means being on top of your professional skills. But in software development, anyone over 40 is often viewed with some suspicion. People over 50 often drop out of the resume pool. It's good for someone in their 60s to have a very solid retirement strategy. But this article is not about the definition of "old age" or bias towards the elderly. This article is about how "more experienced" developers often have a harder time adjusting to a particular job, task, or environment.














This is not just a bias. This is reality. I experienced it myself. I've seen it on others. I felt it in my soul. Don't know if this article will help anyone. Somehow. But I feel obligated to name some of the reasons why it’s increasingly difficult for old people like me to just fit into a job, let alone succeed in it.



I do not claim that I speak for all old people. And I'm not saying there aren't some aging developers out there who thrive quite well in their environment. The following observations are mine and mine alone. Your experience may be different.



Fatigue from politics



When I was younger, I was happy with all the standard corporate politics games. Hell, sometimes I even enjoyed them. But now ... Well, let's say I have become the polar opposite of a political player - and my unwillingness to “play along” often causes tangible problems in my work.



I used to work in management. At some point, I had 60 developers, organized into 6 teams, who reported everything to me. At the time, I was much more concerned with getting my verbiage “right”. I was much more inclined to spend hours writing reports (which I knew they would not be read) and ticking audit boxes (which I knew no one cared about).



About 5 years ago, I deliberately left the leadership. I wanted to be just a coder again. Get away from politics as far as possible by allowing yourself an overdose of code. But a funny thing happened on my way to just a coder. Politics seems to have followed me.



On the good days, all I did was stare at the IDE. But for too many days, I understand that I am expected to tell the leaders exactly what they want to hear. For too many days, I am still immersed in meetings and endless administrative details. But all too often you have to tell the management what it wants to hear.



Since I am obsessed with this, you may get the impression that I am one of those moody old men. The kind of guy who complains about any solution, no matter how trivial it is. However, I don't think such a label describes me at all.



I am perfectly happy to talk to "business", "customers" or "stakeholders." And I can usually talk to them in such a way as to avoid tech chatter and not humiliate anyone. People can ask me about any dubious results - and I calmly explain to them, amateurs, what they can have unpleasant unforeseen consequences in the future. For weeks or even months, these interactions do not give me any problems. Then it happens ...



This is the moment when someone wants you to do something in the code that is literally completely meaningless.



But people don't just tell you to do it. They fervently ask your opinion. They insist on making you feel like you've contributed, even when your only logical contribution is to say that the whole idea is complete insanity. But you cannot tell them that. In fact, you can hardly tell them anything at all - unless it reinforces their original request. This is because people keep asking for your feedback. But they don't want your feedback. They want you to nod and do whatever they ask.



When I was younger, it was much easier for me to swallow my objections in such cases. And now? It’s easy for me to avoid insults or confrontation, but it’s not easy for me to formulate feedback in timid terms so that the tycoons deceive themselves into believing that I support their idea.



I'm not yelling at anyone. I do not use non-professional vocabulary. But you better believe: if you ask me what I think of an idea that is truly epic stupid, I’ll make it very clear that it’s a terrible idea. It's amazing how often this simple addiction causes trouble at work over and over again.







Aversion to turnover



With every year I slip in the rearview mirror, my patience with the ruthless fluidity of technology diminishes a little. I guess I speak like a dinosaur. But I am not complaining about training or the introduction of new technologies. Learning new technologies is usually fun for me, as it is for almost any programmer. I complain about (as I imagine it) the accelerating tendency to throw out established technologies and dive headlong into a new one - often for no reason other than the fact that someone really likes it or someone really dislikes the old one. If you've read my other articles, you may have noticed the frequent use of the term “fan”.



If you're promoting a particular technology but can't make a compelling empirical case for it, you're probably a fan. If you slander some other technologies, but the main argument against is that they are old or stupid, then you are probably a "fan". Fans can seem harmless in our line of work. But they can do real damage.



If the fan is some under-respected guy straight out of college, his irrational passions probably won't cause any real problems. But fans can be anywhere. Your manager might be a fan. The ivory tower architect who is friendly with the CIO might be a fan. A guy who has been with a company for the past 20 years might be a fan. Hell, even a CEO can be a fan!



And once a fan decides that he hates the technology you work with (technology that you've probably put thousands of hours into), and once his words reach the ears of the decision makers, it's only a matter of time before you rewrite everything or when you start looking for a new job.



This fluidity is not limited to high-end technology. It applies to NPM packages, for example. Or to the style guides. Or ... any trivial aspect of our work. And once opinion in your department “evolves,” you find that you have to radically change the way you do the job or look for a new job.



Wondering why something as commonplace as tabs and spaces can still infuriate people to this day? This is because there are people among you who have programmed using tabs or spaces for many years, and this has never been a problem. And then one day someone comes in and says: “Oh! I can't believe you are still using tabs / spaces! " Pretty soon, you'll be forced to follow the crowd in whatever trivial decision was made for you. Or you will be looking for a new job.



Please do not think that I do not want to learn new technologies (or techniques). Diving into something that promises to solve a problem, I'm as excited as the programmer next to me. But I'm not happy with switching from languages ​​/ frameworks / tools, etc., just because the old way is supposedly "dumb", and, presumably, a new fancy, brilliant solution will come to replace it.







The cynicism of experience



I can remember many times when, at the beginning of my career, my naivety was almost ... an inner asset. You see, sometimes I was too stupid to realize that I was being used. But in the process of "using" I also gained valuable experience. Or impressed people who saw me breaking my back to make it work.



In my 20s, any slightest suggestion of additional work would have resulted in me doing a 24-hour marathon of coding. Or work on the weekend. Any suggestion that we are using any (counterproductive and poorly supported) technology would lead me to dive headlong into the process of learning and implementing that technology. Any hint of stock options or future IPOs would make me think that I'm working for the next Google and could work for myself almost to death - because ... I'll be rich!



Today? Well, let's just say that I've become more discerning about my efforts.



I will (and often) work overtime. But as soon as I feel that my willingness to work overtime is being abused, we will chat a little. And if our team loses someone and the company's "decision" is to simply distribute the work among the rest of the employees - while maintaining all the deadlines, then I guarantee - I will very clearly tell everyone that I will not completely take on someone else's worker load.



I'm no longer happy with the empty promises of most companies (especially startups). If the compensation package includes some stock options, that's great. But if you expect me to consider these options as a main component, then I suggest that you start recruiting at local colleges. I have mortgages (plural here). I have bills and obligations. And even if I like your company, I will not like it enough that I would be ready to give up the salary at the market rate.



Here is another situation where my experience (cynicism) can sometimes give me problems:



Once you have a reputation in the organization as a seasoned programmer who can actually do something, you may suddenly find yourself having a lot of unofficial work requests on your hands. I'm talking about situations where someone outside of your team's pipeline comes up and starts saying something like, "How difficult is it to make a small change in this application ??."



A twenty-year-old Adam would be delighted with such requests. A few short meetings and I could work nights and weekends just to get some guerrilla project out of the way.



Sometimes I did it because I was in awe of the technology. Other times I did it because I wanted to please. Sometimes I even got in trouble because of it. But I have almost always found that improving my reputation with the company is worth any short-term blow.



Today I rarely indulge people who have approached me with such requests. You know them. These are people who believe that they can completely destroy the development pipeline by sucking up to one of the programmers directly. I had executives who tried to do this to me (they were, however, completely outside my chain of command). I have had young ladies who tried to do this to me, sitting next to me closer to their natural distance and smiling at me more than someone sincere is smiling.



Today my reaction to these people is always the same. I listen to them politely. Any immediate feedback that can help guide them is given. But, as soon as they want to nudge me to get work done - outside the normal development pipeline - I politely but firmly refuse.



This may sound like the "correct" way to deal with this situation. But I've noticed that as soon as I say no to someone, it tends to come with all sorts of long-term side effects. Managers told me in performance reviews that I was "difficult to work with." When I try to figure out where this estimate came from, it turns out that it comes from the very people who tried to get me to disrupt the normal course of things.



In fact, it's amazing to see stunned looks on their faces every time I say, in a professional and dispassionate tone, “No. I won't do that, "or" You will have to talk to the project manager about this, "or" You will need to discuss this priority with the client directly. "



For some people, it doesn't matter how professional or fair you are. They will still harbor anger if you dare to refuse them.







Little tolerance for ambiguity



Maybe it doesn't really bother the old people. Maybe it only worries me. I dont know. But I know that over the past two-plus decades of corporate work, my patience with blatant corporate duplicity has steadily waned.



To be clear: I understand that corporations have common turns. It doesn't bother me when someone says that we have to “touch the base offline” [transl. - touch base offline - restore contact with someone for a short time through a real meeting]. And “thinking outside the box” is a hackneyed (and almost meaningless) phrase, but when someone says these words, I guess what they are trying to convey.



But if you tell me that we need to make some "correct dimensions" [approx. transl. - right-sizing - reducing the size of the company by reducing the staff], it makes me sick. If you continue to preach to me about being a "destroyer" [approx. transl. - to be the person who goes against the system], I know that your idea of ​​"disruption" is for me to work at night and on weekends to realize your vision of the application.



If you ask me to accept an “event,” this is a subtle way of trying to give me a new job without considering the current project priorities. I could go on, but you already get the point. I really hated this ongoing need to support unpleasant ideas in some vague form of "new speech."



This frustration is especially striking when someone wants me to agree to a proposal - and there is no excuse for that proposal. I can talk quite a lot about most of the potential ideas. But if the idea just doesn't make sense ... I'll say so. And then people start talking about me as about some grumpy old bear who cannot be convinced.







Knowing your worth



How can knowing your worth be bad? Well, let me explain. In my 20s, I already had a ton of knowledge and pretty decent programming skills. But I had a meager resume - and it was very difficult for me to initially enter the profession. When you are in this stage of your career, you tend to think very carefully before you leave, or move to another job, or side with one of your colleagues. But it's been a long time since I was so worried about my resume.



I am happy to work in an area where there has always been a very high demand for my skills. And my resume is now at a level where I no longer worry about any particular post. This is good for the most part. But it also means that my willingness to put up with other people's shit is frighteningly small.



I recently had a contract job where my entire team worked remotely, but they wanted me to come to the office every day. So, I did not stay there long. I recently had a job where several executives were outspoken, violent racists. And misogynists. And anti-Semites. So. I did not stay there long. I once had a job where I was forced to do ridiculous, complex and time-consuming work to make sure my code was safe (including many check flags that did nothing to actually protect the application). But when I showed how easily I could hack into an employee database (and anyone outside the company can do the same), they didn't care ... I didn't stay there long.



Generally speaking, this kind of hypermobility is an asset. I mean, who wants to get stuck at work where some aspect of it has become burdensome ?? But the downside is that it becomes very difficult to justify talking to someone else's crap - even for a short time. Again, this is generally a good thing. But I've met other old people like me who just can't sit down and build a solid history with one company, because these companies always do something rude, unprofessional, or just downright stupid. Follow this pattern through 3, 4 or more employers, and soon you will have a reputation as this cranky old man who simply cannot "fit in."







Software like cutting dough



One of the most heartbreaking development trends of the past decade and a half has been the constant drive to reduce Programming to some kind of pipelined process. While I can understand the desire to improve on a complex process by making it simpler, the end result of this effort is that programmers are often treated like ... assembly line workers.



Listen, everyone understands this. Software development is difficult. And difficult. And dear. And time consuming. And I also understand that organizations are constantly looking for new ways to simplify these (inherently complex) projects.



But you can't build an important, brand-new app from scratch and expect to just hand off a bunch of overarching specs to the development team and have them crank it up the same way they build a bird feeder. You see, everyone wants to pursue the idea of ​​the Holy Grail that they can just brainstorm a large set of specifications, pass those specifications to the development team, and - voila - the application that they envisioned comes out.



I don't know how many times I have created a component and worked on the specifications, realizing that the client asked for something completely contradictory or meaningless. And that's fine - as long as I can ping them and have an intelligent conversation about the problem. But now, more and more often, interested parties just want to shoot me because of a bunch of specifications, and then they want me to go home until I have a finished product. Sometimes people are literally annoyed when I ask them questions. And even if they don't mind my requests, God forbid that I would ever go so far as to ask about the design they asked for.



Most people in my position don't just know how to write code. They know how to build a better application. They know a lot about what works and what causes end-user nightmares. Now I have no desire to be a business analyst or project manager. But the idea that I should never give any functional feedback on the design of the application itself, well ... that's just ignorance.



When I was younger, I made my meager proposals. And sometimes the clients even listened. But if they completely ignored me, I didn't care. I just did everything exactly as the clients asked.



But I admit that at this point in my life it upsets me as hell when a customer asks for something that I know will fail, or the product needs to be changed right after release, but if I bring it up in any way, there is irritation in their voice.



I even seem to hear them thinking, "Why doesn't this guy shut up and just build the app exactly the way we asked him to ??" Go through this process with enough clients and you will find yourself wondering why you even do what you do.



Conclusion



I could write another 100,000 words in the same spirit. But the post is already getting pretty long. For now, I just wanted to outline some of the reasons why older programmers can actually have problems with "modern" development departments. Not because they are "stuck". Not because they cannot understand the latest technologies. This is often because their own experiences are in some way working against them. I often noticed this when I looked at myself. I catch myself thinking: "How long can I continue to do this?" Because some of the stupidity that I face on a daily basis sometimes makes me very depressed.



image






  • Data Scientist training
  • Data Analyst training
  • Python for Web Development Course


More courses
  • «Machine Learning Pro + Deep Learning»
  • Machine Learning
  • « Machine Learning Data Science»
  • Unity
  • JavaScript
  • -
  • Java-
  • C++
  • DevOps
  • iOS-
  • Android-




Recommended articles



  • How Much Data Scientist Earns: An Overview of Salaries and Jobs in 2020
  • : 2020
  • Data Scientist -
  • 450
  • Machine Learning 5 9
  • Machine Learning Computer Vision
  • Machine Learning Computer Vision



All Articles