0

Core question: What kind of career security can be expected in the software field and how much time can one expect to dedicate towards staying relevant? And also are certain fields more vulnerable? (Game design vs Financial software etc.)

*When I say career security I mean it doesn't matter how long you are at a certain job it's more about if you keep the same basic job title / responsibilities.

Reason for asking: I am a student and during an introduction speech a teacher mentioned that career life in the field is short. His main example was that employers now want to hire software engineers over programmers and then explained some vague difference between the two. I am worried about just how short the career life is.

My understanding of the current situation -

Positive career security:

  • Differences in programming languages is mostly syntax and can be understood fairly easily.
  • A majority of companies avoid change like the plague.
  • After talking to some recent graduates of other schools I've heard that because of companies are unchanging that older languages are given new demand due to a need for maintaining software support. (He mentioned something about banks needing people to maintain transaction software and how they hired a LOT of people all at once to do this but now they are all retiring around the same time causing a scramble for people to maintain the software).

Negative career security:

  • The technology field is the fastest changing field there is mostly because it's responsible for the changes in all other fields. When things change as fast they the things they are changing from become more and more obsolete.
  • Range of employers can create a steeper than normal learning curve. (Switching from a job that deals with medical software to one that deals with financial or industrial can be a big jump).
  • Changes in the mainstream can drown you. (A less software related example would be someone designing CPUs and then quantum computers becoming mainstream)
  • @JoeStrazzere He's not my teacher and I believe is the chair of the department. The department is way over scheduled due to the unexpected absence of some staff (some of my teachers are teaching double the classes). Getting a hold of him would not be easy. Also he doesn't have the experience of the current job market that others here may have (seeing as he is a teacher). – Griffin Sep 29 '14 at 13:16
  • @JoeStrazzere not just one teacher. From talking to other people I've heard that the field can be a struggle at times. Something i didn't mention was the cutting edge and the demand to be the latest is huge and not easily handled. I can email him but im not sure the value of what he says. I can see a school bias as in "it's bad for everyone but our students because we blah blah blah." His lack of recent experience paired with the incentive to keep me in the program renders what he says worthy of asking others. – Griffin Sep 29 '14 at 13:29
  • FWIW, you'll find that people generally leave software development because they choose to. Job security is a factor for individuals in specific situations, but there is nothing special about software compared to other professions as far as security is concerned-- people do work in software happily for as long as they want as long as they have the aptitude and, most importantly, if it gives them satisfaction. – teego1967 Sep 29 '14 at 13:32
  • To further my suspicion behind him having a bias is after he said this he talked about long healthy careers in the field for the schools students and how all qualified and willing students last year were placed in jobs. It seemed like a bit of marketing but at the same time things I've heard from others who are living it right now somewhat backed up what he said. – Griffin Sep 29 '14 at 13:34
  • 3
    @Griffin, career satisfaction is not something that comes from simply choosing "the right" field while in university. It is something that each individual needs to pursue actively for as long as they work. Similarly, career security is what YOU make of it. If you start a career doing something that you're relatively good at and which motivates you to work hard and develop your skills, that's the best thing you can do. – teego1967 Sep 29 '14 at 14:19
11

What kind of career security can be expected in the software field

Excellent. What, you think that people are going to suddenly stop using computers? Or that personal electronic devices are going to decrease in use over the next 50 years? Or that the various appliances in the world aren't going to be connected to the internet?

Someone has to write the software for all of those devices, and the billions more that people don't give much thought to (cars, hearing aids, security systems, pacemakers, traffic lights... it goes on).

how much time can one expect to dedicate towards staying relevant?

This is harder to say. Good programmers spend quite a bit of time learning and expanding their skill. It's very true that you'll need to spend some of your spare time being good at the craft. Just how much likely depends on your specialty, how much you care about being good, and what you want your standard of living to be. I know quite a few programmers who spend no time staying relevant. They are not good programmers, but they're (usually) employed and make decent salaries. Will that hold in the future? Who knows.

His main example was that employers now want to hire software engineers over programmers and then explained some vague difference between the two.

In general, the distinction made is between someone who can write code and someone who can make software. The former is not any sort of great skill. Since it's a common skill, it's not particularly valuable. Designing robust, quality software is much more difficult, and the variety of skills needed to do so well are far more rare. They make you a more valuable employee, and far less likely to be commoditized. Doing that well also requires good coordination with the rest of the company, making you less likely to be off-shored.

