In a way, our discipline is not that different from philosophy. One aspect is that you will see people who likes to debate more rather to understand more. Here is a typical structure of the arguments between two programmers, they just argued whether they should use method X in a certain problem P.
Programmer B implemented method X, tested it and show that its performance is good. Without too much thought, Programmer A originally thought that method X is a bad idea. So during the conversation, Programmer A said,
"Method X would cause problems 1, 2, 3, 4, ....."
After understanding problems 1, 2, 3, 4 and etc. Programmer B does find that method X has some minor issues. (Namely problems 1, 2, 3, 4). But Method X is a smart idea and there are ways to resolve problems 1,2,3,4. So Programmer B decided to tell Programmer A his ideas.
Now after some thought, Programmer A decided to change his mind. So he said to Programmer B,
"Of course, why do you think about this at all? method X can resolve the problem. In fact, the perceived problems 5, 6, 7, 8 can be easily resolved!"
Honest programmers will never be Programmer A. What happened was Programmer A changed his view point during the discussion. This gives him an advantage to argue both sides of the coin. Of course, it is simply a tautology - if you can argue both statement X and ~X, you will always be right!
Programmer A has the last word. When there is no judge, he won the marathon of arguments. He also kept his token of conversation - but nothing new really happens. Method X should still be implemented. This leave programmer B and perhaps all of us to wonder why there is an argument in the first place. In a way, Programmer A has "out-lawyer" Programmer B. When you try to pursue arguments in arbitrary depth. There got to be holes in an idea. Does that mean that idea shouldn't be used at all? Certainly not. In fact time was wasted for the arguments. What a sin.
What should Programmer A really say? I believe as an honest programmer, one should say, "I am sorry. I have changed my mind."
Many programmers are closeted lawyers. Be careful when you work with these types of people. Most of the time they are not really the one who innovates.
33_P
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)
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment