If you want the youtube version of this video, just click here and enjoy.
Edit: I have received a great deal of feedback on this post. An addendum is posted at the bottom.
TLDR; You want to know one method of becoming an unemployable developer? Stay stagnant for a reasonable amount of time. Doing it unknowingly. Worse, do it knowingly. Watch as you disappear.
This statement may be incorrect (do correct me if it is) but it seems to me that technology is one of the fastest moving fields, very broadly speaking, that anybody could find themselves working in. Perhaps not the fastest. It has to be pretty high on the list, though.
Raise your hands: how many of you remember the days when jQuery was all the rage? Do not misunderstand me, jQuery is still used and has a relevant place, but would I be wrong to state that it is not what it once was?
I remember when Mongo was this new fangled shiny database that was garnering all kinds of attention.
These are things that only changed in the last few years, maybe less.
Anyways, why do I mention this? If you read the title then you can probably hazard a guess. As a matter of fact, it may be redundant to write anything more.
But it seems important to provide at least one example of a developer whom I know and how she found herself in a bad spot.
Perhaps this article can serve as a warning to other developers out there.
This developer was in a constant battle at work. She called it "firefighting mode" and it almost never went away. I will not give specifics because I do not think they are important to the point. Suffice it to say, she had to struggle with a bad code base and bad data structure and bad management, among a few other things.
It was a difficult challenge to make progress against these thing. She would go in to work in the morning, struggle all day, then come out at the end of the day feeling frustrated and unwilling to do anything else. It was emotionally draining.
However, despite that, she was consistently focused and active in trying to make things better. Sometimes that meant some overtime hours. Sometimes it just meant she had to step away from the screen for the day and not look back until the next morning. Commitment to the cause is definitely one of her strengths.
At some point, the she realized she could not keep working at this company anymore. Progress wasn't being made (or it was too slow coming) and she had to quit.
Unfortunately, as she began looking around at her options in the tech industry, she rapidly realized she was massively out of date with the skills being asked for. She had spent two years of her time focused on keeping up the status quo for the company she was at that she didn't realized how much ground she was losing outside of that.
She ended up having to take a lower role with lower pay and she only got that job because a friend of hers worked at the company she applied for and vouched for her.
This is what happens when you're not paying enough attention. If you don't look at what's really going on around you then you risk becoming stagnant. You risk allowing yourself to fall out of date and become far less useful to the industry because you haven't been able to keep up.
This doesn't mean you need to be coding 24/7 and doing a zillion side projects and submitting to open source code all the time.
It means you need to aware enough to realize when you're not feeling the pulse of your job anymore and have the sense to do something about it before your pulse no longer matters.
Based on the rather large feedback I have received, I want to clarify that this post has some value to those in the web development space. Web development is somewhat of a hot mess right now and there's always something shiny and new and employers are changing their requirements rapidly. But there are plenty of sectors in technology that do not move that fast and where you can stay focused and safe for, sometimes, years and years.
Top comments (31)
There are elements to this that are true, but part of it is also a fallacy. Why? Because no matter how much we like to think new tech is different, it's often not. The saying goes, there's nothing new under the sun. I've worked in tech for 25 years, and been dabbling with programming for 35 and can safely say that there is very little that is revolutionary or groundbreaking. Some of it is a bit different to tooling or processes that have gone before, but if you're a competent developer, transition should be easy.
Good example: in 2004 I had an interview for a C#/.Net role. I'd never even seen C# before; my previous 10 years were C++. I spent two days learning C# over the weekend and aced the interview on the Monday.
The main skills you need for a job are to be able to communicate with your stakeholders and team members, to prioritise your time, and to be able to learn stuff reasonably quickly. Trying to get into a hamster-wheel of feeling like you have to learn every new technology that comes along to stay up to date means you're on a hiding to nothing, and will simply exacerbate your imposter-syndrome affliction.
Corporate hiring manager asks a recruiter: "Why am I having so much trouble finding a local programmer to maintain our 15 year old (VB6/PowerBuilder/Visual Foxpro/Access) application? The old developer retired last year to run a goat farm and we can't find anybody and we are willing to pay top dollar."
Old tech jobs are out there in decent numbers if you can stomach working with crumbling, fragile, code bases and out of date tools. I don't think you'll not find jobs if you don't stay current but you may not like the jobs you find.
To be honest with you, the company should have been prepared for the old developer's departure and began migrating to newer technologies. Young developers care a lot about their careers and they are not ready to work with obsolete technology.
In several cases I've seen a long time developer left unexpectedly. In more than one, it was because they became disillusioned with management and took an early retirement or just left for another position with no advanced warning. In others' it was a health issue, either their own or a family member. In all cases, management did not plan for them leaving effectively.
BTW, most older developers who are staying current don't particularly like to work with obsolete technology either. We sometimes do because we worked with it when it was new but we don't want that to be a significant part of our job.
That is very true, I work at a company where the majority of the codebase is in Fox Pro, it's very hard to find people with the knowledge and willing to work with it, almost no one wants to get even close to it.
Fortunately I'm not working directly on Fox but I don't think I'm gonna last a lot longer here.
Oh my why did you mix so many databases in the first place :) I knew MSAccess very well and still use it sometimes but in secrecy because you know in Big Corps they disdain it as toy and prefer to use Java / Oracle even for less than 10 users. Well at least it makes my bread and butter as the project last months and even years I'm paid for managing its development. I find this corporatish mindset silly though because it's waste of Money and Time.
One thing that I've found in working in areas like manufacturing and logistics for about 10 years now is that while corporate IT may dictate a particular platform they often come up short in providing application services to users. So, marketing goes their own way with a web development outsourcing firm, engineering hires in a group of contact programmers to do their work and so forth and so on in every department. Within a short time there's a hodgepodge of applications that are essential to keeping the lights on.
There are different idea's about keeping relevant as a programmer though. Some people argue that you should run your private projects, develop in your free time, get your hands dirty on all things new. I personally don't do anything like that! I have a full time job that demands all my attention and energy, and I have a social life with friends and family. Yet at least I try to have a global sense of the latest trends.
For example, I've never worked with Redux, but I've read articles and watched talks so I have enough knowledge that, if I have to work with Redux, I can be up and running in short time. That's enough for me.
Fun thing is, more and more devs started to criticize Redux lately for not being the solution to every problem, where not to long ago Redux was like the holy grail of state management. By the time I switch job, Redux might not even be that relevant anymore.
So yeah, don't be a stagnant developer. But also don't be a developer that's burned out by a pressure to know all things hipster and wasted too much time on learning everything.
My intro to programming professor at university told this when we asked him why we are being taught C and not a "modern" language like Python or Java (it was 8 years ago) : "Programming is like learning to ride a bicycle. You learn to use one, you can use any other with a minimal amount of relearning.". I believe that this advice still applies. To rephrase it : 'Do not chase after technologies. Learn the fundamentals. Most "new" technologies are just reinventions in a hype cycle.'
C is still pretty much used in a lot of places, specially in embedded due to the boom we've been having with IoT. Some technologies may be old, but that doesn't mean they are useless.
Aside of that, I 100% agree with your. People think that they need to always catch up with the latest JS framework or they'll be out of the market, that's a bad thing that the ever
breakingchanging web dev community developed in the last years.
Keeping relevant as a programmer is like being a high performance athlete or a stage artist. It can be highly rewarding but also frustrating and even hazardous for your health. There's always a toll to pay.
I think you made some excellent points, and when choosing a position you should also look at whether the the employer is good with keeping up current with industry trends as well. That way you get good on the job experience.
IMO I think that's more productive then say, small side projects. You get a more in-depth look at complex issues that you have to come up with solutions for, then you would superficially taking a look at a new technology just for the sake of learning it.
I have a similar story:
When I left school, I started working as a Lotus Notes developer, and administrator afterwards. I switched jobs quite a few times, but I always stayed in the Lotus/IBM world as this had become my area of expertise. I wasn't the most sexy or modern technology, but it paid quite well as people with this kind of expertise were hard to find.
A few years go, I got tired of working with Lotus technology (mostly in a sysops-role). IMHO this technology is way overdue its experiation date, and I got frustrated that I didn't get the chance with more "sexy" technologies. I was applying for other jobs but I never got hired as I didn't had the required experience with new technologies (I was trying to get into the cloud-computing areas).
I took quite a drastic and impulsive decision: I quit my job. I started doing AWS courses on my own time and money, and earned my AWS certifications. I decided to give freelancing a try, and went scouting for cloud/AWS projects.
The first 2 years were hard. I had my certifications, and despite the fact that I had a lot of experience with sysops in general, companies were reluctant to hire my due to lack of AWS experience. So I "under-priced" myself a bit, and luckily I managed to get a few projects and prove hands-on that I knew this stuff.
I'm now freelancing for almost 4 years (I'm 39 now), and I'm happy with what I'm doing now and I no longer need to "under-price" myself.
This way of performing a career-change is not for everyone. If you want to go this route, my advice is:
Still, I do not regret my decision and I would never go back. So far my freelance experience is going great. The first 5 months however, were the one of the most stressful months in my life. I'm not sure I would be so impulsive again.
Good advices. It's true companies are dumb shy at recruting programmers with no experiences that's understandable. When I had my own company in the past I had helped people find job by recruting them for getting some experiences in it then they were recruitable after that :)
In a moving world, if you are not going forward, you are going backward.
However, keep moving always drain your power and at a time you gonna be with empty battery and you will lose your willing to keep moving forward, sadly.
You are right. So when you are tired, choose a world which is moving slowly and walk forward, still.
Very few are cool and efficient and are popular from the very begining for years.
Depends alot on what position(s) you are and what you want for yourself on the long run.
Personally, i don't see IT verry well. For years it has kept reinventing the weel with every single new technology that appeared. Instead of having just a few languages to give us the power to do anything, we have zillions of languages + platforms + frameworks + various libraries and third party thingies that make up a "full stack". Keeping up to date is a bit too tedious as it appears like reinventing the wheel every single time. And honestly, i don't see many benefits coming from it.
The direction of technology, in general, is influenced too much by the commercial side and too little by general common sense. Now, there may be some technologies en-vogue because there are few people that are good with them. But in a few years, as more and more will learn, their value will decrease. So, to keep up a great value, some new technologies will emerge and will become more valuable. Does this mean that the old technologies won't perform anymore ? Surely not, they will keep doing their thing as well as before.
What i've learned from my experience as a professional - you should pick clients that are happy with the final project done and working fine, and just that. If your client or company is pressing you to use a certain language / framework / tool / whatever ... you should seriously think about if it's worth for you on the long run. And no, don't think only about the money. Think about the stress and how it will affect your health on the long run.
On the other side, if you really really want to work for big companies with verry tight workflows and such ... then yeah, you have to just accept that you have to learn new things round the clock, no matter how useful (or useless) they are.
I agree 100% because I went through a similar situation.
After working for 5 years for a corporation, I realized that I either need to RUN from that company or DIE there. 2 years prior to this realization, I went to a job interview and I BOMBED! I couldn't understand why I sucked so bad in that interview, because I was a top employee (PHP Developer) in my company!
So after that interview, and for about a year, I worked on catching up after work hours. It took me around ONE year to catch up a little bit and then I went to another interview. This time, I did much better, but still, I didn't pass. Both the interviewer and me myself realized that I need some more time to catch up.
So couple of months ago, I left the company and started freelancing to finance my catching up process. Getting rid of all the "corporate junk" is really paying off almost a month after quitting. I feel much more refreshed and focused.
Don't wait to die, it would be too late. As soon as you smell the stench of death, RUN AWAY!
Totally, and I also would say that it depends on your environment. In a city/country with lots of traditional (tech-)companies, you might actually get away with legacy-knowledge all your career. I'm from Munich, and know people still rocking Perl. On the other hand folks in smaller towns and parts of the country struggle some more.
This is an article every 20, 30, 40, 50 and 60 years old IT professionals should read!
Nope. Completely disagree. While its certainly amongst the fastest moving professions, not all that much has changed in the last twenty years. Sure massive shifts happened in the year, decades before y2k but nowadays not so much. There‘s always the hot new thing of the month, but if look behind the curtain and its just more of the same. Except someone took the time & money you had not and now its hot and you can use it and benefit from it.
In the last deacades programming languages, processes, tools, etc have largely remained the same. oop, ddd, eventdriven, agile, dvcs, functional, ... all invented and used ages ago. Nowadays all we do is refine the status quo.
Take kubernetes & serverless for instance, its just automation of what we used to do and does what we were dreaming of doing twenty years ago. And there is still so much of what we dream of that it does not yet do...
The only thing that does expire in an instant is your expert level knowledge of framework X at version x.y.z . But if you define that as your skill barometer you’ve already lost. You‘ll be forever running to stay current.
The trick is expertly applying stuff you do not yet know or have just grasped. As a programmer we almost daily have to work wigh new code, concepts, frameworks, ... you name it.
Today maybe even more daunting is when you have to work, interop, replace old stuff. That COBOL,FORTRAN,... may not be new to the world, but it will certainly be to you. Except it not cool and the web has forgotten about it, so you‘re on your own.
Thats the nice thing about the new, the shiny: there are a ton of superb free courses, documentation, examples, millions of lines of exemplary code.
Its easy to learn the new.
I think you are misreading the Lesson. For me, the Lesson here is: if you don't want to be a firefighter, don't volunteer to the Fire Department.
Plus, two years isn't enough to lose that much ground on any dev-related field. Chances are she didn't have enough ground covered to begin with.