Christopher wrote:
> Hello all,
> 
> This is my first time posting to this illustrious group, so I apologize
> if this is covered in the FAQ; if there's a recommended reading list for
> this subject, I couldn't find it in my superficial search efforts.  I
> purchased a copy of Accelerated C++ after joining this group a week or
> two ago and am really having a good time going through it, learning the
> mechanics of C++.  What I've discovered after a few chapters, along with
> discussions with  a couple of the top developers at my workplace, is
> that I have only a vague/non-existent understanding of data structures
> and algorithms for problem solving.  Hopefully, I'll have a donated copy
> of Data Structures and Algorithms in C++ in my possession soon, but I
> was wondering if there were textbooks on this subject that you would
> recommend for an auto-didactic learner?  E.g., would Knuth's The Art of
> Programming be intelligible to somebody without a collegiate mathematics
> background and still applicable to today's OO design paradigms?  I don't
> want to get too far ahead of myself, but I think this subject is more
> important than the syntax of programming, much like database
> normalization and SQL.
> 
> Hit me with your recommendations.  I'll exhume my old calculus textbooks
> to refresh the hard math parts of my brain in order to understand the
> proofs, if I have to.
> 
> Regards,
> 
> -C

The difficulty you are having is fairly natural.  Book authors either 
use cheesy examples that have no relevance or try to go really generic 
and cover what is known as a "design pattern":

http://en.wikipedia.org/wiki/Design_pattern_%28computer_science%29

In my experience, each data structure and the needs surrounding it is 
uniquely different (which is why programming jobs still exist).  Being 
able to adapt and figure out the best possible data structure for the 
situation is a skill that isn't easily taught.  There are some common 
data structures one can start with that are very common such as the 
array or linked list that are able to be encapsulated inside a template 
and reused over and over again.  But beyond those, of which most are 
already provided to you with your compiler, it boils down to a 
case-by-case basis as to what is the "correct" approach.  Additionally, 
each new program has new insights and solutions from previous attempts 
(i.e. refinements and improvements of concepts you have learned).

It would be helpful to have an example of something very specific you 
are trying to accomplish.

-- 
Thomas Hruska
CubicleSoft President
Ph: 517-803-4197

*NEW* MyTaskFocus 1.1
Get on task.  Stay on task.

http://www.CubicleSoft.com/MyTaskFocus/

Reply via email to