I was at an T224 Tutorial yesterday when one of my fellow students explained that he had already completed M150 ("Data, Information, and Computers" - or something akin to that) but he said that he found the programming aspects very difficult and realised that he wasn't a programmer. He asked what advice any of us would give him to help him get to grips with programming.
Various bits of advice were contributed. One student, who had been annoyingly vocal during the tutorial and had advice for everyone on every topic, said simply that he should learn Java - but that there was no point in learning how to program because all the programming jobs were going overseas. So, two bit of bad advice in one breath I thought. Another student recommended learning learning Visual Basic "because it what most databases use" (Good grief - where did he get that idea from?).
When I was able to get a word in I explained that, in my opinion, there were two aspects to this. One was 'How do I learn to program in language xyz" and the other is "how do I learn to think like a programmer" (at which point the eyes of the chap who posed the question lit up). I said that I thought the best way to learn how to think like a programmer was to: A) Don't read books on a specific language, but find some generic books on programming - books that talk about ideas, or the general approach that programmers take. B) Read code written by experienced programmers, talk to them about it, get them to explain why they do something in a particular way. When you 'think' programming' then solutions evolve which are not language specific but can be implemented in a number of languages. Once you are comfortable with the ideas of Arrays, or Hashes, or different types of iteration, of functions, and so on then learning a specific language seems to make much more sence.
In the end the questioner said that he wished he hadn't asked the question! - Oh! I didn't mean to put him off - I'm dead keen on people learning to program and I wish that I knew more people who did.