Michael Eriksson
A Swede in Germany
Home » Misc. | About me Impressum Contact Sitemap

Theoretical and practical knowledge in skill-sheets

Over the years, I have seen a great number of skill-sheets of various kinds from many different companies. Many correctly make a differentiation into theoretical knowledge and practical experience for the individual skills. However, many others insist on a one dimensional scale, e.g. (adapted from a real example):

  1. Several years experience in projects.

  2. Experience through development (small projects, in-house).

  3. Experience in modification and correction of existing source code.

  4. Theoretical knowledge.

This might look reasonable at a casual glance, but turns out to be highly naive in practice: Only by both gaining practical experience and deepening theoretical knowledge can mastery be reached. I have often seen colleagues who have several years of experience in a field, yet lack knowledge present in even an introductory text on the matter. (See also my discussions on intelligence, experience, and studies and what to read.) Generally, gaining knowledge by just gathering practical experience is slow and inefficient. Consider, by analogy, a beginning chess player who spends eight hours a week playing chess, and contrast him with another, all-other-factors-equal, beginner who divides the same time evenly between playing and reading books on strategy, end-games, openings, ... The latter will be superior—there simply is no way that the former can keep up in knowledge and understanding.


Side-note:

In an earlier version of the above, I did not stipulate beginners. I suspect that the original version holds, and am convinced that the principle holds well past the beginner stage, but (a) this way, I hedge my bets for high levels of mastery (e.g. because existing books might have too little new material to offer the master), (b) I can avoid listing quite a few assumptions that I implicitly made during the original writing, but which annoyed me at a re-visit (e.g. concerning the prior history of the players up to the point of comparison).


This would not be an issue if everyone paid attention to the theory—then the scale above would work decently. However, the depressing fact is that a clear majority do not in any way try to deepen their knowledge. This implies that they are unaware of many traps, do not learn of alternate approaches, are unaware of existing libraries, have little idea of “best practices” and “do’s and do not’s”, ...

Assuming a 1–4 scale where smaller numbers are better, I would rarely hesitate in picking someone with a 2 in theory and a 3 in experience over someone with 3 in theory and a 1 in experience: The former will gain in experience and is likely to voluntarily improve his theory further; the latter is highly unlikely to ever gain the level of theory needed to excel. Down the line, the former might well turn into a 1/1, while the latter will likely remain a 3/1. (An exception to this preference would be very short-term projects, say hiring someone for two weeks. For indefinite employment and projects above, possibly, a quarter year the above choice is a no-brainer.)

Practical experience without theory (and vice versa) makes about as much sense as a biathletew who never bothers to touch a rifle outside of competition. Yet, unfortunately, this is what very many alleged professionals do—and this is what the above scale encourages.


Addendum:

In 2012, I had a discussion with a few colleagues who were writing an internal job application. This discussion sheds some additional light on how such an idiotic treatment of theoretical knowledge could arise: They were confronted with a very similar scale, where “only theoretical knowledge” was explicitly described as the equivalent of having just read an article, visited a week-end seminar, or similar. With this description, the linear ordering would make sense. (Such a description has not been present for my own encounters.)

However, this also makes a mockery of what theoretical knowledge is. Serious software developers (and professionals in general) read books on theory and practice related to their work, and actually read-up on the tools that they use. Some (including yours truly) occasionally write down their own thoughts on the topics—and more spend time thinking without actually writing.

The scale remains idiotic and only functions under the assumption that everyone spends the same amount of time on theory (manifestly untrue)—possibly even that theory is neglected entirely.