programmer working

Transcription:

The definition of software development is “the process of conceiving, designing, programming, documenting, testing, and fixing bugs involved in creating and maintaining applications, frameworks, or other software components.” In other words, software development is the process of creating a new app, website, video game or program, to put it in one word… software.

What is the software?

Software is the collection of data and instructions that allow a computer to perform a task (and by computer we mean all types of computers: a laptop, a console, a smartphone or even a watch). Data is usually information stored somewhere on your computer or in the cloud, while instructions refer to algorithms implemented in source code form or compiled into executable files. Now let’s focus a little on what an algorithm is. That’s all! Nothing strange; it’s just a list of steps someone (or something) needs to take to solve a problem. So, as you can guess from the definition, the algorithms don’t need to be in a specific programming language. I’ll give you an example: suppose you are hungry and you have bananas in the kitchen. A simple algorithm for solving your hunger could be the following.

If you are hungry, eat a banana, otherwise wait 30 minutes. In any case, repeat from the beginning.

See, this is a detailed list of instructions and it can solve your hunger problem. Of course real algorithms are much more complex than this, but one of the best practices in software development suggests breaking down each problem into smaller sub-problems, until they become so small that they are easily solved with elementary algorithms.

An interesting example

Ok, now let’s say you want to make your own video game. To do this, you need to start with the conception and design of the game: start thinking and taking notes on the main characteristics of your game, for example the genre (action, strategy, sport) or the main rules, then move on to the smaller details. (Is he single or multiplayer? What actions can the main character do? Does he have photorealistic graphics or is he more stylized?). Keep going until you have a fairly complete idea of ​​what your game is going to be like. It may seem strange to you, but the more details you decide before you start programming, the easier it will be to make them! Once you’re ready, it’s time to program the game. Of course, thinking about writing a game (or app) from scratch would be a nightmare!

What is a framework?

One of the coolest things about software development is that you can reuse things that you (or someone else) have built in the past. A collection of developed and shared software is called a library. A framework is simply a set of libraries and tools developed and used by developers to create other software. Frameworks allow developers to think only about the logic of their program, without worrying about the low-level details they are based on. For example, if you wanted to create a pretty basic website, you could start writing thousands of lines of HTML, Javascript and CSS (these languages ​​are used in every website you can find on the internet) or you could use a common framework like React, Vue or Angular and get by with a few dozen lines.

Back to the example

So, you wanted to make a video game, it’s there in your mind with all the details (and hopefully you wrote it down somewhere, you don’t want to forget something, right?). Now it’s time to create it, which framework can you use? Well, when you implement a game, you may want to use a game engine (you can see it as an improved framework). The most common game engines are Unity and Unreal Engine, but there are many other choices like Godot and GameSalad, which are a little easier to get started. Things not to forget!

A software is a collection of data and instructions that allow a computer to solve a problem.

The first step in developing the software is conceiving and designing it, THEN you can program it. To program software, you can save time by using a framework (or a game engine in the case of a video game).