I first learnt programming (in FORTRAN) in an introductory course on Computer Science in my first year of engineering. About an year after that I took on a project that required some ‘C’ programming with no knowledge of the language. I did that project moderately well. Some time after that, I learnt C++ from Bruce Ezekiel excellent book “Thinking in C++”, while simultaneously working on another project. Around the time I finished my graduation, I learnt C# mostly by reading an informal specification of the language.
Now, I want to learn F# and after looking at a small number of examples on technical blogs (which got me interested), I decided to download and study the specification of the F# language. I miscalculated. Reading a technical specification is not a good way to learn a language. My previous successful attempt at learning C# from its specification worked mainly because I already had experience in C and C++ (C# belongs to the same family of languages). F# is a functional language (as opposed to the imperative C family of languages) and my experience and concepts in C like languages do not translate to it. I now realize that given my background, I could learn Java (if I wanted to) by reading a technical specification but not F#. The new concepts I need to grasp F# cannot be easily learnt from a technical specification. They will have to be learnt by looking at and trying out numerous examples first, by induction.
What does this have to do with epistemology? The same principle (of induction) applies to all concepts, not just to concepts in specialized sciences. The final “finished form” of a concept is not particularly useful for learning. It is useful only when an approximate form of the concept has already been reached by induction from concrete examples.
As far as this blog is concerned, I have realized from this experience that most of my posts have been attempts at presenting ideas in “finished form”. Without the concrete examples that are necessary to reach these ideas through induction, it is unlikely that anyone who does not already agree with those ideas broadly will take them seriously. The “finished form” is useful for refining and clarifying existing ideas, not for reaching radically new ones.