Ideally heat the water before you make your greatest demand on it for the day, but as Chuck says, with an insulated cylinder it doesn't really matter what time of day you heat. (Depending on the system, it might be argued to be better to choose a time when the boiler is already running due to having the heating on, but some systems won't heat both radiators and cylinder at the same time, so in that case, this isn't a possibility.)
Personally, I'd suggest to set the programmer to heat water once a day for however long it takes for the system to heat a cylinder from stone cold to fully heated (the time it takes for the boiler to switch off). That way, if the cylinder is already part-warm from the previous day, the system will just switch off a bit earlier but you're heating the water through to an hygienic temperature every 24 hours and any more than this is usually overkill.
Unless you are regularly running out of hot water, this is enough. If you have visitors and you run out of hot water on those occasions, then perhaps you need an extra heating period just when you have visitors.