Curious. Good communicator. Creative. Detail-oriented. Persistent. Problem solver.
These are some traits that successful computer programmers share. People come to computer programming from all different walks of life and previous job experiences. But the things they have in common are that they like to solve problems. They can both imagine (or invent) the "big picture" as well as pay attention to the "little details". They can express their ideas and listen attentively to the ideas of others. Finally, they are persistent--they don't give up!
As you'll soon discover, coding is not easy. It is interesting and often fun (especially as you get more experienced in it), but it is rarely easy. You'll often run into difficulties that you need to work through and solve more or less on your own. So while we'd like to say that "anyone can learn to code", it is more accurate to say that "anyone who is willing to work hard and persist through difficulties can code."
I hear, and I forget. I see, and I remember. I do, and I understand. - Chinese Proverb
Experience is definitely the best teacher. You could read pages and pages
for loops, which will give you a handle on the vocabulary. However,
until you actually construct your first working loop, your understanding will
Effort = Outcome
Let's take a look at a sample coding task: "Prompt the user to enter a number, then print 'Even' if it is divisible by 2, otherwise print 'Odd'."
Now let's take a look at an imaginary student's attempt at solving this problem:
1. 2. 3. 4. 5.
Hmmm. A blank answer space. What might be the reason?
From a teacher's perspective, ANY of these reasons could be valid, and we have no way of determining which is true. This prevents us from knowing how to best help the student. Where would we begin?
For the student, a blank response provides no benefit because the necessary practice was either ignored or incomplete. Students gain only as much as they put in. SO:
Imagine you land a sweet tech job, and on your first day your boss says to you, "Implement a recursive algorithm to flatten our data structure." If your entire prep for this job was reading with very little coding, you might understand each individual word, but actually accomplishing the task would be a disaster.
Now imagine your prep involved using recursion and constructing algorithms over and over again. You would not only understand the words, but also have a strong idea of how to convert those words into working code.
Here are some bits of advice:
And don't forget:
Learning takes work, and you need the practice. Do your homework.