Take the 2-minute tour ×
The Workplace Stack Exchange is a question and answer site for members of the workforce navigating the professional setting. It's 100% free, no registration required.

I've just got my Bachelor degree in Computer Science and started working in finance (a bank) as a software developer.

The problem is that we are using an old legacy language that is very hard to work in. There aren't that many jobs out there looking for someone with skills in this language, and I'm worried about my career growth opportunities if I stay in this position. I don't want my only experience on my CV to be X Years Experience with a legacy technology.

I know many of the newer technologies so I could probably easily find a job at different place, although it would most likely be for less pay and benefits, and may not be in the same industry.

In terms of long-term career growth, is getting experienced in a specific industry sector (such as the financial sector) and learning all of it's little things like the business and terminology worth programming with a language that is unlikely to be of use in any other position? In 5-10 years how can I leverage this experience to get into a position using a different technology?

EDIT: I really liked both Philipp's and Dave's answers but you can only accept one.

share|improve this question
3  
Usually career advise questions are considered off-topic here, but this problem is so common in software development that I would argue to keep it open. –  Philipp Mar 28 at 9:25
1  
Generally speaking, in software development, experience in a particular language is irrelevant. If you know how to program, you can learn any language you want: Coding Horror Link –  Dave Johnson Mar 28 at 14:41
1  
@IgnasK I hope you don't mind but I made an edit to the question to rearrange some of the wording which I hope will get it reopened. In particular, I tried to put more emphasis on your concerns over what this will do to your long-term career growth as opposed to just picking one type experience over another. If I've edited it to much, please feel free to rollback the changes or edit it further. It already has 2 of the 5 reopen votes it needs though, so I have hope it will get reopened quickly. :) –  Rachel Mar 28 at 16:54
3  
Here we go, the reason for closing is indeed explicitly that such questions “are rarely useful to anyone else” but this one most definitely is. It's not about what skills to learn, it's much more general. Beside enforcing a rule for its own sake, I don't see why it needed to be closed. –  Relaxed Mar 28 at 21:03
2  
@Annoyed et al. - Keep in mind closing isn't permanent. It's designed to give time to edit the post to ensure it's not written in a way that leads to unsubstantiated opinion or that it's not off-topic. With the community edits, this is now written in such as way where it can be answered based on facts and research. Hence, I've reopened the post even though the actual topic is borderline. Note that this does not mean career advice questions are necessarily on-topic nor does this action imply that all career questions are on topic. See The Workplace Meta for previous discussions on this topic. –  jmort253 Mar 29 at 17:02

6 Answers 6

up vote 13 down vote accepted

It depends.

Software Development means nothing without domain knowledge. Whatever you want to build needs domain knowledge. Let me give you some examples and hopefully it connects the dots for you.

There are two types of jobs in IT market.

  1. IT in support of Business
  2. IT in support of IT/Software

Let's discuss each one those a bit.

If your goal is to work as a software developer in support of Business, then years of experience in that business counts a lot.

For example a Senior Java Developer who works in retail business doesn't only need several years of Development experience under his belt, but he needs several years of work experience in retail business. He needs to know how retail works, how transactions are processed (since in most businesses there are standards that all of them mostly follow), and also knowing the work environment (high paced for most retail businesses). That gives him an edge since he can negotiate more.

Example: If two Senior Java Developer interview the same retail job opening, and one has 7 years of Java experience and 1 year of retail experience. and the second one has 5 years of Java experience but 3 years of retail experience. In most cases the second one get the offer since that is more desirable by most retail businesses as they don't have to teach him a lot about the business and the domain.

Now let's talk about the second option: IT in support of IT/Software.

When you work for IT in support of IT, this means that you are going to develop tools, and products that are going to be a platform for other developers to build business on top of.

Example: If you are working for Oracle and they place you in a team for MySQL product, you need to know Algorithm, Math, Probability, and a lot of Code/Technology knowledge as a computer scientist because you are building an IT product which should offer great and stable performance. Or you can also work for an open-source project which is a different story.


The point is, You have a job now, and you are getting paid every month. That means you aren't desperate for a job. Therefore you can take your time and interview for other job postings. If something interesting comes up, then you can take it and quit your current job.

