You can search this and other forums, wikis, books, source code, tutorials... in search of tricks that you can really understand, searching for complete information. Review post by post, topic by topic,
manually. If a message doesn't have anything useful for you, just go to the next. The same with every Google result. Anything interesting and immediately useful by you, just use it and save the rest as much as you want. Even an artificial intelligence, which in reality is mindless and doesn't know what it's doing, can progress in this way. For example, the first post of this forum is
http://f.osdev.org/viewtopic.php?p=9When a message has complete and accurate information, and is actually directed to teach you something without delay, you will feel that it immediately captures your attention as you get to understand what it's saying in a way that you can reuse immediately, just like excellent reference library content. If not, you will just feel that you are just browsing in an errant way, without feeling tired, with attention and interest in browsing (looking for the good messages), but without really getting much done.
Extremely concrete, narrow and simple goals every day.The computer is really intended to reduce every problem and logical concept or formula down to a level where it can no longer be simplified, to a level where no other unrelated simultaneous logics of other tasks for a given application are present, to a level where each stand-alone bit of logic is cleanly distinguishable, to a level where each bit of code you write is actually an additional CPU instruction, reusable in the same stable and assembly-like way, for maximum
logical portability, with no real need to use fancier language elements on its own - that's another unrelated layer. The CPU shows you that routines written in the style of the actual CPU instructions are the ones that last longer than any other, for decades to come and go and no computer without them, so why not implement code with that style?
No computer feedback for human debugging at all times.The first thing that will potentially demotivate you is not having any sort of human input or feedback to know how you are doing. Other people might know answers but won't solve them for you at all times. At least you can still write human-readable debug messages for each step of your program, and functions to input data and to ask you whether to continue or not depending on whether your program is producing the right values or not. In that sense, it's the machine itself that can tell you in a written form readable for any human, if it's getting the results you are expecting, and at a logical level, is like asking an actual somebody else who knows best how to implement anything and directed by you.
Share the isolated tricks you learn and your doubts with the intention to clear and solve them immediately one more step.After all of that you'll want to share what you've done with others so that things become more entertaining based on what you have been doing. The most fun for an open environment like this is based on not hiding your code or documented knowledge, but instead showing it as soon as you achieve something, so that others can make use of it, put it to the test and add to it for everyone's benefit, to make your worldwide development environment better with your contributions and shape the set of its good resources with your intellectual structure. Everyone is currently learning more in this way, so why not keep talking in terms of actual code, in terms of concrete routines for something specific, and do that every day to learn how to implement useful things every day? It's guaranteed to yield more answers than otherwise.
Every time you want to do something, write it down in terms of an extremely simple and extremely concrete, immediately usable goal that you can understand, that does as much as a CPU instruction would. In this way you won't get stuck if you complete the "daily tasks", or if you don't know how and become frustrated. There's no such "daily tasks" to be optimum, it's better to have extremely simple tasks every time you want to do something, not the whole thing at once. It can even give enough activity as to naturally start doing more things than you expected.