Trouble At Code School
Joyce Park stashed this in Code
Here's the fundamental issue:
All of the code schools I've encountered take the approach of showing how the syntax of the language works with the expectation that the deeper semantics will follow. So you are shown a few instructions, a loop and before you know where you are you are on to difficult algorithms - reverse this string, discover if this a palindrome, how many occurrences of this substring and so on. These are difficult algorithms and the fact that they are introduced so early makes it difficult for the beginner who is still struggling with the task of translating even simple algorithms into text.
This is also an important point:
If you add into to the mix the simple fact that most of the beginner programmers are working alone and really don't know what to expect or what to value as part of the skill, then you begin to see that there is a lot of trouble at code school. So if you have given up on a course of learning to program, don't feel too bad - it is more likely the course that failed, not you.
I look at it like this; when you start to learn a foreign language, you are really screwed. You know nothing. You know maybe one or two words that you can identify when somebody is talking, from something "easy" (for a native English speaker) like Italian or German. Even for something like Arabic or Russian.
But learning rudimentary skills is not a bad thing; all mastery must begin somewhere. Sure, these code schools are not helping autodidacts become mastery programmers, nor are they getting people jobs outright -- but there are folks who learn Russian or Arabic or German or Italian near-native fluency (in this case, near-native would be the "typical" programmer who has been programming since childhood) in *just* one to two years through intensive study. And you know what, they all start with the basics.
Where these code schools/academies go wrong is they don't tell the bigger vision.
I had a friend ask me the other day: "what is code?"
This student is a full-time incoming medical student; brilliant by any measure, and yet he has not the slightest clue "how to code."
First, I think we should say, it is not imperative for him to know how to do so. I'd much rather visit an exceptional medical professional, than a good one who is a decent programmer.
Secondly, he had no conceptual understanding of "code."
This is the key fault of these code schools; while they are, perhaps, still trying to find their way, it's really no more than the "Learn to program _____ in 24 hours" that they sell in Barnes and Nobles, just online and easier to sample.
I'm sure some small percentage of folks who start out with those books -- maybe 0.1 to 0.001% -- become "fluent" programmers; but that non-zero number is rather significant at scale, and moreover, the person who has some arbitrary knowledge of German or Italian or Russian still might find some use for that, even if it's only understanding the Cyrillic alphabet, even if they're not fluent.
More knowledge, however shallow, is not necessarily a bad thing.