In order to learn a programming language a person has to mainly REMEMBER all the functions that are in it and also what they do. Remembering is the key.

If you don't remember then you might spend days and weeks programming and still not know to solve a simple problem that you have been solving maybe 50 times while learning.

Repetition and concentration (focus) during learning will make you remember. It's probably much faster to just use a notebook and pencil for quick problem/solution writing.

So if we take the first example given, we could ask ourselves:
"How to load a file and then display the content?"

Solution should be written in steps necessary:
- loading a file and using it's data -> therefore I need: "Imports System.IO"
- I have to create a variable as a Streamreader (path to file)
- I have to display the content on the screen with a textbox, therefore:
     - I take the textbox and add the variable to it:   
  "TextBox1.Text = a1.ReadToEnd()"   -> this just has to be repeated and remembered.

Plain remembering of functions and other parts is what will the language easy. People tend to do things only once and then move on asap. Then they end up forgetting fast what they have been writing and believe they are not capable of learning it. If you no longer know (remember) how to solve simple problems, then you probably won't know what to do when you need to code a complex program. 
It's best to say a "complex" program - a relative term, depends who you are talking to.

Repeat what you have already gone through until you remember it very well. The discipline and motivation for repeating things is what will give you the feeling that this is easy and that you can do it without any problems, otherwise you'll be stuck at: "I just can't learn this, I quit" - which is not what you want. 

So not doing something that is
physical and mechanical is the main problem, and NOT that a person's mental capabilities aren't good enough. Discipline yourself to succeed, nobody else can go inside of you and do it for you.