Differences in programming languages is mostly syntax and can be understood fairly easily.

This is not career security - if anyone can do it, the barrier to entry to take your job is lower.

A majority of companies avoid change like the plague.

This is not specific to software, nor is it particularly true. Companies will change often, if for no other reason than to appear as though they are "doing something".

older languages are given new demand due to a need for maintaining software support.

Writing COBOL for a living isn't a career. It's a quick route to obsolescence; a great way to be unemployable 10-15 years from now. Though to be fair, you'll likely make a ton of money doing it in the mean time (since nobody wants to do it).

Range of employers can create a steeper than normal learning curve.

In my experience, this is not true. In fact, this is generally a career security advantage. It doesn't really matter if your company works with widgets or orcs or pacemakers. They're still IDs coming from a database, they still use html to present their data... good software development practices always apply.

So in short - yes, you will need to continue learning to stay up to date on what new/good things are being invented. But once you do that, you can work in nearly any industry with business that is growing, evolving and vital for the length of your career.

  • This is exactly the answer i was looking for – Griffin Sep 29 '14 at 15:14
2

Core question: What kind of career security can be expected in the software field and how much time can one expect to dedicate towards staying relevant?

The "software field" is so vast, I think one can easily predict that there will always be something in that field which needs doing and that companies are willing to pay for. It's easy to imagine a long and rewarding career in software.

If you get into software, you should expect to spend your entire career attempting to stay relevant.

The history of software is such that changes are rapid, and never-ending. What was important (and lucrative) a few years ago can easily be unimportant tomorrow.

That said, globalization tends to commoditize pretty much everything ad everyone - particularly jobs that can be done remotely. Jobs that don't require face-to-face, physical coordination can easily be moved to a cheaper labor source. And the drive in business these days is to make as many software folks fungible as they can.

If you want to be in software, you might wish to stay as flexible as possible, be ready to move to different aspects of software as needed, and spend a lot of time staying up on technology.

0

If you have a solid education and background in software development, you should be able to pick up a new language, new framework, or whatever as necessary. The high level principles of writing good code: being readable, easy to maintain, etc will always apply even if the exact methods you use will vary a little.

You should certainly expect to have continue to learn new technologies, techniques, etc over time. On the other hand, there will probably also be a niche for knowing legacy systems that are otherwise not used anymore because the costs of overhauling can be high.

Finally, other factors will obviously impact this a lot, and there can be many regional differences in terms of what sorts of things are in demand.

0

Well, if the teacher left you with a vague impression of the difference between coder and software engineer, one of the two of you is in real trouble.

Short difference: A coder's skill is to write code. A software engineer's skill is to use software to solve problems.

Most companies don't need to hire someone to write code. They need to his people to fix problems, reduce expenses, and produce and deliver salable products. Sometimes that means hiring a truck driver to delivery baked goods to supermarkets. Sometimes that means hiring a lawyer to defend a trademark, and sometimes that means hiring a software engineer to automate accounting practices, optimize supply chain ordering, or whatever else is going on.

A business owner doesn't see, "I need a Java coder to pull my inventory records and make web service calls to place orders with my suppliers." What they see is, "I'm always running out of yeast, and some of my flour is molding because it's been here too long! Can't we get a computer to keep track of this stuff?"

Yes, you should learn to write code. At the end of the day, everyone in software needs to be functional in a few different languages. Be ready to give up those languages and learn new ones, though. Haven't seen much demand for PASCAL in the trades, lately (and watch, I just stirred up 3 devs using it).

The best advice I can give you for job security: Learn the business with as much enthusiasm as you learn the tools. A business owner wants to say 4 or 5 words to the development group: "Fix My {0} {1}" Where 0 is the expletive du jour and 1 is a business function: {supply chain, invoicing, receivables, payroll}. The engineer / business analyst then figures out how and fixes it.

The "coder" is a generic element in a Gantt chart. If your only skill is C#, and WhizBang Software comes out with "Emeralds on Asphalt" as the next "hot" language, your years of experience in C# mean nothing. However, if you can understand the NEED for the development in the first place, and understand what already exists and can be used, and what needs built, you've got a long, successful career ahead of you.

Not the answer you're looking for? Browse other questions tagged or ask your own question.