Distinguish between learning programming and learning a programming language.
The latter is a specific way of implementing a solution identified in the former.
The three steps (extremely simplified) are:
1) understand the problem
2) construct a solution (and map it out in a "pseudo code")
3) implement the solution in your chosen programming language - if necessary, learning it!
SD