in reply to how can I learn well
Inside our heads we all have a picture of the way things work, that is, a "mental model". Often something is "hard" because our mental model is not quite right. We read and read something and it just doesn't make sense because we have assumed something we should not assume. Work on becoming conscious of your expectations about how things work and challenge them by:
- following all of the advice above
- writing small programs to test your understanding (even 1 or 2 lines!)
Writing small test programs will be hard at first, but don't let that stop you. Your coding fluency and your understanding will improve with each program you write.