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 am a junior developer who has been working at a new job for a few weeks. I am working with a large framework for scientific desktop software, adding pieces of functionality. While there are general aspects of the job that are appealing (such as the people and the pay), I have to admit that I find the work unrewarding and boring. I feel disappointed because I do like programming in general. I'm concerned that if I "settle for" this job - or this position within this job - I may lose my love of programming.

I think that I am getting frustrated because it is hard to get feedback on the correctness of my code that I'm writing. It is hard to unit-test. Testing involves firing up the program and stepping through the code. I do not feel like I have a mentor. My impression of the code base is that it does not use much in the way of OOP principles. (Perhaps many of the people who have worked with it are more experienced as scientists than developers.)

Do you think I'm being soft/naive/idealistic and should continue to work with this code for a year or two (and do more personal projects on the side)? Or do you think that I should go with my gut feeling and try to find a new job where I can work with higher quality (maybe TDD) code?

share|improve this question
1  
Low quality code is a great learning opportunity even without a mentor. Figure out what it is that makes it poor. Keep questioning you theories on that. Try (at home) to improve the code. Figure out how you would tackle implementing the functionality in a more OOP, robust, maintainable, ... way if you could start from scratch. Find different ways to do so. Learn from the experience. –  Marjan Venema May 12 '13 at 14:44
1  
After only a few weeks, you can't really judge anything except a total catastrophe of a job. Especially not if you're really new to the working world. –  Ross Patterson May 12 '13 at 15:05
    
Thank you for the comments. I appreciate them. @RossPatterson I see what you are saying, but surely it does not take long to see if the framework you are to be working in is generally OO and does not, for instance, contain lots of static methods, duplicate code and exception-swallowing? I should have asked to see some code in the interview. –  Nardis May 12 '13 at 19:04
    
1  
Welcome to the real world. Following the 80/20 rule, most of your time will spent solving uninteresrpting problems. Doesn't mean other aspects sent interesting, such as trying to add testable code into a legacy application. –  Andy May 12 '13 at 20:29
add comment

marked as duplicate by gnat, BЈовић, Martijn Pieters, MichaelT, Joris Timmermans May 13 '13 at 11:33

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

1 Answer

up vote 5 down vote accepted

It's very hard to find a perfect job. Assuming you find a new one -- what makes you think you can predict the quality of the code base over there before you have been really working on it? Code base is very often a mess.

My experience is that if the people and the pay are appealing then this is something few people can claim and which is worth working for, this is by no means automatic. As a developer it's much easier to improve the code base than the way your colleagues are acting towards you ;-)

And if they are really scientists they will be open for new ideas, also regarding the source code quality and development methods, while they themselves might not focus on that without being told that it might be useful. If they are not CScientist they may simply not have learned this and might be self-taught and will possibly be even quite happy to find some motivated new collegue putting a focus on modern development methods.

From what you've written I'd try to actively improve on your current situation, and only if this turns out to be not working look for a change. Why don't you have a look at the code base and start searching for edges which can be improved on? If it's hard to get feedback on the correctness of your code start to try to figure out means how to make it easier. Talk to people and explain your cause.

And then, working in a job for some weeks...unless it is really a desaster you should give that job a bit more time.

share|improve this answer
    
Thanks for your insight –  Nardis May 12 '13 at 19:05
add comment

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