Sorry this is going to be a long one. :P
(Skip to the end if you want.)
I’ve been on both ends of that sort of thing so I know what that can be like, but usually people aren’t just being mean for the sake of it, they’re being cruel to be kind.
Being able to program also means being able to ‘fend for yourself’ (i.e. to work things out for yourself) at some point, and it’s easy to fall into the habit of “if I get stuck I’ll just get someone else to work it out for me”. Some people (even professionals) make a living just copying and pasting code and begging for help on the internet until they can get a half-working frankenstein program running without fully understanding how it works. Many decent programmers try their best to discourage this by forcing people to work things out for themselves. It may or may not be the best way to go about it, but ultimately it’s usually well intentioned.
I agree that it’s difficult to reach the point where you know how to glue bits together, but even with proper tuition it takes a while to get to grips with. There are things that can be done to help, but it’s more than just knowing techniques for gluing code together, it also requires first-hand experience.
Perhaps I didn’t get my point across quite right.
What I mean is that beginners have a tendency to want to avoid complicated topics or rationalise that they can get on without them, but anything worth having comes at a price and in programming that price usually involves understanding a theoretical topic before being able to put it into practice.
Even ‘walk left X spaces, walk right X spaces’ has theory behind it (i.e. state machines). For simple stuff it’s easy enough to get away with not knowing it, but there comes a time when the hard topics have to be discussed.
In early tutorials it won’t need to be considered as much, but later tutorials will unavoidably hit the ‘theory’ stuff and it’s going to need some inventive tackling.
Actually, I’m not a professional at all, I’ve never had a job being a programmer and 5 years ago I didn’t know the difference between a gigabyte and a megabyte.
Well written tutorials are helpful and I admit there’s a lack of those out there, but it’s also important to be determined and to not back down just because something looks dull. Everything that makes games fun is backed by a shed load of stuffy, boring mathematics written in latin by pompous dead people.
I’m not saying you’re wrong, I’m just saying it’s a hard task and it’s going to need a lot of coordination.
Importantly it’s not just about educating people about programming, there’s an aspect trying to cultivate the traits that a programmer needs, like problem solving and determination.
In the past I’ve seen people argue that programmers are actually problem solvers and programming languages are just a way to express the solution to a problem and while I don’t think it’s quite that simple, there’s some truth in that sentiment.