The art of developing systems
What is programming?
Programming can be summarized as a series of executed commands designed to achieve a satisfactory solution to a problem. For example, imagine you want to bake a cake; the recipe's step-by-step instructions are the commands. If you execute them well, you'll end up with a beautiful cake.
Everything in our lives involves a degree of programming, from the alarm clock that wakes you up in the morning to the way you read a book. A schedule formats a program of events to execute throughout the day. When we go to the supermarket with a shopping list, we're programming our expenses. Therefore, everything in life can be programmed, including our laziness.
However, the type of programming we aim to describe is computational programming: "the process of creating a set of commands that tell a computer how to perform a task. Programming can be done using various computer languages, such as SQL, Java, Python, and C++." [1]
Why learn programming?
Learning programming is akin to learning a new language and offers numerous benefits [2]:
Improved multitasking skills
Reduced risk of Alzheimer’s and dementia
Enhanced memory
Better decision-making abilities
Sharper perception
Moreover, programming opens countless opportunities, such as changing careers, working from a beach, or earning extra income with your new skills.
It doesn't matter much which language you start with; what truly matters is mastering the concepts of logic and programming. These concepts vary little across languages—think of them as the universal "grammar" of communicating with a computer.
How to start programming?
Have a computer or smartphone? If the answer is yes, you can start learning to program today. What are you waiting for?
When should you learn?
Someone might tell you, as they told me, that you need to be a certain age to learn to program or that it's too complicated. Here's a secret: they're wrong.
Programming might seem challenging at first, but think about trying to say "pink elephant" in Klingon without ever studying the language — it would be a disaster, wouldn’t it?
Who can teach me programming?
Choose reputable sources—you’re investing your time. There are excellent online courses, books, university programs, and technical schools. There’s no excuse not to learn this art.
Start with languages offering versatile tools, such as Python, JavaScript, or C#.
Where can I learn programming? And where to practice?
Today, programmers are generally divided into three main areas [3](though some also include DevOps [4]):
Frontend: Focused on the client-side, handling the visual aspects of a system using HTML, CSS, JavaScript, and frameworks like Angular or React.
Backend: Deals with server-side logic, including business rules, database access, and scalability. Common languages include Java, C#, PHP, Python, Ruby, and even JavaScript.
Fullstack: Combines frontend and backend expertise, delivering end-to-end solutions.
To become a recognized fullstack developer, start by learning software architecture fundamentals. Avoid jumping straight into technologies without understanding the underlying principles—many struggle unnecessarily for months or years because of this.
Resources for Learning
Here are some recommended platforms to begin:
Khan Academy: Offers free courses with certificates. Beginners should start with the Programming track, which includes JavaScript.
Udemy: Features a wide range of courses from beginner to advanced levels. Start with highly-rated free courses to get a feel for the platform and content quality.
Hacker rank: A free platform for practicing real-world programming problems. Although it may seem complex initially, practice makes perfect.
How much does programming cost?
It depends. The recommended platforms offer excellent free courses. Some charge for certificates, others for subscriptions, while many are entirely free. Do your research, and best of luck!
References
What is Programming? by Pamela Fox
5 Scientific Reasons to Learn Another Language by Humberto Abdo
Backend vs. Frontend vs. Fullstack: Choose your future as a programmer! by Thiago Faria de Andrade
What is DevOps? by Tulio Faria