My month of self-imposed beverage exile ended yesterday. By the middle of the day I'd managed to work my way through hot-water-with-lemon-juice (my usual first drink of the morning), fizzy cranberry squash, coffee, banana smoothie and prosecco. I added proper beer (Old Speckled Hen, as it happened) in the afternoon and improper beer (Tsing Tao) in a Chinese restaurant in the evening. Tea appears to have been an unexpected omission which I and my giant magic doesn't-fall-over-mug are now remedying.
I would say that one of the most useful and relevant skills a computer programmer can have is the ability to spot things which don't fit into usual rules. The exceptions, the special cases, the edge cases.
For example, consider writing code which handles dates. Have you remembered that February is a short month? And that every four years it will be one day longer? Except every 100 years, when it isn't. Except every 400 years, when it is. If your code is going to handle historical dates, have you remembered to write special-case code for 1752, when the bastards took our eleven days? And have you remembered that the switch from Julian to Gregorian happened at different times in different countries, and was handled in different ways?[*]
Anyway, the net effect is that if you mention to a programmer than you are following, say, a particular diet or a particular set of rules, they will immediately begin to consider what unusual cases there might be. Or what loopholes. Or inconsistencies. (I reckon a roomful of programmers and a copy of Leviticus might just provide the solution to the global energy crisis.)
Now, I'm a programmer. I live with a programmer[**]. A lot of my friends are programmers. And into this environment I brought the rule: I will drink nothing but water during January. As a result, I now have policies on:
... and probably a bunch of other things I've now forgotten about. Including whether January started at midnight on NYE (it didn't) or finished at midnight on Jan 31st when I happened to be more-or-less walking past a pub (it didn't). The watery season ran from when I got up on Jan 1st to when I got up on Feb 1st.
[*] To be honest, the take-home message from this specific example is "never attempt to write code which handles historical dates". See Tom Scott on time zones, for another piece of code you should never attempt to write.
[**] ChrisC was not known as "counter-example Chris" for nothing while at university. Actually, he's been remarkably restrained on the topic of the water-only rule throughout January. Possibly he feared that I might beat him to death in a tea-deprived frenzy.
And if you were intending to donateme WaterAid some money - or were waiting to see if I succeeded before you committed cash - it's not too late!
I would say that one of the most useful and relevant skills a computer programmer can have is the ability to spot things which don't fit into usual rules. The exceptions, the special cases, the edge cases.
For example, consider writing code which handles dates. Have you remembered that February is a short month? And that every four years it will be one day longer? Except every 100 years, when it isn't. Except every 400 years, when it is. If your code is going to handle historical dates, have you remembered to write special-case code for 1752, when the bastards took our eleven days? And have you remembered that the switch from Julian to Gregorian happened at different times in different countries, and was handled in different ways?[*]
Anyway, the net effect is that if you mention to a programmer than you are following, say, a particular diet or a particular set of rules, they will immediately begin to consider what unusual cases there might be. Or what loopholes. Or inconsistencies. (I reckon a roomful of programmers and a copy of Leviticus might just provide the solution to the global energy crisis.)
Now, I'm a programmer. I live with a programmer[**]. A lot of my friends are programmers. And into this environment I brought the rule: I will drink nothing but water during January. As a result, I now have policies on:
- soup (fine. So long as I (a) eat it with a spoon, (b) would usually it eat with a spoon and (c) can readily and by eye distinguish its viscosity from that of water. Sadly this ruled out miso soup. And ramen.)
- liqueur chocolates (Fine. So long as they're not the ones that are basically a chocolate shell full of spirits. No one offered me any, so this was never relevant.)
- milk on breakfast cereal (no. Technically it's not drinking but, like ramen, it felt like it.)
- sparkling water (no. No idea what WaterAid intended, but I didn't want to risk a stewards' enquiry)
- dunking biscuits in water (no. Principally because it sounds disgusting. I'm not really a dunker anyway.)
- dunking my biscuit in someone else's drink (no. It feels like exploiting a loophole plus I don't even want to do it.)
- communion wine (I've been intincting)
- hot water (fine. Despite
secondhand_rick's insistence that it was cheating, which I'm pretty sure he was only doing for devilment.) - lemon wedges in water (no. In pubs/restaurants I asked for no lemon, but didn't demand a replacement drink if I got it anyway.)
- ice in water (no. Because I never want ice in water. But since I deemed boiling water valid, frozen water should technically be valid too, I think.)
... and probably a bunch of other things I've now forgotten about. Including whether January started at midnight on NYE (it didn't) or finished at midnight on Jan 31st when I happened to be more-or-less walking past a pub (it didn't). The watery season ran from when I got up on Jan 1st to when I got up on Feb 1st.
[*] To be honest, the take-home message from this specific example is "never attempt to write code which handles historical dates". See Tom Scott on time zones, for another piece of code you should never attempt to write.
[**] ChrisC was not known as "counter-example Chris" for nothing while at university. Actually, he's been remarkably restrained on the topic of the water-only rule throughout January. Possibly he feared that I might beat him to death in a tea-deprived frenzy.
And if you were intending to donate
no subject
Date: 2015-02-02 01:43 pm (UTC)Also, 'only for devilment? Not only, but also!
no subject
Date: 2015-02-02 01:48 pm (UTC)no subject
Date: 2015-02-02 02:53 pm (UTC)The programmer attitude is pretty much identical to the rabbinical legislative/exegetical attitude; while the Talmud (and subsequent codifications, commentaries, responsa, and discussion) isn't a solution to the energy crisis, it's certainly a substantial library of work...
no subject
Date: 2015-02-12 04:40 pm (UTC)I'm both a rules lawyer and a programmer, which exacerbates this tendency.
no subject
Date: 2015-02-04 04:46 pm (UTC)no subject
Date: 2015-02-04 11:09 pm (UTC)No, I can't remember either.
Mind you, I've always thought "if you spill your beer, we'll give you two beers" was a bit of a rubbish threat.
no subject
Date: 2015-02-05 10:00 pm (UTC)