It totally depends on how you learn. Some people like to learn from books, some from YouTube videos, and others by doing.
Personally I had to learn by doing. There was no other way to get my brain to remember the names of all the built-in functions unless it was by necessity. Why is it 'string'.split('r') but 'r'.join(['st','ing'])? etc. It also took me about 6-8 years to learn programming, so i wouldn't say I was a fast learner by any means...
However, I do know a few fast learners - my Physicist friends from the near-by Uni tell me they started learning C++ during their PhD, and by the end they are all submitting really high-quality code thats is currently being used in the ATLAS project. Totally blown away by how fast they learned, I studied them for about a year and found that they have two big secrets:
1) They learned intensively. The first year is spent almost solely learning to program in all sorts of languages (ROOT, Mathematica, C++, Python) in daily workshops. Totally immersed in it, and when they are not learning, they are studying code from other people back in their office.
2) They know nothing about "program development" in the wider sense. They just know the stuff thats specific to their physics problems. I had to explain to one graduate (who recently landed a 100k job in Switzerland) what floating point arithmetic is and how it can lead to inaccuracies. His explanation - it had never come up (until now). Being highly specialized can save you a lot of time, because most python books will have a section on Twisted/django, or something server-client. There's also a big temptation for yourself (if you like learning) to wander into areas totally unrelated to Bioinformatics but still Python. Stay lean and focused, at least while you feel behind at work.
I wish I could give you more concrete advice like, define 100 functions, 100 loops, and 100 iterators a day, every day - but sadly all I have this wishy washy "work hard and stay focused" stuff. But hopefully it helps somewhat.