This is a very broad question. The following topics all seem to be relevant:
- Learning about chess theory (opening and endgame, as well as priyomes, which are appropriate stratagems for certain typical aspects of a position)
- Didactic methods (i.e. how humans learn)
- Pattern recognition and memorization
- Productive chess play against a chess engine
- Analysis skills improvement
- [I'll think of another one in a minute...]
1.a Openings
To learn an opening, you need to have the objective of knowing what move to play in a given position from that opening. The word position is critical; if you only learn a given sequence of moves, you will get outwitted by an opponent who starts by playing one opening, and then plays a move that isn't in that opening, but which transposes to another. For example, your repertoire includes the Dutch Defence vs 1.d4, so when your opponent plays 1.d4, you reply 1...e6 (you avoid playing 1...f5 immediately, to preclude the Staunton Gambit (1.d4 f5 2.e4).
This (1.d4 e6) allows your opponent to play 2.e4, which transposes to a French Defense (normal order is 1.e4 e6 2.d4). The position is what tells you it's a French, not the move order.
To learn openings using positions, get a chess position trainer (some are free), and load up your repertoire. The trainer will give you flashcard-like training on random positions, and you need to reply with the correct move for that position; the way you got there is irrelevant.
1.b Endgames
To learn endgames, you need to a) determine which ones to learn, b) find the theory somewhere, c) learn that theory, and d) develop competence in applying that theory.
Software can:
a) Tell you the relative frequency of different endgame types. For example, Rook v Rook endgames occur in about 50% of all endgames, but K+B+N v K occurs only once in 6000 games. Learn RvR; skip K+B+N v K.
b) Teach you the theory. The better chess software packages come with an Endgame Trainer module, but you can also just download a very inexpensive one; I recommend the Chess King app Ending for Android in the Google Play Store; it's ported from the PC version, Total Chess Endings (by ChessOK, the same company on the PC platform).
c) The Endgame module will illustrate how the ending is handled, and then pose problems for you to solve that incorporate that ending.
d) A chess database can help you find examples of that ending in practical games. You can grab one of these at the point where the game transitioned to that ending, and play it out against an engine. Then, go back to the actual game and see what the masters did. BTW: You should choose games where the players were both rated at least 2200; lower-rated players are virtually guaranteed to mishandle most practical endings to one degree or another; some 2600+ ELO players do it, too.
1.c Priyomes
A priyome is a typical procedure for handling a specific aspect of a position. It deals with limited numbers of pieces, and implements a key idea. For example, when trying to create a passed pawn the general priyome is to push the candidate first, i.e. the pawn that has no opposing pawn on its file.
I haven't found a single source for priyomes in software or databases anywhere, but software can help you play out a priyome that is illustrated in a book. I can recommend "How to Choose a Chess Move", by GM Andrew Soltis, for some examples of priyomes. Find the games from that book in a games database, and play through the variations he gives.
If you can afford it, either buy your chess literature in software form, or take the time to load the games from a book into a database. If you do the latter, extract them from a large database, such as a version of MegaBase from ChessBase, or the equivalent from Chess Assistant.
Why do your chess study in software form? The fact is that chess instruction in software is much more effective than it is on paper, because:
- You don't have to spend time setting up the position or moving the pieces
- You waste no time in resetting the position to review the lesson from the beginning
- You can review a difficult variation separately, and easily return to the mainline without losing your train of thought while resetting the pieces
- You never make a mistake in setting up the position
- You can speed through uninteresting moves or even jump to critical positions effortlessly and completely accurately
- You can analyze an interesting line that wasn't included in the material, and return to the text easily
- You can use a chess engine to analyze the position at any point in the lesson, if you want to explore further or just want a better understanding of why a particular move works or fails
- You can even add notes and variations to help you learn the material
- You can test yourself not only with the exercises, but also by repeating the lesson materials, hiding the given moves and attempting to guess them instead, with immediate feedback
I only addressed the first topic, and this answer is already 2 screen's worth, so this is probably an appropriate place to take stock (and a break).
Feel free to post questions about the other topics, and I'll try to address them there.