Learn Programming from Scratch Step by Step, Regardless of the Language
Hello! Our goal in this section is to build a "guide" with the main aspects of the programming world. Here, you will learn the fundamentals of algorithmics (Don't let the word scare you; I assure you it doesn't hurt, you'll see). Algorithmics is the science and art of designing algorithms for the systematic or automated resolution of problems.
Even if you don't have experience with programming, it's certain that throughout your life, you've executed many algorithms (Even if you don't believe me). An algorithm is the detailed specification of the steps necessary to complete a task. In school, for example, we learned a series of steps to perform additions, subtractions, multiplications, and divisions. These are algorithms (we owe the word "algorithm" to the Muslim mathematician Muhammad ibn Musa al-Khwarizmi). A recipe is one of the clearest examples of an algorithm. The set of procedures that must be carried out in any public institution for issuing a document, such as a driver's license, is also an algorithm (Did you see? It didn't hurt, did it? Do you believe me now?). In this section, we are going to learn the fundamentals of creating programs; we are going to learn to program. A program is an algorithm made to be executed by a computer.
Algorithmics is also an art, as creating an algorithm requires excellent doses of creativity, dedication, persistence, patience, and experience acquired through practice and time. The creation of a program will be significantly influenced by factors other than the mathematical model (see! You don't have to be a math genius anymore), such as the programming language to be used, the physical limitations imposed by the computer (memory, processing, etc.), or even the deadlines for project completion. On the other hand, many programmers seek an aesthetic aspect in the realization of their programs; for these people, writing programs is an exercise similar to literature, and it should be for everyone!
Here, I want you to see both aspects of programming: on the one hand, I will present techniques that are already classic in programming, and on the other hand, I will show the problems that can arise when converting an existing algorithm or one we have thought of into a program that runs satisfactorily on a computer. A very illustrative analogy is comparing an algorithm with a cooking recipe, while the program would be analogous to the dish prepared following the recipe. If you are a novice cook, even when you have the cooking recipe in your hand and follow all its steps methodically, you may find that in the end, the dish is not as appetizing as you desired; that's where the art comes in, the ability to innovate and refine the recipe with a personal touch. Just as that ability to integrate the scientific and technical part with the artistic part makes the difference between the novice cook and the most qualified chef, it also makes the difference between a beginner programmer and an expert. I hope the recipes you find in this section will be handy as a basis for creating your own.
It should be clarified that through algorithmics and programming as such it is possible to find multiple solutions to the same problem. However, there will be some that are more optimal, effective, and efficient than others, so it is also a good practice to always think not of any solution but of an optimal and efficient solution for each problem and thus avoid future problems with our programs.
A clarification: This foundational section alone does not intend, nor can it explain everything about programming (it's an infinitely long topic). It is also necessary for you to practice and research topics you haven't mastered or those that you are most passionate about to learn programming. I invite you to practice: The only way to learn to swim is to dive in and swim, so learning to program is learned by programming and programming.
Alright, now that this "short introduction" is finished, it's time to start, so head over to the section on algorithms and programs to expand our knowledge and continue learning to program. Remember that you can also leave a comment about this section. Alright, let's go!
This article was updated 8 months ago