Very quickly, society is becoming divided into two groups: those that understand how to code and therefore manipulate the very structure of the world around them, and those that don't – those whose lives are being designed and directed by those that do know how to codeI'll extend this, and assert that all intellectuals need to learn how to write programs. The gist of my argument is that we now have ready access to incredibly powerful tools for manipulating information. If you cannot use these tools, then you cannot manipulate information at the same level as your peers, and therefore you cannot participate in the modern intellectual community.
Personally, I have encountered many situations where a "philosophical" issue would benefit greatly from the sorts of calculations that computers can perform easily. Most notable is the demand for mathematical modelling or simulation: it often is not possible to fully explore the implications of your assumptions without explicit modelling. This applies to political philosophy and social theory just as it applies to biology. I have even seen students of the history of science who could have benefited from computer simulations -- for instance, some classic scientific texts (e.g. Galleleo's) describe experimental results that are inconsistent with modern scientific knowledge; historians may try to examine this issue by recreating the experimental conditions of the historical scientist, but this requires immense work and ends up being a guessing game. Computer simulations can examine the effect of possible confounds much more efficiently.
An added bonus of formal modelling is that it forces the thinker to be explicit about their assumptions, so it is a great aid to communication. Too often, philosophers (both amateur and professional) are just talking past each other.
So, my advice to all the young thinkers is this: if you want to learn how to think, learn how to program.
Update: I suppose that I should provide some tips on how to learn programming. Personally, I took a college level class, and then taught myself in the context of some projects I was working on, and I just picked up bits and pieces from different sources (another self-taught programmer, some books, and some websites). It probably was not the most efficient approach, but it worked well enough.
Right now, I can recommend two sources:
- Eclipse for Total Beginners (to learn Java)
- The Alice programming environment (a toy language for 3-D storytelling)