As for programming, as I mentioned before here in the forum, there are three level/steps/hurdles for people new to all this:
1) learning to program (understanding general programing logic and methods, which is independent from any program language/environment)
2) learning to program in a specific programming language (which is much harder if someone skipped on step one)
3) learning to program in a specific OS/programing environment.
Too many people these days are trying to "take the quick route" and directly jump into the deep end of the pool (step 3), only to realize (or not ) that they will drown pretty quickly if they don't have the basics of step 1 and 2 down...
Ralf
... like my daddy always said... "You really don't want to learn to swim in the deep end of the pool... you might not like the lessons it teaches".
But on the other hand, taking the big plunge is one excellent way to find out who's got the "knack" and who doesn't...
I alway approach programming as a "tunneling in process"... For example, some time back I was approached by an acquaintance who is the warehouse manager for a fastener company... Their warehouse is bins after bins after bins of nuts, bolts, screws, washers, hooks, eyes, you name it, in all imaginable sizes. To look at the place simply boggles the mind... that warehouse is huge! Anyway, he needed to do an inventory count of everything in the warehouse. Each bin was tagged with a part number, description and price... ok... so why do you need me... Our IT guy is lost... So start thinking my way down from the big problem and breaking it down to increasingly smaller steps... finally writing a step by step procedure for the count. Basically they needed to start at one end with the first bin, gather that information, move to the next bin until they hit the end of the isle... then move to the next isle and repeat, until done... From that I derived a bit of C code: two nested loops, a couple of scanf()s and a quick struct written to a disk file... Less than 100 lines of code gave them the part number, the cost price, the location and a count of every item in the place... a running total was kept and at the end they got the total value of their inventory... The IT guy, with all his C# mastery looked at my code and just burst out laughing... "That's too easy"... he says.
That's programming... not coding.
I've always maintained that a real programmer's skill is not writing source code... it's more like running a meat grinder, where you constantly reduce the "meat" of your problem to smaller steps until you get it down to manageable proportions. The second to last thing a programmer does is write code.
I figure the four main skills are...
1) Problem analysis
2) Looking stuff up
3) Writing souce code
4) Fixing your mistakes