How smart are programmers really

Can anyone learn to program?

6

Communicate with all friends with your smartphone, shop online with your computer. This is what our time looks like today. Aside from the brand new technologies, computers have become an integral part of our lives.

We can no longer do without software, but we don't know how this software works. Reason enough to deal with how difficult it is actually to understand software programs and to program them.

What can be said in advance: You don't have to be a math genius or computer geek to learn programming.

In this article you should learn what you actually need to be able to program. You can use it to assess yourself directly. In addition to the requirements, you will find out what you actually have to learn and how to start. There are a few more things to keep in mind when learning yourself. I would like to give you that too.

Requirements to learn programming

In addition to reading, writing and arithmetic, you should already have basic computer skills. There is actually material where you can leave out this previous knowledge yourself, but it is definitely faster if you already meet these requirements.

The computer skills indicate that you should be able to install programs, load / save / create and delete files. You should also be able to use a text program, but you don't have to be a professional at the keyboard.

An important prerequisite is the interest in wanting to understand the technical processes. Without this interest, you already lose interest in programming with the first program, because the first troubleshooting will come. Debugging and rectification is an everyday work in programming. You can worry your head for a few hours over your own program and then notice that only one sign was missing. Incidentally, this is the most ingenious feeling ever when you have finally fixed the error after hours of troubleshooting.

In addition to the technical interest, you have to have a certain abstract imagination and a little creativity.

Again and again you will have to think about how a certain program has run so far and how it should run. In addition, you will always have to break down problems from real life into small processes and describe them as a program:

  • What should happen when the user presses a certain key?
  • What if he suddenly clicks the mouse?

Learning to program - but what exactly do you learn?

First, you will learn how to use a programming language. A programming language helps you give commands to the computer. Without a programming language, you would have to constantly give commands to your computer in machine language, i.e. with ones and zeros.

Not only is this time consuming, it is far too difficult to understand. There are programming languages ​​for this, which in principle all contain the same basic elements:

  1. Commands
  2. Operations
  3. variables
  4. Decisions and
  5. Repetitions.

Everything else is based on these 5 basic elements.

If you can use these while you sleep, program one program at a time.

So that you do not have to program everything yourself, there are technologies that are based on these basic elements: libraries with ready-made functions, standards and protocols for communication and many a specialty that comes in when you want certain programming.

The programming of video games differs from online shop, but the same basic tools are always used. Just like in real life: You'd rather build a tree house out of wood, but for a house you also need concrete, steel.

With a skyscraper you have even more requirements on the building material. This can be seen in a similar way with software, depending on the functionality, other technologies are used and, under certain circumstances, other programming languages ​​as well. But basically these are based on the same basic elements. I would like to briefly introduce these to you so that they are no longer than too strange for you in the future.

A real-world example

The nice thing about the basic elements of a modern programming language is that they are based only on pure logic and thus also work with examples from the real world.

For this reason, I would like to show you in this article how they look in real life. If you think now "I'd rather start programming right away!", then read the next sections carefully.

Then I'll show you how to start programming.

Directions

Imagine you have no navigation system and no internet. I know, difficult but doable. A good friend wants to visit you. He's standing at the train station and he asks you for directions in text form on how to get to you home.

With the difficulty that he basically only understands 3 instructions. Turn left, turn right and walk forward. Since he doesn't have a computer you have to send it to him by post. That is, if there is a mistake, it won't get to your home. Now it's your turn, you write the directions and send them to him by post.

He gets off the train and has your route description in hand.

  • Turn left or turn right?
  • How much forward?

You have to find out and even test all of this beforehand, otherwise your visit will never arrive.

Your colleague sounds a bit "stupid" here, but the fact is that your computer works the same way. However, it works so fast that it seems like it is "smart".

When programming, you write exactly these directions or command sequences.

Your computer works through this stupidly and if it gets stuck somewhere, you have to stop the program and see where that happened. With your buddy it would be a huge effort, on the computer you can make such changes within seconds, provided you have found the error.

This is the first basic element: command and command sequence. Your computer basically processes one command after the other. There is a cool feature in the programming languages, because you can combine several commands into new commands. That makes your work easier.

The bus ticket

It would certainly help you with your directions if you could tell your buddy: forward 10 times or straight 25 meters. Even if we're not math geniuses, you will surely agree that we have to work with numbers every now and then.

Imagine your buddy has to get on a bus on his way and buy a bus ticket. Difficult enough when he only has 3 commands.

In this case, however, he receives another basic element: the operations. The operations allow him to work with numbers and that means that he can do ALL basic arithmetic operations. With that he at least knows that he needs money and he now knows the price.

He could also use these operations to calculate whether he has enough money for a bus ticket.

Your computer can do all basic arithmetic in the same way, and it calculates at a speed that you wouldn't even dream of being faster. This means that you can perform simple arithmetic tasks using the programming language.

There is also a bit of logic, for example "greater than" and "less than" comparisons as well as simple AND / OR links: These are the operations.

