I also present to you guys and girls the video I made on this topic from my YouTube channel, which is where I share some thoughts, tips and projects I am currently working on with other tech-fanatics, whether you are a developer, lawyer or enthusiast. Please also consider subscribing to my channel to not miss future videos and to join our live "coding sessions" and a nice, relaxing tech-related chat -- I promise to keep things interesting. The content is in Portuguese, but you can watch my videos with subtitles (maybe I will switch to English in the future, if this makes sense).
Have you seen this video, which went viral some time ago on YouTube?
The father asks his children to teach him how to make a peanut butter and jelly sandwich, with written instructions. An easy task? As seen in the video, if you act like a machine, it's not easy.
It almost sounds like bullying with children, but that's exactly what programming is all about: giving clear instructions to do something you want. The computer doesn't think for itself, so it needs the instructions to be unambiguous and to be followed correctly.
We need clear instructions |
It is a fact that today we carry out a series of activities (like putting together a sandwich) without even thinking, but every action necessary for this is already "recorded" in our subconscious. Even so, each step needs conscious instructions so that the end result is achieved: pick up the knife, spread the butter and spread the bread, all in the right order.
The same can be said for any other activity or work in your life. And that's why knowing programming can change your life.
Steve Jobs once said:
“Everybody in this country should learn how to program a computer, because it teaches you how to think.”
And this is the absolute truth! Learning to program will change your mind and allow you to see problems differently -- and not just in the area of programming, but in any field.
I'll use my example, since I'm a lawyer: when drafting a contract, you can even sit in the chair and start writing from scratch on a blank paper, and after you have a "basis" of contract, you can then start adjusting clauses and check for inconsistencies.
However, it can be much more productive if it is clear from the start the logic your contract should follow: what essential elements you should have, how you can bind clauses and obligations together to ensure the purpose of that contract, and how the entire document should follow a specific order to make sense.
This mental preparation for the work to have an efficient result is nothing more than applying a programming logic to a document. It's the same process.
PROGRAMMING LOGIC?
As we mentioned, the act of thinking logically, outlining a strategy so that your goal is efficiently achieved is what we call LOGIC.
In programming, programming logic can be considered as the reasoning you will adopt to accomplish a certain task, and this is independent of the programming language you use. You can use programming logic for a spreadsheet in Excel, for all that matters.
You don't pass the programming logic to the computer: logic is something that is in you, which allows you, based on this reasoning, to transmit to the computer what you want based on a series of clear and linked instructions that will fulfill that objective in the form of a computer code.
ALGORITHM
If programming logic is the reasoning we will use to solve a problem, what is an algorithm?
Well, the algorithm is the programming logic applied in a determined sequence, such as a "cake recipe" for that task to be accomplished.
For example, have you ever tried to solve a Rubik's Cube? For those who have never played with the Rubik's Cube, it is a 9x9 cube in which each face has a color. Each side has a center square that doesn't move, which contains the color that face should have when complete.
To solve a Rubik's Cube you can rely on an algorithm: solve one side of the cube first, lining up a cross shape and then the ends, and repeat the process for the other sides. There is a right order for you to be able to solve the entire cube without destroying what was done before. And this "cake recipe" for solving the cube can be considered an algorithm. In reality, there are computer programs that solve a Rubik's Cube today in seconds, relying on visual computing.
Check out this really cool video from a friend of mine, Jão, in which he tries to solve a Rubik's Cube -- it would certainly be easier using an algorithm (subscribe to his channel, it's a lot of fun):
AND HOW CAN I LEARN PROGRAMMING LOGIC IN A PRACTICAL WAY?
To learn programming logic, everyone would say that the only way is to program. But this seems impractical to me, since you are here exactly to learn this, considering that you are someone who is just starting and/or has never programmed in life.
Learning to program is learning to think like a programmer, in steps, assembling a peanut butter and jelly sandwich step-by-step with no mistakes.
You can, of course, start one of the many great online courses like Codecademy or KhanAcademy (which I really like 😀). Actually, you should try to seek as much knowledge as possible to become a complete professional.
But I'm going to give you a slightly different suggestion today: how about learning programming logic (that is, thinking like a programmer) through games?
In fact, I've seen some games aimed at teaching programming and I was sure I would never play them. Games that look like apps from the 90s, that is... Until I bought a game from Ubisoft called Rabbids Coding.
I played it on the computer, but I saw that it already has free mobile versions:
https://play.google.com/store/apps/details?id=com.Ubisoft.Rabbids.Coding&hl=en_US&gl=US
https://apps.apple.com/us/app/rabbids-coding/id1504420897
https://register.ubisoft.com/rabbids-coding/en-US
In my video on this subject here on the Dev.Lawyer channel, I did a little tour of the game's concept, with my debut as a gamer channel (lol, not really).
This game is very interesting: you must pass commands in a specific order to the bunny (?) on the screen, and he will follow your directions. And as your algorithms work, you clear stages. Simple but effective if you want to learn how to think logically without coding yet.
CONCLUSION
Programming is a skill of the future, and everyone should learn it, especially the logic involved. Thinking logically helps you in all fields of work, bringing a rationality that doesn't always exist.
In today's content we've brought you some concepts about what programming logic and algorithms are, as well as a fun way you can learn how programming logic works.
In our next content, we'll show you how you can use logic by actually programming something.
/* End of the post, see you next time */
No comments: