it takes time. put in time and you get things done. put in little little time in multiple places and you hardly make any progress in any of them. if you hit a wall, ask yourself what's the problem and how it can be fixed. always maintain a log of what you thought and did and what you found. initially it takes some time before things start making any sense.
ask for help from your mentors or from devs on irc as soon as you find you are not making any progress even after trying a few approaches. a fragmented effort doesn't produce much results, so make sure you are not shifting contexts often.