views:

125

answers:

5

I saw an ASP.NET Guru using JavaScript library in his ASP.NET application to give it a cool look.

After some Googling I found that there are various AJAX libraries (some are free) that are ready to be used in asp.net as controls to achieve the same and may be more.

Now, my question is, should I learn the JavaScript library and follow the guru's path or use the ready-made AJAX library to avoid reinventing the wheel (in which case, I would not be able to learn how to work with JavaScript, etc. And, If I don't learn JavaScript, I am missing it throughout my whole life may be)?

My question is a generic question. I mean it for any situation similar to what i described. I always face this dilemma i.e. learn from the root of the technology vs. do not reinvent the wheel.

Can anyone answer this with reasons to support his opinion?

+1  A: 

There is no "real" path in programming. No manual to do that and this and you're going to become a guru for sure. Learn what interesting to you. That makes learning a lot more fun.

About learn things from the scratch I recommend this article by Jeff Atwood : The Wrong Level of Abstraction (it's about encryption but you will get the point)

By the way, I asked nearly the same question a few weeks ago: I wanted to be a Programmer

Henrik P. Hessel
A: 

I would recommend against reinventing wheels, unless you work for Michelin. Although, if you work for General Motors, it wouldn't hurt to learn something about wheels, without necessarily becoming an expert.

jqno
Technically correct, but thoroughly useless answer :P
Thorarin
+2  A: 

The ajax libraries are javascript libraries. I say go ahead and use them, because there's no reason to try to master everything. When you feel like they aren't serving your needs anymore, like you need to do something more advanced, start digging into the source code, research some tutorials on the subject, and figure out how they're put together. Then you'll be able to step under the hood, and leverage them to do more.

jcdyer
+1  A: 

I do recommend that you understand enough of the fundamentals involved before using an existing kit. However, creating your own kit is overkill. I suggest you hand-code enough simple examples to feel that you are on solid ground when it comes to the concepts, then use one of the existing solutions.

Eric J.
+2  A: 

I think that there are two different points: willingness to learn something new from the very base, thus going deep inside the internal working and reinventing the wheel.

If you get a strong grasp on the technology of your choice you will know when to reinvent the wheel which is "I'll do that this way 'cause suits best my needs".

I tend to use the term reinventing the wheel when I find that what is being coded is done without a clear understanding, if one knows what to do it's called improvement.

In your example: there is no need in understanding the internal working unless you need to, you simply cannot follow this path for every new situation, so choose accordingly to your needs.

Alberto Zaccagni

related questions