It was 7 years ago that I wrote my first computer program. I was 12 years old.

I still remember the time I hit the “Compile and run” button on the Visual Basic 6 compiler and the program ran.

A small window appeared on the screen of my father’s laptop with a button saying “Click me”.

When I clicked that button a message saying “Hello world” appeared in the screen.

And that moment I felt great. My first program was working as it should be. I was very happy that I had accomplished that (even if it only was a three-lines-of-code program).

From that very moment I understood that I really liked it.

I knew that it was what I would like to do in my entire life and I had not yet understood how many things, this new activity will teach me about life.

Lesson 1: Be patient and keep your temper

As a programmer I face many new problems everyday.

Almost every time you run a program a new issue or error occurs that it did not exist the last time you ran it. If you want to solve issues and problems while coding, you have to be patient and keep your temper. It is the only way to make the program work properly. If you lose your temper the problem will only get worst. You can only make it work if you consume the right amount of time thinking how you will solve it and then implement the solution. And always remember, the more time you put in figuring out the solution of a problem, the more probable it is to solve it.

Lesson 2: Constantly learning and reading will make you better

Software development and programming techniques in general evolve in an enormous rate. Every week a new API appears. New programming languages, libraries, tools and technologies are released extremely frequently. In order to keep up and evelove as a programmer you must constantly explore and read new content (blogs, sites, forums, books etc).

Lesson 3: Never give up

As cliché as it may sounds, it is true. The happiness I get every time I fix an issue and I make a program run properly is such that I know that I should keep working on making it work. The psychological reward of beating such challenges daily is huge.

Lesson 4: You can achieve much more as part of a team.

During the last 7 years I have worked both as part of a team and as a lonely wolf in many programming related projects.

There is no much to say here. Working in a team can not only boost the quality of the product or service but also the creativity.

Lesson 5: When things get hard, do not hesitate to ask for help.

When I am stuck in a problem for days and I have tried every possible solution of a coding issue but I have not solved it yet, I always ask a question on Stackoverflow or a forum. And most of the times… Puff! The solution appears almost magically. The only way to get better and evolve your skills is by learning from other, more experienced members of the community. Also, do not forget to contribute to the community as well. It is the moving power of software evolution.

Lesson 6: It is not bad to push yourself to the limits.

I catch myself thinking frequently while coding, “Come on man, this must be the most complex and difficult programming task you have ever coped with.” And when you accomplish this task you know you have been a better programmer and you get really happy that you have accomplished it.

Having past the last seven years of my life coding I now understand that programming is not just a skill. It is not just the ability to communicate with the machines. It is more like a way of thinking, a way of understanding the world around you. It is a problem solving mindset that will forever change your life.

And it certainly is a magnificent experience you should try.