Back to home

What is programming useful for?

🇪🇸Puedes leer la versión en Español aquí

When I was in university, if someone asked me what programming is useful for, I answered without thinking much: to make web pages. Over time I understood that programming is useful for much more, and I’m convinced that, in a few years, it will be as essential as knowing how to use spreadsheets.

🥦 Spreadsheets: tools like Microsoft Excel or Google Spreadsheets digitize the old paper tables. They fulfill the same mission, storing and processing numbers, but now with formulas, charts, and automations that are impossible on paper.

It turns out there’s a dynamic duo: software and hardware that connect through programming, and for you to understand how, first let’s imagine an orchestra:

  • The musical instrument (guitar, violin, drums) represents the hardware: a physical object capable of producing sound.
  • The sheet music, a written set of notes that indicates what to play, when and how, would be programming: the instructions that define the behavior.
  • The music you finally hear is the software in execution: the result of following those instructions on the instrument.

🔧 Hardware: set of physical components, like chips, boards, sensors, screens, motors, cables that form the body of any electronic system and generally allow executing software instructions.

Software lives in web pages and apps, in the applications you carry on your phone, in the programs on your laptop, and of course, in every video game, in augmented reality and virtual worlds.

At the same time, there’s code and programs in robot vacuum cleaners, light bulbs, thermostats, fans connected to your Wi-Fi. Any device with a microcontroller needs programming; yes, even your electric toothbrush or those birthday cards that play a song when opened need to be programmed.

The same principle controls today the ABS brakes of your car (which prevent the wheels from locking when you brake hard) and thousands of robots that assemble our devices, not to mention cars that drive themselves.

Programming even took us (literally) to the Moon: Margaret Hamilton and her team wrote hundreds of thousands of lines of code for the Apollo 11 navigation and control software.

Hamilton in 1969, standing next to the Apollo guidance software listings that she and her MIT team produced.

The most incredible thing is that you don’t even need a complicated environment to start. If you have an iPhone, for example, you can automate tasks with the native Shortcuts app, a low-code tool that lets you create flows by dragging blocks. It’s still programming, just with less typing and immediate results.

Low-code

To program you don’t need to look like a movie hacker, with a black terminal full of green letters and typing at full speed without touching the mouse. In fact, programming is usually a slow process, with a lot of reading, analysis, testing, internet searches, and constant review to make sure everything works as expected. As we mentioned in the chapter What do I need to know before?, logic and patience weigh more than finger speed.

Now, low-code goes one step further: it allows programming without writing so many lines of code. Instead of writing everything from scratch, you use visual controls, usually in the form of small boxes that connect to each other. And although it’s called low-code, that doesn’t mean you can’t write code when you need it, just that many things are already solved beforehand.

🎛️ This way of programming is known as node-based programming1, and as incredible as it may seem, it’s used by most game engines, especially in the visual or interface parts. It’s also common in 3D modeling tools, where connecting nodes is more intuitive than writing complex equations.

Another variant of low-code is block coding, an interface where you program using pre-assembled blocks that fit together, like LEGO pieces. This approach is ideal for learning to program from scratch, and it’s used by Scratch, one of the most popular editors for teaching programming to young people and children.

ℹ️ Programming or coding? Software, program, or application? Programming and coding are usually used as synonyms: both refer to writing lines of code that the machine executes. Software, program, and application are also used similarly. In general, software encompasses all types of code, program refers to any executable that an operating system can run: service, command, script, or daemon; and application describes programs designed for the end user, common on mobile, desktop, or web.

Nowadays, there are many ways to program without needing to be an expert in syntax or memorize strange commands. With low-code tools, you can create web pages, automate repetitive tasks, connect services to each other, design video game prototypes, or even control devices in your home.

The important thing is to understand that programming doesn’t always mean writing lines and lines of code: it’s also knowing how to give clear instructions to a machine. And with the right tools, that’s more accessible than ever.

No-code

No-code takes a step further than low-code: here the idea is that you don’t write a single line of code, but program with specific controls: buttons, forms, triggers that you drag, configure, and publish.

It’s extremely useful for validating ideas, automating tasks, and even launching real products in production without a development team, but it has the disadvantage of being what we call a “black box,” if something fails or you need complex customization, you depend entirely on the provider.

In tools like Webflow, for example, you can design and publish a responsive website by adjusting styles from visual panels; and with Zapier orchestrate flows between your applications (send an email when an order arrives, copy data to a spreadsheet, etc.) all through predefined steps.

In both cases, the power lies in knowing how to choose and combine blocks, as well as managing controls without touching the code that makes them work.

Artificial Intelligence

At the end of 2022, ChatGPT revolutionized the world of artificial intelligence by showing how incredible Large Language Models could be, with its GPT-3.5 version. Since then, LLMs have evolved to the point of being able to generate texts, images, music, and even write complete code for simple applications.

This takes us one step further from traditional programming: now you can have an idea, describe it to an AI, and receive as a response an entire block of functional code. It seems like magic ✨

But although it may seem that AI can do everything for you, writing code is only one part of what building a real product implies. Decisions about architecture, security, performance, design, and user experience are still your responsibility.

There’s nothing more terrifying than being responsible for something without knowing how it works. It’s like eating something without reading the ingredients: it might taste good today, but tomorrow it could come back to haunt you. It’s a time bomb. If the system fails (and at some point it will), it’s better to know how to fix it.

That’s why my advice is to use artificial intelligence as a companion, an assistant that helps you, inspires you, and accelerates you. But technical direction should remain in your hands. Learning to program gives you the criteria to decide what works, what doesn’t, and when to say “thanks, but we won’t do it that way.”

It’s much more than writing code

We can create our own universes in our image and likeness (I’m not exaggerating), or things as simple as automating tasks.

Programming allows us to understand how the systems we use every day work and make better decisions in a world full of technology.

Learning to program is like learning a new language: your brain expands, you start to see patterns everywhere, think more structured, and detect opportunities to create and execute ideas in our daily processes.

It’s not just about writing code, but about training your head to solve problems and turn ideas into reality. And the best part: you don’t need to study a degree to do it. With a couple of months and a lot of practice, you can be a programmer ready to take on the world.

Footnotes

  1. Node graph architecture - https://en.m.wikipedia.org/wiki/Node_graph_architecture

Join our Discord community

We are more than 300 people changing the world of programming

Join Discord