Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I was hired ~1 year ago to write Java code (actually, to re-write a legacy codebase - I suspect the company would be happy no matter what language I was writing it in).

Just yesterday I was tasked with fixing bugs in a VB6 program - I have never used Visual Basic before.

My question is, is it common for a programmer to be asked to maintain/debug/fix code in a language completely unknown to him on the drop of a hat?

I should clarify, I have no problem doing so, I'm simply wondering if this is a common experience for corporate programmers.

share|improve this question

closed as not constructive by gnat, maple_shaft Aug 24 '12 at 16:25

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

2  
I don't know how common it is in general, but it happens to me all the time. For example, I was hired as a Windows developer, but I've spent most of the last six months debugging and modifying a Mac OSX app written by a guy who left our company. My core skill set is C++ apps running on the Windows API, but I've had to pick up Flex, Python, Lua, and a bunch of other stuff in the last two or three years alone. –  Jim In Texas Aug 24 '12 at 15:15
    
+1 I now understand why its important as a developer to always be learning new programming paradigms in your spare time. It not only makes you a more adaptable programmer, but it also prepares you for times such as what you described. See What Every CS Major Should Know and Programmer's Competency Matrix –  Anthony Aug 25 '12 at 9:42
add comment

6 Answers

up vote 14 down vote accepted

Yes!

Your skill should not just be the language(s) you know, but the fact that you can learn new languages, and solve complex problems.

This article, Don't Call Yourself a Programmer, is worth a read (or at least skimming), for the parts that talk about the fact that

You are not defined by your chosen software stack

share|improve this answer
    
Great article, thanks! :) –  user912309 Aug 24 '12 at 15:14
    
+1 for the link to the article, it was spot on. –  Kelly S. French Aug 24 '12 at 16:29
    
+1 Oh my goodness! Great great answer. An ability to learn new languages and solve complex problems is key. But that article is simply excellent and I absolutely loved reading it. Thanks for sharing it! –  Anthony Aug 25 '12 at 9:58
1  
+1 I read this article from top to bottom, every word. It is a must read (please don't skim it) –  Anthony Aug 25 '12 at 12:02
add comment

In my experience, yes. I've seen projects where you need to switch between programming languages on a single project, let alone between projects. Learn VB6 by porting over your experiences from Java. Then, when the next language comes along, you are already prepared to learn that. You will become a better programmer for it, as you will learn to think of each problem in multiple ways.

Once you have a few languages under your belt, you will be in a position to suggest languages for new projects based on their merits, rather than "this is the language I know, please pick it".

share|improve this answer
add comment

Usually, the lower the level of your business is, the higher the chances are of end up doing this.

People that have a more solid business usually do not ask for this kind of things, instead in a small business scenario is a really common situation.

I also would like to say that this is a common situation also for business where the design of the application itself is not even considered in the first place, most of the times with a good design you can avoid to spent hours in refactoring, rewriting and maintaining code because the way the application behaves is much more clear and the data is separated from the "operative context".

share|improve this answer
add comment

As a corporate developer I was hired to maintain a legacy Java application (I'm still doing this task). Later on I had an opportunity to create a PHP app (2 months of effort), a Django app (1 year) and use a lot of stuff I have never tried before. I guess there's nothing wrong in getting assignments in different languages as long as you feel you'll manage to switch without losing too much of your programming skills.

If you want to be a software developer, not just a code monkey in one particular programming language, be prepared to switch between technologies, programming languages and tasks. This way you'll pick tools to meet the solution of the problem, not change the solution to meet the tool.

This will also help you prevent being excluded from the market when the programming language you are currently best at will be no longer popular.

share|improve this answer
add comment

I think it's common for software companies to have a legacy of code bases in languages they used in the past.

Some of these may still be maintained. Sometimes employees who were around 'back then' will pick up any change requests for it.

If maintenance is expected to last for quite awhile longer they may ask newer developers to dig in also to avoid knowledge of the code base eventually leaving the company completely.

More often then not the latter is already the case, in this state everyone is equally as (un)knowledgeable to handle the request. So it may as well be you.

If you should accept that type of work is another topic ;-)

share|improve this answer
    
The latter is definitely the case - no one really knows how this VB program works... –  user912309 Aug 24 '12 at 15:24
    
This makes doing changes on the code base very expensive for the client and increasingly risky for the employer as it may demotivate programmers. At some point they need to stop maintaining it or hire a dedicated specialist. I hear COBOL maintainers pack a hefty salary. –  Joppe Aug 24 '12 at 15:29
    
Haha, there are a couple COBOL programmers here... I actually offered to re-write the program in Java (with better documentation, standards, etc) but was turned down due to vague things related to OO-programming, legacy systems, client preferences blah blah blah... –  user912309 Aug 24 '12 at 15:32
add comment

Embrace the opportunity. Being confident in more than one programming language is an essential skill, and practicing it on a real-world problem is the best way to enhance it.

Not only does it increase your buzzword factor and general employability; it also makes you a better programmer in your 'home' language(s), because you'll be exposed to different programming cultures and different ways of attacking a problem.

It's only bad if you get thrown at a problem in a language you are completely unfamiliar with, and expected to produce the same results in the same time as a 'native' would.

share|improve this answer
    
Yeah, this is the attitude I'm approaching it with; unfortunately it's definitely a case of the latter - I've never interacted with VB code but my manager mentioned something about having it done in a week or so...Oh well, off to trace through code I go! –  user912309 Aug 24 '12 at 16:09
add comment

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