Shortcut for chapter specific information

Wednesday, May 18, 2011

After Chapter 2

After finishing all exercises of Chapter 2, I have a great feeling I hadn't had for long time.   The last Math/CS book I read was "Elementary Number Theory".  That was when I first started to work and still have some time to do some math on my spare time.    After that, I was always busy on one thing or the other.   That was like 8 years ago. 

To be honest, I feel like I was always busy because of stupid reasons.  In work, sometimes I just work a lot of hours because ...... well ...... my methods were stupid.  Experience taught me tough and hard lessons.

Back to learning,  after the few minutes of excitement I start to ask myself what should I do next.   By reading Chapter 2, I found that my programming has tons of issues.  So learning is necessary.   But what should be the next thing I learn?

First of all, I hope to go deeper into the study of data structure.  At this point, I would say I only got rough picture of even simple topics such as ...... insertion sort.

A famous poker player, chess player, Dan Harrington once describe how his coach taught him how to play chess.   Every time when Harrington makes a mistake, his coach will ask him to describe what he is thinking.    In chess, if you cannot describe what you are thinking or why you are doing something, then no one (include yourself) can correct you and fix your problem.  

Programming is very similar to chess,  a complex trains of thought is transformed to several lines of source code.   They have to be exactly right.   Consider an insertion sort,  can the index be slightly wrong? Can we skip a particular assignment statement?  Can we switch the indices?    Not really, the hundred something characters by itself form a complex structure.  There are only a few ways to change the code such that it does similar thing but the code are changed. (Consider variations of insertion sort, such as binary insertion sort or even insertion sort with sentinels.)

That's why deepening is important.   In my complementary exercises, I list all the concepts I want to learn about "simple" topics of insertion sort.  Even though I have finished Chapter 2, I am not satisfied with my understanding.   That's what I called Read 3, that's toughest part of understanding - building connection for a concept.

But in this deepening process I want to set one rule to myself.  That is I still want to complete CLRS before I move on to another book.   It's ok to finish some simple exercises from other books but I want to focus on *one* but *only one* book.   Or simply I want to *focus*. 

You may share the same feeling, how many times we were distracted by the beauty of knowledge?   So many of them are fun and interesting.   The dilemma if you learn in this way is that the more you learn, the less you have learned.

On the other hand, a deep study of just one to two chapters always seems to pay off handsomely.  So this time I refuse to get distracted by another more difficult or perhaps more interesting book.   I just want to focus on one single book and see what it taught me.  I believe CLRS is a good book to be read in this way.

So, in short, let's start chapter 3 as well as try deepen what I know.  We will see how it goes.

33_P

No comments:

Post a Comment