But for now, try to learn more about the business domain (finance) because when you go for an interview, you can use that as an advantage. You can say that you were working with a different technology that was appropriate for that business but you learned a lot about the domain that you can carry to your next job and use it with other technologies and tools.

A True Software Developer doesn't care about the tool, the tool is only a matter to solve a problem with. The more you learn, the less you care about the tools because in real world, new technologies come out every year and many of the old ones go out of business/use. So if you are so biased or attached to one specific language, you will not survive the technology evolution and will lose at some point.

I think the two points I can leave you with are:

  1. Do what you enjoy. Money isn't everything as you can make money in many different ways.
  2. Don't be attached to a specific technology, as things always change in future quickly.
share|improve this answer
1  
I will also add, if you have interest in becoming non-individual contributor and want to be a project manager or manager at some point, business experience is invaluable. There are many, many, many things you learn (or at least can, not everyone pays attention) and don't realize the deeper impact this understanding has on your decisions. –  enderland Mar 28 at 17:28

First of all, working with legacy technologies like Progress, Natural or Cobol is a very secure job. Developers who are familiar with these technologies die much faster than these technologies do, while new programmers don't want to touch them with a 10 foot pole. That means the demand for people who can work with them rather goes up than down. Those who are willing to work with these systems get irreplaceable quickly.

For anyone in the second half of their work-life, I would say "Enjoy your secure job as Guru for a system nobody else understands but everyone needs and retire with it in a few decades".

But when you are at the beginning of your career, chances are that the last legacy systems will retire before you do. Then you will still be far away from retirement age, but have no job, be middle-aged and have no experience in any currently relevant technology. For that reason it is dangerous for a young programmer to get too specialized in legacy tech.

To broaden your skill-set, you should try to also work in more modern technologies from time to time. This does not mean that you need to switch company or even department. You could suggest to implement peripheral systems which interact with the legacy systems using more modern technologies. An example would be an ASP.NET-based web interface which displays data obtained from the legacy database. That way you and the rest of the team will obtain experience with how to interface the old technology with the new, which will be extremely useful when the old technology finally needs replacement and give you skills useful for other jobs.

Should your company reject your suggestions for these projects, you could try to keep your skills sharp in your free-time. You could prove your expertise in these technologies to potential future employers by contributing to open-source projects or do some freelance work on the side (get permission from your employer first!).

share|improve this answer
    
Well, we are going to be using Java for front-end on one of our biggest projects. So, Java for front-end, Progress for back-end. It's just that I'm not sure whether I could put that I had n numbers of experience of Java on my resume since it will be used only for front-end while the whole business logic will be done in progress. Other than that, I'm not thinking sticking with Progress for more than a year or so. It's just that the offer was that good and I was just after graduating the university so it seemed like an amazing opportunity to work there. –  IgnasK Mar 28 at 9:49
5  
@IgnasK So you will soon have n years of experience at Java and Progress - sounds like a good career start. –  Philipp Mar 28 at 9:53
2  
If you work too long in that same archaic system, your employability goes down the drain AND you can forget about any raises since all you've done is the same system for years (read: the employer will see no point in increasing your salary, as you do the same thing) –  Juha Untinen Mar 28 at 10:23
1  
Two people downvoted this answer so far. Could these people explain what they consider wrong about the answer and how it could be improved? –  Philipp Mar 28 at 14:59
    
I like this answer. And as far as programming goes, you need to stay on top of modern tech anyway, even if you're working on something that's inherently more modern. Experience is always good, as it's not only your skills in once certain technology, but the ability to see the bigger picture that's important. You'll find out that you train this skill regardless of the technology. –  SBI Mar 28 at 15:36

I am afraid that nobody is going to give you a good answer as it may be unethical. Let me tell you what I did:

I worked in a similar company where I was asked to work only in java 1.4 applets which is kinda archaic now. So, I started to learn the latest concepts in java(and one widely used framework of my choice) at home and did some certifications. After 2 years, I decided to give interviews, which required 2 years of working experience in that latest tech. Honestly, I didn't have any working experience on that skill. Nevertheless, during the interview I was able to impress the interviewers with skills learned at home.

So here is what you can do to be successful:

  1. Never leave the job unless you have secured another job
  2. Gain the experience.
  3. Meanwhile, do learn at home whatever you want to learn.
  4. Finally, give the interviews.

