Starting in programming

This is a compiled of things I believe are relevant to a person getting into programming, focused on those that come from another field.

Programs and computers

A program is a set of instructions to the computer. Programs use computer resources to achieve their results:

Picture a chef cooking a recipe.

The chef gathers ingredients from the fridge and puts them at the countertop.

Once the recipe is done, the countertop gets clean and the recipe is stored at the fridge.

In this scenario we can see the countertop as the RAM, the chef as the CPU and the fridge as the DISK of a program that prepares food.

How does this work?

We write programs using programming languages. How does that work?

For now just accept that some things are given. When learning how to draw we can dive into how pencils are made to the point where we reach knowledge about how is the graphite extracted and processed, but this isn’t very helpful when learning how to draw, so we treat the existence of pencils as given.

Just know that:

  1. There’s a way of giving instructions to a computer to manipulate its resources. This instructions are too cumbersome to write.
  2. Someone figured a way of writing more human-friendly instructions by defining a structured language and a way of converting this new language to the instructions that the machine can understand.

Can we start already?

You’ll need to pick a programming language to practice.

The thing to have in mind is: don’t overthink it. When buying a car or house we do an extensive research because it’s a big commitment, but this is not true when it comes to deciding a programming language. Just pick one and go with it, it will not be a waste of time. It costs nothing to switch to another language later and the knowledge will be easily transferible from one to another. I’d recommend javascript or python if you need some recommendation.

What should I do? Tutorials?

  1. Get to know your chosen language enough so that you’re able to:
  2. Build something. Seriously. You have internet and you can read. Don’t know what to build? do hackerrank challenges then.

Next steps would be to learn about git and about how the internet works, but that’s for another post.