I was thinking last night about my tinkering with programming, back in my youth.
(Seriously, I remember writing a really involved Zork-like game entirely in BASIC - I obviously had way too much time on my hands!)
For a number of reasons, now lost in the mists of time, I didn't do IT at uni opting instead for journalism. But I realised last night my playing with programming had probably actually really improved my communication skills.
When you're interacting with a computer it will do *exactly* what you ask it to do. It won't second guess what you really meant, and if you don't phrase your request in exactly the right way it won't do anything,
Essentially the burden of communication is entirely on you. You have to figure how to phrase what you want to say in a way that is meaningful to the machine. You have to use a language it will understand. You have to make sure it has all the background knowledge it needs to understand your request.
This is largely true when communicating to a large group. You have to phrase things in ways that are meaningful to the audience. You have to make sure you use language they willunderstand. You can't assume they have the background knowledge they may need to understand what you are telling them.
Which probably explains why nearly all the really good communicators I know are also good with technology, and why the truly great programmers I know are also pretty reasonable communicators.