Review of Dijkstra’s Craftsman or Scientist

There are few computing science people with careers as illustrious as Dijkstra. The man has written and expanded much on computing science. He knows Computing Science both as a theoretical discipline, and as a engineering practice . Hence when he writes about programming, I read the article word for word.

Below is a summary.

how a person learns to become a craftsman differs from the learning process to become a scientist. The two fields have different teaching approaches. In crafts, skill is learned through osmosis. Students become masters by learning how to use tools, by imitation. Guilds form around skilled practitioners to keep the profession a secret. Meanwhile, scientists strive to make knowledge explicit. Explicit skills and formulas are published to the public domain. The interchange of knowledge is essential: thus the many conferences, and libraries of books. Theory is king; since theory proves the problem can be solved, what is the need of solving them?

where in this spectrum shall programming be? Obviously programming as pure theory is nearly useless to real-life businesses. Programming as 100% craft leaves much to be desired, especially when many people worldwide can benefit from knowing how to program. Also theory needs to be advanced. Need to blend them: take what from the craftsmen, and what from the scientist? The globe-trotting, conference-speaking, and blog-posting programmers know this: to get the best of both worlds, one needs to be a craftman at heart, and use the process of a scientist. The process includes the writing down to chronicle technical problems, and the process to solve the problems. Thus code snippets by themselves won’t do. The problem description is just as important, if not more so, than the code with a short shelf life. These superstar programmers get their fame from continuously making their learnings explicit, and searchable. Thus, to get the most out of one’s life as a programmer, one needs to put in the hours to perfect one’s craft, and publicize one’s works, like a scientist.

Your mileage may vary.