Law

There are many subjects that a computing professional should know, indeed our profession, like most business consultancy professions, requires a substantial breadth of knowledge across all the domains we encounter and analyse.

However, law is the one I would single out as a necessity.

Our profession is on the front-line of a rapidly changing legal framework, intellectual property is the well known example, but there are all manner of legal issues that crop up day-to-day.  Regulatory compliance, valid and invalid contractual clauses, credit law, if you work in e-commerce, data protection.

I think all IT professionals, and certainly senior software engineers should have basic legal training and follow applicable law in their areas.  My university had it on the compulsory syllabus for master's students for computing, it comes in handy regularly.  The usual riposte is that "the legal department handles that", yes well, they may not be aware an issue created by software exists unless the staff there have sufficient awareness to notify them of it - plus, it is usually the source that has their head on the chopping block.

Important non-technical course for programmers?
In explaining energy and work to an 8 year-old I said that all conversion of energy generates heat as a by-product.  For example, cars generate heat in their engines and running generates heat in our bodies.  Then the 8 year-old said, except for cold-blooded animals.

So my question is, do cold-blooded animals generate any heat in their conversion of stored energy (food, fat, etc) into motion?  If they generate heat, why are they cold-blooded?
