Hello! 👋

The hardest part of any business is often getting started. And it looks like you succeeded. Congratulations!

Starting from here, we have a long way to go in learning programming in general and No-Code (the ability to create programs without learning complex programming languages) in particular. But first of all, it is worth a little understanding of the basic terms.

If you are already an IT professional, feel free to skip this introductory module. Here we will deal with the most basic concepts. Application, frontend, database, HTTP protocol, etc.

Ready? Let’s go!


General theory

Programming basics

Computers, although they may seem very smart, are inherently incapable of doing anything on their own. They need clear directions. There is even such an old joke — "The computer does not do what you want, but what you ordered it to do."

It turns out "programming" in a broad sense — it is the creation of clear and understandable instructions (commands) for a computer. And the instructions themselves in a language understandable to a computer are a “program”.

And here it is worth highlighting the phrase “a language understandable to a computer” (computer-understandable language). Indeed, we speak one language, and the computer speaks another. It does not understand human speech (at least until it receives a program that will teach it to understand speech). Just like us, without special training, we do not understand machine language (or machine code), which can be represented as a sequence of 1 and 0.

10110100 00111010

Completely incomprehensible, right?

To ensure communication, programming languages ​​were created (and new ones are constantly being created).

There are languages ​​that are called "Low-level". They are very close to machine codes, but the commands are written in a form that is more understandable to a person. The most famous representative of such languages ​​is "Assembler".

The next stage is “High-level” programming languages. Most modern programming languages ​​belong to them: Java, C ++, Python, Go and many others. They are designed for speed and ease of use by the programmer. At the same time, a single command in such a language can be translated into a very complex and long set of commands in machine code.

And here is a new term — “Translator”. This is exactly the tool that translates (or compiles) text written in a high-level language into a set of machine instructions. At the same time, we should not worry (or should worry much less) about the fact that all computers are different, they run different processors, and these processors use different instruction sets. The translator will do this work for us.

The AppMaster platform belongs to No-Code platforms. It can be safely called the next stage of development. With it, it became possible to create enterprise-level applications without learning any programming languages ​​at all, without writing complex code. That is what we will do in this course. In fact, using clear visual blocks, we simply describe what needs to be done. And then AppMaster.io technologies are already turned on and they themselves write code at great speed.

By the way, this code is written in the Go language (also known as GoLang). And, on the one hand, this is very important. After all, we are sure that we are using a modern language specially developed by Google to create highly effective programs. On the other hand, it doesn't matter. After all, you can forget at all about what language is used there (it can even be replaced with another if a more effective solution is found), just concentrate on creating an application, and not on the intricacies of its technical implementation.

Before moving on, let's be clear. In the text above, different terms are used - “Programs”, “Applications”. They are synonyms that mean the same thing.

“Software” can also be added here, usually this term refers to a set of programs (applications). For example, the software installed on your computer. The word “Software” can also be considered a synonym.

Types of applications

What kind of applications are there? Let's try to streamline and structure a little.

  1. Console 
    They can also be called text-based or command-line interface applications.
    As the name implies, such applications do not have a familiar graphical interface (while it can be implemented using pseudographic symbols, and even interactive elements can be added), and control is carried out by entering text commands into the console.
    It may seem that this type of application has long been outdated. But in fact, due to lower requirements for hardware resources, they do not lose their relevance to this day. At the same time, in many industries, using the command line even has certain advantages in simplicity and ease of use.

  2. Desktop applications
    Applications that are installed and run on computers.
    For example, office applications from Microsoft: Word, Excel, PowerPoint, etc.
    Or a browser, thanks to which you open sites on the Internet and, probably, even read this text.
    By the way, the terminal for working with the command line is also often a Desktop application.

  3. Mobile
    You most likely have a smartphone. It does not matter what operating system it uses: Android, iOS or some rarer one. In any case, the applications that you use on your smartphone are mobile applications.
    Examples include browsers, instant messengers, games or applications for social networks.

  4. Built-in (embedded)
    These applications (although in this case it is correct to use the term software) are harder to notice, but they are used to control various devices and equipment.
    Thanks to the built-in software, the printer processes print jobs, the router distributes the Internet and the operation of a wide variety of equipment is ensured.

  5. Web applications
    Applications that interact with the browser and work using the Internet.
    They are the most common type of applications at the moment, and we will pay close attention to their creation in this course.

