Shortcut for chapter specific information

Wednesday, May 4, 2011

How many people read TAOCP?

http://markharrison.net/stackoverflow/knuth/

This is interesting link.  It shows how programmers are divided into two camps on whether learning elementary data structure is useful or not.  

It's clear that sometimes studies in data structure and algorithm doesn't really pay off.  For example, what if you are working on a system which has no speed constraints?  Then thinking through what the right thing to do would be more important.   For example,  what if you are working in a research problem, where no one even know the solutions, not to say a fast solution?

As a skill though, learning algorithm is delightful.   There is another interesting effect for me,  it makes me feel sharper and work faster.   Many believe that learning extra things will only burden one's head and *waste* one's time.   I always feel otherwise.   e.g.  Learning a new foreign language always make me feel I think through something.

Similarly - learning a new algorithm always make me feel sharper and can think through issues (even if it not related) more easily.    

Algorithm and Mathematics have one thing in common.  Sometimes they are not learned by logic alone, but also by intuition and experience.    What's experience then?  That means you need to touch it and feel it.   So I tend to disagree with people holding a point of view which sorting is not a valuable subject to learn.    There are so many tricks in sorting - say usage of sentinel, recursion, two way merges, shell decrements, average analysis.   All these ideas can be used in thinking and help to understand other algorithms.   If one doesn't know them, it will mean they have to reinvent a similar framework to solve a problem.   Is it an effective approach?

No comments:

Post a Comment