# How difficult is it to learn programming independently?

If you ask this question then it is very difficult, otherwise you would already know that it is very easy.

In short: Not everyone can learn to program.

Other than the ladies politicians think: programming is not important.It is not a basic skill in life.

You used to be reasonably handy with numbers.
1 + 1 is 2, 3 * 4 is 12, 21/7 is 3. And also with logic.If the traffic light is on red: remain stationary. When it jumps green: drive through. Why? You don’t want to end up crossing cars.

If you do this, programming is not so difficult.
You need to learn some “language” that the computer understands.
How do you say 1 + 1 against the computer?This can be in many different languages. But it is not very difficult, if you have done it a few times.

You used to be handy with mathematics.
A + B = C. These are abstractions.You can enter something in A, and something in B, and the result is equal to C. C can be a number, or a calculation. The result is interchangeable.

You can also do this in a computer program.You create a function that reads two variables and throws a result out of it.
Again you need to know the language to control the computer.
Add_number <-function (A, B) {return (A + b)}
After this you can run Add_number (1, 5) and the result is 6.

If you’re already here, programming is probably nothing for you, then it’s hard to learn.

But, what exactly are you going to solve.Because numbers add and subtract can anyone, unless it is large numbers.
If you want to program, you also need to know something about what you are programming.How does a thermometer work, how can you determine the number of cars driving a road, how do you calculate the value of a mortgage?
Only working with numbers and logic is not enough, you also need to have a somewhat broader interest.And if you are interested in human contact, programming may be difficult. Not because you can’t, but because you find other things more enjoyable.

If you like troubleshooting and are a bit good with numbers, math and logic you can learn to program.

The problem with autonomous programming is not so much the first step.
The problem arises with complex problems.You want to sort a list of 10,000 records, but it should be within 5 seconds. How do you do that?
Then your Add_number function no longer meets, but you have to go through the logic and technique much further. Because suppose that those 10,000 records still succeed, but that it is tomorrow 100,000 records in 50 seconds.And the 100,000 records don’t all fit in the small piece of memory of the processor. You have to start using RAM, which is slightly slower. And if the data set is even bigger you may need to switch to an in-memory database. How does that work?

Or you need to collaborate with others on a large piece Of software.You know how to run a program together, but now it has to communicate over the network. An external program goes Add_number calls, and also wants to receive the result back. How should you do that?
Because you have limited control, if you already have it, about the other program.Maybe they want to communicate in Chinese, and receive the answer back in Chinese as well. Over a token-ring network.

In larger environments, you will be able to create different insights and experiences.You are good at Visual Basic programming, but there they use Java. You need to learn a new language. Can you do that quickly, do you understand the programming logic good enough to convert this to another language? What if the language does not understand your way of logic, or that you can only set it up cumbersome?
How do you learn how Java works most efficiently?

Independent learning programming is perfectly possible, if you are logical, quantitally and mathematically set, and you like solving puzzles.
But you get the best result in collaboration, where others can think along.An official training offers many advantages, especially in the theoretical substantiation. You don’t need it for your first programs, but if you’re working at Quora as a programmer, you’ll work with data sets that are a million times the size. And then, design choices that pose half a second delay per record suddenly cause a lot of pain.

I have a few insights that I want to share with you.The first about what to learn is:

Learning is the recognition and application of patterns.

If you read, you’re not reading letter by letter.Your brain will recognize the letter order in a word like something that is ingrained, so you don’t have to “pick it up” every time, you just apply it. By looking at things and working on it, you train patterns. In Europe, you will be able to recognize people who are a lot more quickly and we have the idea that Asians are very much alike. Asians have that right with Europeans. If you keep faces on their heads, it is already very difficult to recognise facial expressions.

If you skate laps every day you will automatically be good at skating.

Programming is just as something.The more time you spend on it the better you get there in Word. Things that seem impossible at the beginning just let you lie down to a later moment until you are ready.

Once you learned programming from a book, did you run into a problem?Then it was important to go to the library or to fall back on other people who can also help you.

But as Naval writes (freely translated):

“The Internet is the best school ever made.You can find the best like-minded on the internet. The best books are on the Internet. The best teachers are on the Internet. The tools to learn are plentiful. It is the desire to learn that is scarce. “

Teaching yourself programming is easy, but there is an important condition that is extremely important: learn English.