Sign up ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Recently I graduated from university/college and immediately landed myself a job. The company has versions of software it gives to it's clients, however the software is largely, or rather entirely, built on an in-house framework.

This in-house framework almost abstracts everything from the 'developer' in terms of lean Java code and instead provides helper methods for almost EVERYTHING. For example, creating a UI and interfacing with the back-end is done entirely on top of their framework using their 'API' if you will.

My immediate thoughts are now - Do a year of experience and get out otherwise I will be locked in and too afraid to leave in the future.

My questions are: Is this common practice in the industry? Will this stagnate my skills? Should I bail?

share|improve this question

marked as duplicate by gbjbaanb, MichaelT, Corbin March, gnat, Dan Pichelman Sep 12 '13 at 20:55

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.

6 Answers 6

IMO the answer is somewhere in between - there are companies, that have very stern software development policies (coding style and so on), and there are companies on the other side, that are really free about coding guidelines. Both does not necessary mean the one is better than the other. What about Microsoft or Oracle for example - they are creating the .NET Framework resp. Java and they are using it intern for sure - will you feel restricted if you worked for Microsoft or Oracle?

The point is - take as much as you can and will, no matter what and how they use it. After six months or one year, you will have a feeling if this is the right job for you or not (in terms of you like it or not). It could be, that the in-house framework is really nice and after six months your task will be to extend it - i do believe this is a very good point for a work resume. It could be, that while learning the in-house framework you will learn important basic programming concepts that will boost your knowledge as developer.

It could of course go in the other direction - you will learn to use the framework (create window, add button, bind button event, and so on) but you will stay there, because you don't have access to the framework source code and your tasks are simple and don't give you the opportunity to try/make something new/bigger - you will see. But you definitively can not decide yet if this is good or bad.

share|improve this answer
At the moment it appears to be going in the create window, bind, use helper method to bind to server side etc. Very worrying. –  Puzzled Sep 11 '13 at 18:51
In my opinion - try the job. Even if you don't like it (and you are not sure at the moment / you don't know it yet), after six months or one year you will have a better chances at the job market, because you'll have experience (as stupid as it sounds is better, than nothing). If the job is boring/not interessting you can use your free time to learn new things and the combination of work experience with knowledge it better than search job for six months without working experience. If you are not sure and you have other options (job positions) - bail out. :-) –  pasty Sep 11 '13 at 18:58

In the suddenness of becoming a father, I took a job for three years in a large telecoms learning completely proprietary frameworks, languages and systems that I have not once referenced since. I learned a lot of processes and techniques that help me to this day. I believe I would have missed out had I chosen a path based more on my (short-sighted) ideal at the time.

Learning a framework is trivial compared to the task of becoming a professional developer. There's so much more to learn about development than learning this language or that framework.

If the company/section is profitable, then they are working to a scheme that makes money. It's worth sticking around to learn how they do it. That's a larger contribution to you career than specializing in any one technology.

Once you've had enough, move on. I did. I'm glad I gave it a go though.

share|improve this answer

A friend of mine found herself in this very situation after college. After we met a few years later she told me her skills were so tightly tailored to this specific framework that when the company folder a short time later, she had difficulty finding another job. I would suggest as a starting job, go for whatever you can get, but consider an exit strategy, for example keep your skills current regrdless of whether or not you are using them directly in your current jobplace.

The big buzzwords these days are NoSQL and Big Data skills, for example. Good to know these for future prospects. Take a look at what the current job market is looking for also. In the fast paced IT field, if you stop learning, you will pay for it sooner rather than later ...

share|improve this answer

I work at a company similar to this. There is a very strong proprietary MVC framework. There are plenty of opportunities to stretch my software engineering skill set however, which helps me grow professionally. There are also plenty of opportunities to interface with other libraries and technologies.

Being a code monkey is being a code monkey no matter what framework you use. If you want to do more than make API calls it sounds like you want to get into a software engineering role. I would focus on software designs and process improvements if I were you.

share|improve this answer

Using good modeling practices and patterns, and writing re-usabe code generally leads to being able to build apps on reusable components.

You can, if you will, call that set of resusable components or reusable design "a framework". That's not necesserally a bad thing.

I think some well know frameworks may have come to life that way.

share|improve this answer
Whilst I agree with you, I'm also worried that no real exposure to the underlying J2EE stack and only their helper methods (I mean literally, everything is done for me almost. I don't see any J2EE, just their super 'friendly' API) is a waste of my time as I'm only really learning to develop and gain knowledge of their system/API. –  Puzzled Sep 11 '13 at 18:48

In my opinion and based on my experiences I would say change now.

I have gone through a LOT of different languages, frameworks, database and tools. However I find that any abstraction of the underlying technology in the fashion you describe will serve you poorly in your career.

For example - I once spent a year developing an application using oracle forms for dumb terminals. Guess how useful those skills are now (not the approach but all that fun stuff and muscle memory you learn for implementation).

More recently in developing Ruby on Rails I've moved 'back' from an IDE (rubyMine) to a basic editor (vim) because in the next language/framework/whatever, I now that if I am editing basic text files then my vi skills will transfer and I can build on them.

share|improve this answer

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