The way to get into programming
Amazing steps to develop your programming skills
Programming is an amazing universe. This code — universe is composed by sintax, rules and creativity. Like as a handcraft, the programmers create unique code pieces to fix the world.
In this post we can learn some paths to get into programming by concept. We don’t need to know a lot of programming, only the mind vision about it. Let’s go.
Learn the Language of the things
The main skill is about be able to understand the manchine and how it works. Imagine a dummy box able to do some things like as “turn on the light”. “turn off the the sound”, “draw something” or “move forward”. All this basic rutines are disposed into the machine’s memory, like as files with code in its machine language. For example, imagine some machine with a set of basic instructions it can do in assembly language.
In this way, you only need to express some commands to the machine, for instance, you can say it “turn on led 9” to send energy to the pin 9 in the machine led-board or “turn off led 4”. It means you need to translate your instructions into commands or sentences. For instance, instead of saying “hey you, stupid box, turn on the light”, you need to translate your intention and say “machine 25 turn on light 43”.
When we make algorithms to solve problems, we think the algorithms in our natural language. We solve the problems like as humans. For example, to prepare some coffee we think as:
- Take the water container and verify it is full of water.
- Put the container and turn on the coffee machine.
- Press the prepare button.
- Not if coffee bottle is empty, thus coffee bottle should have some coffee.
- Wait to the end.
- Take your cup of coffee (you need to put the cup of coffee in the bottom of the machine).
Our language is very messy to the machines. But, if we fix our commands and sentences more, we can teach how to solve problems to the machines. For example:
- Ping status to the coffe-machine.
- If status is “IDLE”, create a work session
- By session set status to “CHECKING”
- Check the level of water > 50%, else set status to “ERROR” and end the session
- Check the level of coffee > 30%, else set status to “ERROR” and end the session
- Check if the cup is detected, else set status to “ERROR” and end the session
- By session set status “STARTING”
- Send “to heat water”, set status to “HEATING”, and lock the session
- When signal “water is hotted”, send “to add coffee”, set status to “PREPARING”
- When signal “coffee is added”, send “to dispense coffee”, set status to “DISPATCHING”
- When signal “coffee is dispatched”, unlock the session and notify to finish
- Set status to “IDLE” and clear the session
If you can domain the language of the machines, you can be able to program all you desire, in any programming language.
Learn the nature of the things
To speak The Language of the Things, you need to learn their nature.
The first goal to conquer the machines is to understand their design and logic. How the machines are built? How the machines think? How the humans can speak with machines? How the machines should be to humans? How the machines can be autonomous?
If you have a simple clock, think about all their gears, how about each gear works, how you can add one more, what happens if you remove some.
If you have some display, think how pixel of colors are merged into one screen to show a unique color, What are the instructions to print some picture into the display? What do you need to recreate this machine? How you can code some commands to send data to the machine?
If you think about all this nature (desing + logic) you can be able to see the machine’s architecture, the machine as a concept and the machine as a model.
With all this knowlege you can make new machines, new designs and models. You can be a code builder and a programmer.
Learn algorithms and a programming language
Finally you need to learn how data woks. You need to understand about the machine is an abstract mathematical model that works with data. The information cross into the machine as an input data like a function with parameters, and determines how the data is processed to generate a result (the output).
You need to memorize a lot of sintax and code. Models and operations. In the programming language that you prefer.
For example, if you want to create a sorting list machine in python, you need to write code that takes the input list and imagine how list is sorted into another list or something similar.
Try it
Conclusions
The way to get into programming is about to know the language of the things and its nature. If you can understand the things as data and models, you can be able to create more complex machines and codes.
Finally you need to learn algorithms and programming language to make your own machines and abstract models to solve your custom problems like as a programmer.
I hope this post be useful for you and I will read all your comments.
See you