There are also many types of web applications. Let's name the main ones:

  • Landings. Small information pages where you can fill out a form or leave some kind of request.
  • Information portals. These include news sites (for example, Yahoo!) or sports sites (Fifa).
  • Internet shops. From small local stores to large international marketplaces.
  • Social network. Twitter, Facebook and many others.
  • Games. From simple text-based games to the most advanced 3d games.
  • LMS (Learning Management System). 
  • CMS (Content Management System). Thanks to them, you can easily manage the content of the site, add new articles.
  • CRM systems (Customer Relationship Management). Systems for automating customer relationships.
  • Online services. Their diversity is worthy of a separate classification. Among them are weather forecast services, search services, and banking services, and much, much more.

Well, we figured out the applications, we did the basic classification, we sorted out the types of web applications. But how does it work anyway?

And here we get to very important terms.

Frontend and Backend

The simplest illustration is theater. We come to the performance, we see the artists on the stage, we clap them, we get bows in return. And at the same time, we know for sure that the theater is not limited to the auditorium, and does not end with the stage. Somewhere costumes are sewn, preparations are underway in the dressing room, somewhere the director gives instructions. We do not see all that, but we know for sure that it is there, and without all that the theater would not be able to work.

In much the same way, everything is organized in web applications.

There is a layer that we see. The page that is displayed when we open some site. This page probably has some kind of animation and even buttons that you can click.

This visible layer is called “Frontend”. It includes everything that is on the user's side. Everything that is displayed on the screen of your device. Something that you can see and even feel.

But at the same time, we can be sure that everything is not limited to the frontend. After all, even the frontend itself, quite recently, is neither on the screen nor in the computer's memory. It appears when we decide to open another site and enter its address in the browser.

We make a request to display the site and receive a response. What blocks it has, where they are located, how they look, what fonts are used. We press a button and the command goes to the server to calculate some information, issue an answer, and provide a solution to the problem. This request and response system, Request-Response, is the cornerstone of how all Web applications work.

The request over the Internet goes to the server, to the side invisible to our eyes, to the “Backend”. At the same time, the request itself also contains certain information, it has some parameters. Based on this information, the backend decides which response to send (or it can nod politely, acknowledge receipt of the request, but do not transmit any more data).

The data transfer protocol itself is called HTTP - HyperText Transfer Protocol. You can see these 4 letters at the beginning of the browser's address bar. This informs that the interaction will be carried out using the HTTP protocol. We can say that the parties agreed in what language they will communicate.

And don't let its name fool you. Indeed, at the dawn of the Internet, the protocol was conceived exclusively for hypertext. That is, text with links, with the ability to go to another page, get another text. Now it allows you to transfer any data: funny pictures, songs, dance videos from Tik-Tok.

In further modules of the course, we will deal with the structure of requests and responses in detail. We will create requests with responses, as well as the logic for their processing. At this stage, it is enough to understand the very principle of transferring data from the frontend to the backend and vice versa.

By the way, the data itself does not appear by magic. The appearance of requests on the frontend side is easy to understand - you enter them yourself. But in order to transfer information to you, you need to somehow organize its storage and processing.

For this purpose, “Databases” (DB) work. They store data in a structured form. And there are systems that manage this data - DBMS (Database Management System). They allow you to write new data to the database, get data from there, change it, delete it (All this together is denoted by the abbreviation CRUD - Create, Read, Update, Delete). We will also study all this in detail in future modules. Let's figure out what databases are in general, how their work is organized and how easy it is to manage them in AppMaster.

How about trying it out in practice? It's time to do the first...


Homework

You need to enable the terminal to work with the command line. On Windows, the desired application is called CMD, on MacOS - Terminal.

Use the curl console application (if it is not installed on your computer - fix it). It is designed specifically to send a request to a specific service and receive a response from there.

As an example, send an HTTP request to the BoredAPI service. This is a service that can pick up an activity for all occasions.

To do this, enter the following command in the terminal:

curl "http://www.boredapi.com/api/activity?type=diy”

Please note that the address can be conditionally divided into two parts - before and after the question mark.

The first part is the request address itself. In this example - “http://www.boredapi.com/api/activity”

The second part is the request parameters. In the example - "type=diy". That is, the query parameter is “type” with the value “diy”. Thus, we indicated that we want to get such an activity that you can do on your own (diy - Do It Yourself).

See what response was received. Find the information you need in it. In further modules, we will analyze in detail in what form the response comes, what it consists of. At this stage, it is enough to understand that this is exactly what the response to the request from the backend looks like before it is logically processed and beautifully displayed on the frontend.

Check out the documentation for the service (http://www.boredapi.com/documentation) and make a more complex request with different parameters yourself. For example, find out what activity is suitable for a company that has more than 5 but less than 10 people.

To consolidate the material, try to master a more complex service. For example - https://www.alphavantage.co/

Read the documentation, get the exchange rate or stock quotes from the database.

Before use, you must register and obtain a personal access key.