How should programming topics be organized from beginner to advanced?
If I want to learn a programming language in stages—basic, intermediate, advanced, and optionally proficient—what kinds of concepts belong in each stage? I'm looking for a useful way…