What keeps me in the software programming field? What is it about developing software that keeps me from jumping ship and going into a different career field altogether?
Lots of people do mid-career shifts and do exactly that. They suddenly realize the career direction they were going is unsatisfactory, and they decide to do a course correction and try something brand new and end up being happier and more satisfied with the career change.
I’ve been in the software programming field for about twenty years now. It’s a long enough period of time that I can confidently say it’s a CAREER and not a flash in the pan.
Lately, I’ve been looking back at my twenty-year career and asking myself what keeps me in the field.
I think everyone can benefit from asking this same question about their own jobs and careers. One, it’s never a bad idea to take pause and see where your career is heading. Determining whether you’re just going through the motions of a job or confirming you’re doing what you feel happy and satisfied in your work, is a worthy and worthwhile question to ask.
I remember taking one of those personality type tests by a previous employer. It’s one of those questionnaire type quizzes where you answer a bunch of questions the determine your core personality type.
What I found out from the test results is I’m a person who likes stability and dislikes change. Sudden surprises really make me uncomfortable and I like to think and analyze things thoroughly before making major decisions.
While this helps me to avoid making rash and ill thought out decisions, it can also be a hindrance. Sometimes it can be detrimental NOT to make calculated risks and decisions.
So I try to force myself to constantly question the life decisions I make for myself, and I’ve come to the conclusion that I truly do feel like I made the right career decision by staying in the software development field.
Of course, the next logical question is to ask myself WHY I feel this way.
And there is no one single answer to this question. But I have been able to identify several major reasons that all contribute to my decision.
For one, at the very basic core level, I’ve always gravitated towards technology. I grew up around the dawn of the personal computer age in the late 1970s and early 1980s.
In history class, we learned about the industrialization revolution of the early 20th century. Manual labor was slowly but surely getting automated with steam and gasoline powered machinery, and it caused a major upheaval in the way Western society evolved away from an agrarian and rural farming existence, to one where technology and machinery replaced manual human sweat labor. The Industrial Revolution truly transformed society in ways we are still feeling the effects of to this day.
The same could be said with the dawn of the personal computer age. Computers and the Internet have integrated themselves so tightly into our society, we practically have taken it for granted.
It became clear that the introduction of personal computers, and later, the internet revolution have caused major upheavals and new opportunities. Just take photography for an example. For those of you even old enough to remember, when was the last time you actually had to drop by a one hour photo processing business to get your pictures developed from a camera? Digital photography and our smartphones have completely eliminated that business.
How about those bulky massive telephone books that used to arrive every so often on our doorsteps? The internet and smartphones have completely eliminated the need to publish those tree-killing telephone directory monstrosities.
When was the last time anyone even dropped by a video rental store to rent a movie on VHS tape, or DVD/Blu Ray disc? Internet streaming technology has completely eliminated the need for physical entertainment media. Kindles and other e-book readers have eliminated the need to purchase paper books.
There is nowhere where modern technology has been truly embraced more fully than in the modern corporate work environment.
Every modern organization these days has an Information Technology (IT) department. The IT department’s mission statement is to make sure that modern technology is used in a way to help maximize the revenue capabilities of a company.
Pretty much every employee with an IT department gets issued a computer device, in one form or another … laptop, desktop or at the very least, a smartphone device, to help the employee do their job.
Every employee gets an e-mail address to communicate with people inside and outside their organization. They have Internet access because they need to have the ability to conduct research and use web-based applications essential to their core job functions.
It is crystal clear that gaining knowledge of technology in this day and age is a highly valued skill. Highly valued skills translate to very financially desirable wages and income … Economics 101, if you can SUPPLY a very in DEMAND skills, you will get well rewarded for your efforts.
There is no question that learning technology in pretty much ANY career field, will benefit you in the long run, but especially one in IT. There are not many other career fields out there where recruiters are coming to YOU for new job opportunities, and not the other way around.
So that’s reason number one, the obvious financial compensation and in-demand nature of learning software development.
But as important as that is, and make no mistake, being financially well compensated for something goes a long way to making the lifelong career decision to stay in a particular career field, it’s far from being the ONLY reason.
It’s easy to take for granted what software programming is. But out of thin air, nothing up the sleeves, a computer programmer has the power of creation at their fingertips.
Programming a computer is the pure joy of creation.
Most of us loved playing with legos and lincoln logs as kids. With just a few basic toy pieces, we can create cars, airplanes, houses, anything our imagination can conjure up.
Software programming is not much different, except we play in a digital sandbox. Once we know what the capabilities of a specific programming language are, we have the tools necessary to build things.
That moment when you finished creating something out of air with your computer and it actually WORKS, is a feeling of pure magic. Even after two decades of working in software development, I find no greater mental satisfaction than creating new software that does what it’s supposed to.
Closely related to the act of creation is the knowledge that your new creation is actually helping others do their jobs.
That is essentially what I do for a living. I use my knowledge of computer and software development to help solve problems.
The majority of my day to day activities usually revolve around this. Every new project involves some sort of business problem. Either to save time, make something more efficient, or help increase revenue.
Software has the power to do all this and more. When we see a person’s face light up in joy when our software application helps them do their own job more efficiently, it makes all the countless hours of laborious development, testing and debugging worth it.
Software programming is all about puzzle solving. Each software project introduces a brand new puzzle to use that we have to bear all our mental resources to bear, to solve.
And lastly, software development is a neverending quest to learn new things.
Technology is always moving forward. In software development, you can always count on one thing….everything will change.
There will always be a new programming language around the corner. A new software library. Or framework. Or some new methodology like agile, scrum, lean.
There are not many other careers out there where every day is a new learning opportunity.
In fact, learning new things is an absolute necessity for a successful software developer. I have personally seen the negative consequences of software developers who refuse to learn new languages, new technology, new development methodologies. Sadly, it usually ends up where their skills are no longer needed by an organization and they end up getting laid off or fired.
Not many other careers require you to constantly learn new things. Software development is one of those rarified fields where every day is a brand new learning experience.
These things pretty much summon up why I’m still developing software after all these years.
And as long as my hands can still fly over the keyboard, I hope to stay in this field for as long as possible.