[Repost from my older article in medium]
It was 10 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 on 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.
As a programmer, I face many new problems every day.
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 about 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.
Software development and programming techniques, in general, evolve at 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 evolve as a programmer, you must constantly explore and read new content (blogs, sites, forums, books, etc).
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.
During the last 10 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 creativity.
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.
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 ten 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.
So what have you learned about life through programming?
You can answer in the discussion. I would be glad to hear!
Two weeks ago, I decided to pick up TypeScript so I started learning it by creating a Tedx Talks player built together with React. It fetches the videos from the official Tedx Talks Youtube channel for you to watch.