|"how can i improve my studying?"|
Too broad to give a specific answer, but I'll give it a go:
People typically learn by doing so start writing some code. If you find something completely beyond your understanding, ask questions, Google it, use the disassembler, use the debugger, etcetera, until you understand. Once you found a solution, change to code in some way to see how it behaves. If something else goes wrong with the changes, do the entire process again.
Also, look at other people's code and see how they solve problems. 2+ minds are greater than 1 mind. In addition, learn the common key concepts of programming such as compilation, linking, run-time, threading (as a concept), the good and bad practices, what operations are well-defined, undefined, and implementation defined.