I used to think to work for a company, the best way is to spend all your working hours on work.
Wrong! Spend 20% of time to learn. Learning the right thing such as data structure and algorithm will only make you faster. Here is an example.
I know an experienced C but a rather outdated perl programmer. He is taking a managerial role so even if his code is slightly sloppy no one can touch him. Most of the time his coding is ok. But there is an obvious sign that he hadn't look at the basic of perl for long time.
There was a table which requires 3 layers of tree. But since the programmer doesn't know easy it is for perl to implement such a tree using multi-level hash. So he clumsily put both layer 2 and layer 3 of the key as keys of a hash.
As a result, every time he needs to use the table, he will need to use a special routine to read the single level hash. That require identify whether the key has the characteristics of layer 2 and layer 3. (Don't ask.)
When I asked him why he did such kind of programming, he argue with me with his managerial position that I shouldn't say a thing. As a result, the code persists. Of course, everything rotten from there......
The same programmer also doesn't know things such as using map, grep instead of foreach in perl. The former can usually reduce code length by 80% and it's usually easier to read and maintain.
If the programmer happens to any books such as "Intermediate Perl". There won't be such problems. This simple example show how important learning is for a programmer. Everyone would fall from grace. Once your mind stale, your skill stale. That's just the way it is.
This is my self-study page for the book, "Introduction to Algorithm", or commonly known as CLRS. This is also my diary page of how I struggle and grow in the programming world. I hope this blog can help amateurs or professionals, to improve their skills in programming, learning and living. As of Sep 12, 2011, I finished the "exercise read" of Chapter 2 (20110518) and 3 (20110608) and half of Chapter 4.
Shortcut for chapter specific information
Chapter4
(62)
chapter3
(41)
Chapter2
(22)
chapter6
(10)
chapter12
(9)
chapter15
(8)
chapter13
(7)
chapter7
(7)
Chapter10
(5)
chapter5
(5)
Appendix A
(4)
chapter8
(4)
Chapter19
(3)
Chapter22
(3)
Chapter34
(3)
Chapter35
(3)
chapter11
(3)
chapter16
(3)
chapter18
(3)
Appendix C
(2)
Chapter21
(2)
Chapter25
(2)
Chapter26
(2)
Chapter27
(2)
Chapter28
(2)
Chapter29
(2)
Chapter9
(2)
chapter14
(2)
chapter20
(2)
chapter23
(2)
chapter24
(2)
chapter30
(2)
chapter31
(2)
chapter32
(2)
Appendix D
(1)
Chapter1
(1)
Chapter33
(1)
chapter17
(1)
No comments:
Post a Comment