Bruno Kiafuka
February 01, 2020

What it takes to learn to how to program?


I am often questioned by several people who aspire to study or start a career in software programming (or simply programming), wanting to know what is the complexity in learning and what skills are needed to succeed in the career. Personally I think that there is no formula to learn, but some principles and skills that should be acquired by anyone who wants to become a programmer. In this post, I will be sharing some principles and skills that we must develop during the programming learning process.

What is software programming anyway?

When we searched for "software programming" on google we received about 28,500,000 results with different approaches and definitions. These contents are often very technical, or have a very complex language, which makes aspiring programmers confused.

Whenever I was asked what programming is, my answer was similar to that of many blogs or even that of wikipedia.

Today, I define programming as a process of writing instructions that must be executed by a computer.

What does it take to learn to program?

There are several ways to learn to “program”, many of us learn because we end up having programming as a model during our training or out of curiosity. The points below contain aspects that I personally think are necessary for anyone wishing to start with programming:

  • Have the ability to solve problems - When we are actually developing a program, we are writing instructions on how the computer should solve a given problem. Every programmer must be a good "problem solver", we must develop the ability to do analysis in order to solve any problem by defining a series of interactions necessary to solve a given problem.
  • Learn how to create algorithms - “Algorithms apply in all areas of our life.” - An algorithm is simply a finite sequence of steps to solve a problem (remember the definition of programming). Knowing how to develop algorithms will help us to know how we should structure our solutions. Algorithms are very important because they help us to understand what is necessary to solve a given problem.
// Example of an Algorithm for a program
// which calculates a student's average after entering 3 grades
1. Start the program;
2. Read the three (3) notes inserted by the user;
3. Add the notes and divide the sum result by the number of notes
4. If the result of the division is greater than or equal to 50
    4.1. Inform the user that the student has been approved
5. If the result is less than 50
    5.1. Inform the user that the student has failed
6. End the program
  • Learn to write pseudocode - Pseudocode is a method used to informally write an algorithm, using a simple language without necessarily following or using the syntax of a programming language.
// Pseudocodigo from the Algorithm above ...
    average, note1, note2, note3
   read note1, note2 and note3
   media = (grade1 + grade2 + grade3) / 3
   If (average> = 50)
      then write “approved student”
   If not
      write “failed student”
  • Learn and master at least one programming language - After learning or aspects mentioned above I would advise you to learn and master at least one programming language. Programming language is the formal method for telling the computer how to execute our instructions (our algorithms) - every day a new language is being created, they all share the same concept but have a different syntax. Within them there are some that are considered the easiest to learn, particularly I recommend starting with the following languages: Python, C, C ++, Java, C #, PHP and Javascript.

Languages are listed randomly.

// Python example of our Pseudocodigo
nota1 = int (input ("Insert the first note:"))
nota2 = int (input ("Insert the second note:"))
nota3 = int (input ("Insert the third note:"))
media = (grade1 + grade2 + grade3) / 3
if (media> = 50):
   print ("approved student")
   print ("failed student")
  • Research ability - a programmer (whether a student or even already practicing the profession) must develop the research habit. Much of the content exposed online (video lessons, blog posts, etc.) helps us a lot in the process of learning and/or career development, since we will be learning from other people who have more experience in our area of study.
  • Dedication and willpower - The aspects mentioned above are very important in a more technical and academic aspect, dedication and willpower has a very personal application. Many times due to lack of dedication we end up not putting into practice what is taught to us, ignoring the content we have in our possession, not only in programming but as in every other area of study, we must be persevering and invest our time in improving our qualifications.


After learning how to program we can develop several solutions for the most varied problems. We will be able to create applications for computers, applications for furniture, applications for smart TVs, etc ... But for all this to be possible, a lot of dedication and discipline is necessary.

Programming can become a seven-headed bug from time to time especially when we are not doing it willingly, but it can and should be fun when we do it with willpower. The points covered in this blog helped me in the learning process and even today I use them as a reference point in the development of my solutions.

"Learning to program can be a little frustrating at first, but it's worth the sacrifice ". #CodingIsFun🚀