You will already have mastered most of these, but you will have to learn when to use them while programming.

Notepad and wallet

How is your buddy supposed to pay for his bus ticket if he doesn't have a wallet with money?

And maybe he has to remember which bus line to take on the way. For that he needs a notepad. Your buddy needs to save things and information and be able to access and change them if necessary.

You could explain the way to the nearest bus stop, but there are several lines that leave from there. So that he knows which bus he should get on, he must first fetch this information from the information board and write it down or "save" it.

In addition, the price table for each bus line and stop is right next door. If you don't give your buddy the opportunity to get this information and retrieve it when necessary, he will get on the wrong bus and be fined for dodging.

Saving and calling up information: Bus route 3, price 3.50, stop B. Such data are called variables in the program. With a variable you get the possibility to save and load data in the program. Only as long as the program is active.

So your buddy would almost forget what the ticket cost, how much money he still has (unless he writes down his account balance in his notepad) and which bus route he took.

Stops and platforms

At the level at which you have to explain your buddy how to get home to you, there are a few more things to keep in mind. Because you have to note that we have so far assumed that the train your buddy arrives on always arrives at the same platform.

But what if the train suddenly stops at another platform?

How should your colleague get to the ticket machine now? You have to include something in your directions that your friend can use as a guide and thus decide for himself, depending on which platform he has arrived at.

True to the motto: If you are at platform 3 go the following way, if you are at platform 4 go the other way. Further decisions would be:

IF Bus 1 arrives earlier than bus 2 THEN go to stop A, OTHERWISE go to stop B ”.

You notice that there is always a condition that is checked and, depending on what it looks like, a reaction or decision is made to it. In programming, you will make such decisions over and over again.

This lets your computer appear smart with the program, because it immediately knows which commands have to be executed under which conditions.

Get off at the 4th street on the right and get off at the 3rd stop

After your buddy can decide for himself which way to go (as long as he knows the right conditions) there is another tool.

You could save yourself a lot of work with your directions if you could do something to your colleague like: Keep walking until you have reached the 4th set of traffic lights.

Or how about: Stay in the bus for 5 stops and then get off. Again, there is a specific pattern:

AS LONG AS not yet 5th stop THEN stay seated.
or
AS LONG AS not yet 4th traffic light THEN go on.

This type of command is called a repeat or loop. As long as the condition is met, the commands in the loop are repeated. This can also be found in every programming language.

GPS puzzle

You're home waiting for your buddy. You have prepared everything for him. So good that it can come to you almost blind, it should take about 56 minutes from the train to you.

You know the train arrives at 14:00 and then its journey starts, so you expect it around 14:56. 4:00 p.m., 5:00 p.m., he's still not there. What happened? Apparently something was wrong with your directions.

What are you doing now?

When programming, you'd do something like the following, it looks a bit strange in real life, but when it comes to programming, we have no other choice.

Since you don't know where your buddy took the wrong turn, you have to give him the signal to go back to the start. This time, however, he gets a position transmitter so that you can see where he is on a map. And he will tell you which instructions from your directions he is currently executing. Then he goes. Since you know the way, you can track its position and the route description that is currently being passed.

HA! At the third intersection he should have gone left instead of right.

So you have one "Programming error" found. You operated so-called debugging and were able to correct your directions with it. In programming, it will very often happen to you that you have to look for mistakes like this, it is like solving a riddle.

However, you can restart your program yourself and set it to the beginning, so it will only take a few seconds until you know whether the program has been processed successfully. Even if you spend hours searching, it feels great when you've cracked this tough nut.

The next mistake is already waiting!

What does this have to do with programming?

Imagine your buddy wants to come over again. But now he's a robot in a virtual world!

Now you will have to write the same directions, but in a programming language. The nice thing is that you've got to know the most important tools: commands, operations, variables, decisions and loops.

So if you are able to write such detailed directions (apart from the time it takes), you have a good foundation to start with. In addition, there is the necessary diligence, because without this you will not have enough motivation to look for and find mistakes.

You realize that programming is not just for geniuses, but anyone can understand the principles.

The problem is as follows, if I first throw "Hello World" and some cryptic commands at your ears, you have not learned anything. First, you start with the absolute basics and use them along with real-world examples.

Only when they are more or less in place do you try your hand at your own programs. Because there is still enough more to discover there.

Conclusion on "Can anyone learn to code"?

If you get involved in learning to program, you will not only learn to program, but everything that goes with it.

Abstract and logical thinking, planning ahead and troubleshooting. And if 13-year-olds already have apps in the app store because they have taught themselves these basics, then you can say the following: Anyone can learn to program who is willing to be hard-working. You won't be able to do it without work.

Should you still hesitate because you don't yet know whether you could write something like directions, then I suggest that you complete the free learning programming tutorial.

There I will explain the first tool to you and you can practice directly with the learning programming robot.

If you have any questions about this, leave a comment here.