How to start programming?
Tags: programming, beginners, codenewbie
Published: 2022-07-12 21:18:00

What would you do if I told you that we all program in our day to day? That's right, since programming is giving a series of instructions to a machine so that it performs one or more tasks in an automated way. For example, when we program the washing machine, the microwave, an alarm, etc.

In simpler words, programming is a kind of art of translating a person's wishes into the language of the machine.

If you decided to use programming to accomplish a task, you will need to build an **algorithm** for the solution. This means that it is necessary to describe the sequence of steps to solve that task. We can take this example to something everyday, like doing laundry:
1.	Put the dirty clothes inside the washing machine off
2.	Add proportional detergent to the clothes
3.	Turn on the washing machine, choose the type of wash and select the water depending on the amount of laundry
4.	Start the washing process and wait for it to finish
5.	Hang out the washing
6.	Once the clothes are dry, fold them and store them

There are several **ways to describe an algorithm**:

- Graphic (schemes or flow charts)
- verbal
- Pseudocode
- Program code

Once you understand what programming is, it's time to **choose your path**.

A very common question that everyone asks when they want to start programming is: **“Where do I start?”**. To answer that, it's important to be clear **what you want to develop**. There are various branches of programming that you can choose to specialize in. They all have logical and algorithmic thinking in common, although each specialization is a different niche.

Each area has its respective tools, methodologies and programming languages.

#### •	**Web development**:
It is the creation of websites for the Internet. To achieve this, server-side and client-side technologies are used that involve database processes and the use of a browser to perform certain tasks or display information.
The languages **HTML**, **CSS** and **JavaScript** are mainly used.


#### • **Mobile Development**:
It is the development of applications for cell phones.
For Android you need to learn **Java** or **Kotlin** and for IOS you need to learn **Swift**. For both operating systems you can use **React Native**.


#### • **Machine Learning Programming**:
Machine Learning is a branch of artificial intelligence (AI) that deals with machine learning from the supply of large volumes of data.
The main programming languages in this branch are **Python** and **R**.


#### •	Video games development:
It is the process of creating a video game, from the generation of ideas for the new game to the final version.
The most widely used development engine today is **Unity 3D**, which is used with the programming language **C#**.


#### • Embedded Programming:
These are simple programs that are incorporated into an electronic board or chip, hence their name "embedded". They are usually found installed in household appliances.
The most used languages are **C** and **Java**.


#### • Desktop Development:
It is the development of desktop applications, whether for Windows, MacOS or Linux.
The most used programming languages for this purpose are **Java**, **C#** and **Python**.


#### • Programming of Operating Systems:
It is the development and/or maintenance of operating systems, such as some of those mentioned above: Windows, Linux, IOS, Android, etc.
The most used languages in this area are called "low level", examples of which are: **Assembler** and **C**.


All programming branches have their importance and in each of them it is required to be updated with the technologies. Undoubtedly, having some knowledge of each specialty will help you make a better decision, therefore, I invite you to read even more and choose where to start your career.

**Note**: Once you have decided on the branch in which to specialize, it is not necessary to continue with it for the rest of your life. You are always in time to change for something that you like and where you feel more comfortable or comfortable.

### I have already chosen my career, where do I start?

The first thing is to investigate what are the current technologies that are used today for this branch. Once you know that, the ideal is to start studying.
There are many options to learn programming:

- **Online courses**

- **Documentation on the internet**

- **Bootcamps**


It is not necessary to pay for a course, since in Google there is a lot of very good and free documentation. There are also many free courses on YouTube, which are sometimes better than some paid ones. In fact, before paying for something that you don't know if you're going to like, I recommend you start with the free content first.


Having a **university degree** is not mandatory in the field of programming, but it can help you in your process. There are careers like **Systems Engineering** and **Computer Science**. These are useful to improve your mathematics, programming logic, meet people in this field, work in a team, etc. Unfortunately, in universities they do not usually teach the most demanded technologies today, therefore, I recommend you complement by also studying on your own.


A piece of advice that will be very helpful to you is: **do not keep only what you learned in a course**. It is important to carry out projects on your own to test what you have learned, in this way you will also improve your ability to solve problems.
**Practice a lot** and never lose sight of your ultimate goal.

Once you feel ready to work, upload projects to your GitHub, build your CV, create a LinkedIn and start looking for work.


Don't forget to enjoy the process of learning 😊. At the end of the day, it doesn't really matter which technology you start programming with.