|
Monday, July 25, 2005
|
|
|
Algorithms Protect Programmers From Too Much Information.
How about this for a definition of algorithm: A set of rules that protects the programmer from too much information.
When presented with too much information we have a hard time making
decisions. That's a problem we face in programming all the time.
Solution spaces are almost always infinite. We can do anything and
that's the problem. Algorithms and their relative, patterns, reduce the
solution space to something where better decisions can be made.
It turns out the more choices we have the more indecisive we become.
More choices causes the accumulation of opportunity costs and fill us
with regret from the choices we did not make. Having more data doesn't
mean we'll make better decisions either. We'll usually do worse because
the more data we have means the more alternatives we can think of which
means the more doubt we have which means our chances of picking the
right solution is small.
Asking people to make decisions between many options when their
knowledge is shallow means their chances of picking the correct options
are no better than chance. With experience you learn the crucial
minimal set of facts you need to make the best decisions. Until you get
that experience your chances of success are small.
That's why books of algorithms and patterns are so valuable. If your
knowledge is shallow, which most of ours is in new domains, then you
need help in minimizing the number of good solution alternatives.
When people say they don't like patterns I always cringe a little. If
you are an expert then patterns aren't necessary because you will
naturally use them as appropriate in crafting solutions. But if you are
not you are forcing people to endure a blank canvas with the
instruction to just paint something. Talk about brain lock.
12:50:57 PM
|
|
|
|
© Copyright
2006
todd hoff.
Last update:
7/11/2006; 12:46:39 PM.
|
|
July 2005 |
Sun |
Mon |
Tue |
Wed |
Thu |
Fri |
Sat |
|
|
|
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
|
|
|
|
|
|
Jun Aug |
|