FYI, The initial screening is based on number of years of experience. Hence, if you don't have the required work experience, you will not have a chance to prove your skills to the employer.

share|improve this answer
1  
+1. What's unethical about this advice? –  Stephan Kolassa Mar 28 at 9:32
1  
"Applying for a job that requires work experience, not skills" is sometimes considered to be not-ethical –  jane Mar 28 at 9:44
    
I was thinking about certificates (Java's) and now you just made me think about it even more, thank you. It's just that as you said, the initial screening is based on number of years of experience so my next question on the site will probably be how to get passed this (and not lie at the same time) :-) –  IgnasK Mar 28 at 9:53
    
@jane: thanks, good point. So, while learning at home, one could at least leave online traces of what one did. Answer questions on SE, work on open source projects etc. –  Stephan Kolassa Mar 28 at 9:56
1  
+1, however, The skill you learned at home was closely related to what you where using at work, you might not have got away with it otherwise. Remember that someone that is programming in X with Y, in their job may only be using Y for a few hours a week anyway. –  Ian Mar 28 at 14:57

Well first, no one is using this language any more it is so old in my opinion you can do the following:

  1. Convince your boss to migrate your work from a language to another which would be so tough and hard work and I guess you will not do this but it is an option.
  2. Find another job with the same benefits and salary in your field as a computer scientist.
  3. The answer for your question is based on what you really want. Do you want to have experience in finance and start working in this field, or you really love computer science and you want to be a programmer? If you find the first question is your future job, go and study some finance and leave the programming aside.

My advice to you is to not leave this programming language and start doing c# and JavaScript or Android and iOS because the market lean to those development languages, and working with old languages will affect your CV.

share|improve this answer
1  
+1 for point 3. –  Stephan Kolassa Mar 28 at 9:33
2  
Point 3 is great but the first sentence is terrible. Progress is still in use, as are many languages older than it (C - older, C++ - older...but hey, nobody uses those any more, right?). Using the "nobody uses that anymore" peer pressure against OP undermines your point 3 that he should listen to himself and what he wants. Not what you tell him is trendy or not. –  Jonathan Van Matre Mar 28 at 14:46
2  
I'm tempted to -1 for your opening sentence and point #1. People are (obviously) still using the language, even if it is old. And if #1 were feasible, it would be done already. These old systems are so entrenched that it would take way too much effort to migrate before it is absolutely necessary. –  Dave Johnson Mar 28 at 15:05

I have actually been in a similar situation. Back in 2004, after I graduated with a CS degree, I accepted a job offer from a software company that used an obsolete language called PowerBasic almost exclusively. In 2009, for a variety of reasons, I started looking for another job. At this point I had 5 years of real-world work experience, but almost all of it was in an obsolete programming language.

Long story short, it took me 4 years of job-hunting before I received a job offer. The crummy economy may have had something to do with it, but I suspect my lack of experience in relevant programming languages was the main problem. Experience in the financial field does have value (in fact, both my old and new jobs are finance-related), but based on my job search, experience in specific languages seems to be more important. Fortunately, I took some online programming courses and made a point of finding projects to do in Visual Basic and C# at my old job, and I think that's what helped me the most in finally finding another job.

The bottom line is this: ask yourself if you want to spend your entire career at this company. If not, consider getting out soon. Getting paid more now is nice, but you need to think about your future career as well.

You said you're a recent graduate, so your school experience is still going to be relevant for a potential employer if you start your job hunt now. If you decide to stay with your current employer for a while, do everything you can to keep your skills in modern programming languages sharp. See if there are any side projects available at work, consider working on an open source project, or even take some online classes.

I hope this helps, and good luck!

share|improve this answer

Both are important.
You'll need programming and tech skills to advance in any industry. I think industry experience will play a bigger role as you get more into the mid to senior level roles. It also plays a role in your job satisfaction if you are doing something you like to do in a particular industry.

For example, my past two jobs have both been in the healthcare industry because I have actively looked these positions. I like the industry I am in because it makes me feel like my contributions are making a difference.

My advice is to develop your technical skills early in your career. As you get better technically, you'll be in higher demand. By then, you have some experience in difference industries and be able to pick and choose which direction you want to take your career.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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