Limiting options is a good strategy. I use a couple of others, which I always think are common sense:
1) Don't study alone. Having a group that is moving in the same direction helps create social pressure, and social pressure makes wonders.
2) Create a finish line and a deadline. They may be fictional, but they must be there. For technical subjects, an applied project is excellent. Say, if you are studying networking, try your hand at writing a protocol analyzer, or a SyncThing client. It must require the theoretical knowledge you are hoping to gain. If you can couple this with strategy (1), some amazing stuff comes out (I always remember fondly a Petri Net state machine compiler I built with four friends in three days flat).
1) Don't study alone. Having a group that is moving in the same direction helps create social pressure, and social pressure makes wonders.
2) Create a finish line and a deadline. They may be fictional, but they must be there. For technical subjects, an applied project is excellent. Say, if you are studying networking, try your hand at writing a protocol analyzer, or a SyncThing client. It must require the theoretical knowledge you are hoping to gain. If you can couple this with strategy (1), some amazing stuff comes out (I always remember fondly a Petri Net state machine compiler I built with four friends in three days flat).