|
I’m still under 50, and during the last 25 years I work as software engineer (the title does not really matter because most of the time I work as a consultant). What’s next?
Software Engineering is a very competitive profession. The question is if I can compete with a 30-years old software engineer from Bangalore? Should I move over? As of today, I do not have problems with employment charging at least five times more than most of the young offshore programmers. Will it last? Yes, for a while. I’m a down to Earth person and realize that if you lock me in the room with a 30-years old programmer and give us 30 minutes and an assignment to write a program that uses linked lists without using Google, I’ll loose. They are faster. They type as typists... Fifty characters at the speed of sound, then 30 hits on Backspace...and then another 30 at the speed of sound...They know the names of the classes and methods in these linked lists, but they are not always sure when to use them. They pass technical interviews easily by studying the API. I wrote a "bestselling" article with these kinds of interview questions that was read by about half a million readers. What a success! But read the feedback to this article - it gives me goose bumps.
Do I want to become a young programmer again? No. I’ve been there already. I’ve been programming at 25, at 35 and at 45. I’m better now. I’m wiser now and I’m happy to move forward, not backward.
Yesterday, I’ve been doing my taxes with my accountant who is older and wiser than me, and somehow the same question came up – do you want to be young again?
He said, “Young - no, but I want to be 40 again”.
Why?
“I just like the look and feeling of myself at 40.”
But you can exercise now and improve your look and feel.
“I know, but at 40 I did not need to exercise…”
Once in a while I started getting rejected by employers. Ten years ago it was never the case. Getting a job interview ALWAYS meant getting a job. Now situation is different. These days I’m being offered jobs without being interviewed. I have a big mouth and just googling my name generates lots of materials (noise too) that often gives some managers enough reasons to hire me right away. But once in a while I’m getting these multi-person technical interrogations with poking needles under my nails. Recently, I went through two hours of interviews with a large financial firm. To my own surprise I still knew the answers to all the questions. And they have not been shy. This was a Java interview, but the guy asked me, “What would you do if you had to send a message using MQ Series, and you have a message in the ASCII encoding on one end and EBCDIC on another. How do you like this under-the-belt question? Anyway, I knew the answer, and said that since we're using JMS on the Java side, we can cast a generic TopicConnectionFactory to IBM’s implementation and set a parameter (do not remember exact name) to specify that there is non-JMS reader on the other end of the queue. I know this because I did it back in 2000. The interviewer exclaimed, “Did not you guys have MQ administrator? There is a configurable parameter that they could have set on the queue, so you would not even need to do it programmatically!” Then he revealed that he’s working with MQ Series from version 1.0 (more than 10 years). What can I say… I know, I did well on this interview, but I was rejected. The guy who sent me there simply said, “They decided to hire someone else”. I can think of two reasons – either “my failure” with the MQ guy was crucial, or I just was too expensive comparing to other candidates. No sweat. I have more projects on my plate than I can handle. Moving on…
So why employers still hire me over the younger and less expensive candidates? Because they want to have insurance. If everything goes as planned, young programmers have no problems. Now raise your hand if your last five projects went as planned… I’ve been working with well trained young programmers, who just panicked when they needed to provide a solution to a production problem in a high-pressure situation. Employers want to make sure that the project will move on if something unexpected happens down the road. They want insurance because a failure of the project may hurt their career too. That’s why they hire me, and I’ll do my best to make sure they succeed. This is THE ultimate goal of any seasoned consultant – make sure that the hiring manager succeeds.
All right, this is good enough for this morning, it’s time to get ready for work.
Disclaimer: I wrote this blog after reading a small and very smart book called Tuesdays with Morrie . My 12-year old son has read it by accident and said that adults can read this book too. I highly recommend you to read the book, and then you might want to re-read this blog again.
Only in software industry. I can imagine a physician with 20yr experience
being hired into a new hospital. "So, what is a scalpel? Explain the
vasectomy in 5 simple steps? If there is a room with 3 lights and 1 switch,
how do you find out which one is what" Or a commercial pilot. So, whats a
plane. Tell me in detail about your last plane landing.
The success rate of Software projects is abysmally low and lot of money is
wasted on half baked semi-finished projects.Their is difference in coming
up with disjointed pieces of brilliance and to completely deliver a
product which can make business sense.
We all know the its code maintenances and support which costs more than
code-production.But still Managers are always trying to hire cheaper
alternatives.
I think the root cause of this are MBA's ,as these MBA
programs teach everything in financial equations and so these managers stop
using Common sense .They think that any kind of work can be completed with
any kind of people regardless of experience if they will wear right kind
of hats ,White Hat-Red Hat and what not.
Tim ,i am from India and situation hear is no different ,here also people
move out from main-stream coding after 3-4 years and go to Management
side,so by the time a person matures as a programmer he has to move out as
a programmer salary can't go beyond a limit and organizations starts
thinking that with this salary they can hire two new coders.
Unions can't help and also don't think that this problem is because of H1
visa holders.The problem is in Top management mindset that volumes can
drive profits and so quality does not matter.
This is discouraging.
Discouraging? Aging Programmer? Under 50? Almost 30? I've been in the
"programming" business since 1966 and have seen many, many changes in the
technology and the job market that follows it. Over those 40+ years,
because I enjoyed the work and also because I wanted to stay competitive,
I've pretty much kept up with the technology and become an expert in those
areas I enjoyed the most. I now work as a Consultant/IT Architect for IBM
(since Oct 2000), providing programming, database, architect, and technical
project leadership services for IBM's clients. I'm continually surprised
at how little of my range of experience I'm allowed/expected to contribute
and what little productivity/contribution expectations the client has.
I've always enjoyed being challenged by the technology and project delivery
expectations, but have a hard time finding those challenges now. As Ed
Yourdon says in "The Rise and Fall of the American Programmer", I've become
a wise "Old Goat" who likes to contribute timely, significant innovation
and efficient, high productivity to a project, rather than a "Young Turk"
who is "paddling like hell underwater" to move slowly across the pond. I
like to describe myself as "a dedicated 'agent of change', facilitating the
technological and cultural changes necessary to assimilate both existing
and emerging technologies".
Yakov, I'd be interested to know wether your MQ question was part of a
group interview or a one on one.
Chris sadid "Maybe working for a major IT company like IBM is different,
maybe they respect older programmers experience more. Maybe not. again, WTF
".
Is a programmer just a programmer? Or is he a consultant, IT architect, or
software engineer? Programmers who have only a rote learning of a
programming language have no job security when it comes to out-sourcing or
off-shoring. It is the analytical ability, engineering/design skills,
business/application experience (BI, CRM, SCM, etc.), innovation, and
problem-solving ability that provides "value added" to job security. Those
that have -- and can market -- these attributes will always be in demand --
they don't need job security. They will always land on their feet, usually
running. In the dawn of the "programming" career path, potential
programmer hires were given "programming aptitude tests" that evaluated
logical/analytical ability, innate innovation and problem solving skills.
IMHO, not many of the programmers entering the field since the mid-1970's
(when such tests were discontinued) could score well on these tests. In
programming productivity, it is my experience that the old "80-20 rule"
applies -- 80% of the work is done by 20% of the programmers and 20% of the
work is done by 80% of the programmers. And then there is the top 2% who
are super-programmers and are an order of magnitude more productive -- and
more "job secure". They can show the client/employer "a better way",
rather than just helping them do "what they've always done". It is more
difficult to "off-shore" those skills.
BK said "One more thing, software shelf-life is now about 3 years. Reason :
technologies evolves rapidly." Then, how come there is an estimated 50
billion lines of COBOL code in critical business applications that have
been around for 10, 15, or 20 years. Large corporations still hire little
"armies" of semi-skilled programmers (and a few highly skilled contractors)
to add a few new technology advances and a LOT of new business
functionality or enhancements to gain competitive advantage. The "armies"
are in danger of being out-sourced and/or off-shored. Accellerate your
career path to become a highly skilled contractor or "golden handcuffs"
employee before that happens. Or ... join a "white collar union". BK also
said "poor software quality is an issue since we are using young,
inexperience and arrogant programmers who made the SAME mistakes ... over
and over again...". These are the "armies" I'm speaking of. Programming
is an "engineering discipline". Today's programmers are the equivalent of
yesterday's "draftsmen", who produced the working drawings of the design
work of architects and engineers. If there isn't a sufficiently skilled
software architect or engineer involved in the design of the programming
project, it is doomed to failure ... or worse, partial success with poor
quality software and lots of problems/errors. These are the "blue collar"
programmers who most need to fear off-shoring.
What we are seeing, since the mid-1970's, is the "commoditization" of the
programming profession -- a higher number of lower skilled "software
engineers" (titles are cheap) to do the same work as a smaller number of
higher skilled programmers. What we really need to do to combat this
job-destructive trend is to revitalize our education system from "No Child
Left Behind" (NCLB) to "Every Child Inspired To Excell" (ECITE). Go beyond
the rote skills to teaching innovation and problem solving skills --
self-motivation and self-actualization -- teaching basic
career/professional skills that are more difficult to off-shore, not rote
"job" skills. Change the perception of the job seekers market from "how
much money can I make?" to "what kind of innovation/productivity/value can
I add?". Produce more "Intrepreneurs" than "worker bees".