views:

291

answers:

5

I've been thinking recently about what I do daily at work. We're working with ASP.NET and WebForms. The most of the activities include using already implemented functionality of the wrapper (or framework). I almost never come across technology things, meaning ASP.NET techniques, HTML/CSS etc. The framework was designed long before I came.

It is probably not worthy my time spending (wasting ?) time learning a proprietary framework which has no use outside of company walls. I'd rather work directly with the technology to learn it further and extend my skills not only in my free time.

Are my concerns justified? Can anyone from you who were in a position to hire people tell me whether that kind of "closed-source experience" of a candidate would represent any value in your eyes?

EDIT: I'm primarily concerned here with my career development rather than with right tools for the job. If I spend a year working with a proprietary framework, will it increase my value on the jobmarket the same way as if I had worked that time with ASP.NET directly maybe participating in a framework development myself?

+1  A: 

The right thing to do is to use the simplest thing that may possibly work. Frameworks should help people avoid reinventing the wheel every single time, overlooking something that will rears its ugly head sooner or later. The "not invented here" syndrome might be dangerous.

Of course too much of everything can harm a lot, too, so if the superframework is getting in your way overcomplicating your design... drop it!

As for working with different technologies: that is the key to fully understanding your job primary tools, so it is something everyone of us should be doing in his/her free time.

Manrico Corazzi
A: 

You're absolutely right. You should immediately start rewriting everything provided you by the framework. All frameworks, in fact.

Then, you can refactor out all the support the compiler gives you.

Then, you can re-implement your solution in machine language. I mean, what's the point in writing code in a high-level language which isn't being used in 100% of all companies?

Next, you can go beyond the multi-purpose solution and refactor your machine language implementation into a pure hardware solution. You'll be close to the metal, then, soldering each logic gate together. Shit, you'll be a hit on Make: magazine.

But lets face it. What's hardware but an excuse not to do work the REAL hard way--longhand. Skip all the abstractions of 1s and 0s in zipping electrons. Just get out an old fashioned piece of paper and sharpen your pencil. Is the medium or the content the worth, anyhow?

Hey, paper isn't used by everybody, right? Its closed-source, too....

CAVE PAINTINGS. Definitely.

Will
Tempted to mark it as an answer.
User
lol @ offensive. I should edit to add a few "fucks" here and there.
Will
A: 

I personally don't care to much for seeing whatever-dot-who-cares technology on some CV. It's much more interesting to me that you worked on some arcane stock control system where you personally brought some ridiculous feature to life. Then I know you like to get stuck in and can deal with whatever framework or legacy code you come across in the future, because it will never stop coming. Don't dismiss that old code either. Only if you understand every line of it will you be in a position to replace it, or maybe you'll learn about why it was written in the first place and all of the shortcomings in the framework it is designed to overcome.

Josh
+2  A: 

There are many more jobs out there that require you to work with existing software, rather than jobs that require you to write new software from an entirely blank screen. The fact that you are able to grapple with ASP.NET and you are able to grapple with MYCOMPANY.PROPIETARYSOFTWARE are roughly the same, because it's just another interface/framework that you have to be able to work with.

The best programmers are the adaptable ones, even knowing ASP.NET isn't going to help you if/when ASP.NET is replaced with a new technology. But if you are able to adapt to many different proprietary software sets, it means you are more able to walk into an unfamiliar situation and use the tools at hand.

So for now it seems like you've dead-ended by only dealing with software that you'll never see anywhere else, but the design principals are things you WILL see somewhere else. The Coder mistakes are things that you'll see somewhere else. The experience of working in a team with challenges of X,Y,Z are all things you'll see somewhere else.

Focus on learning those more abstract things, so that you'll be able to ace your next job even if you don't already know their technology. Someone who's never done ASP.NET and learns it fast will instantly be more impressive than someone who has years of ASP.NET experience and is 'pretty good' at it.

A: 

When hiring, we are looking for personality, passion, creativity. Learning a new API isn't a big deal anyway for someone with motivation. Reimplementing something that already exists isn't very creative. On the other hand, if you are truly interested in an API and want to play with it, try doing something creative. Invent something and don't be shy to use the right tools not to have to reimplement everything.

I have seen people with an amazing list of API on their resume not being hired, mostly because of their personality and creativity.

MissT