what to learn first as a new programmer?

"Hello World", or problem solving?

Before I go on, I want to say that I’m still learning, this is what I taught myself, these are my experience and my observations.

In university, it was my first time being exposed to real programming, we were studying the basics of C++, and I fell in love with the idea of making a living out of this. But, the way that course was structure is, in my opinion, so wrong. I remember the very first thing we were taught was how to log the typical “Hello World” in the console, and even though that was so exciting, I think we started in the wrong zone.

You see, I believe that learning programming has zones, and skipping a zone and rushing to an area that you are too low-level for, might be a death sentence to your love for programming. You might think your stupid for not understand a concept (believe me this happen to me way too frequently), when in reality you just jumped to an advanced zone, it’s like learning React when you have no idea what JavaScript is.

Let me explain, imaging you are floating in space, after years of searching for the planet that could change your life, you see a beautiful blue planet that have the potential of being THE planet. You start first observing the planet from afar, and trying to learn what you can before landing. But because you’re a greedy noobie, you start first researching for the gold in that planet, and lucky you, you found the gold!

As soon as you knew that there is gold in there, you land on the planet. Looking through the small window of your spaceship, you see the beautiful greenery, small rabbit-looking creatures and what you assume are colorful birds in the sky. You take a deep breath, full of excitement, I mean how couldn’t you, when this could change your whole life for the better, you press the button that opens the door, and at that moment, you realize the planet has no Oxygen, and you die in your ship, you didn’t even took your first step into the planet lol! Yes, I was playing No Man’s Sky all weekend, and that’s what it feels like to me when I skip a zone. We all know what exactly went wrong in that story, but this could be any of us being greedy for information. Taking your time learning programming is as important as your first time printing “Hello World”.

You might be wondering: What comes before printing “Hello World”?. Before I answer your question, it’s important to know what is a programmer first. So, what does it mean to be a programmer? According to Techopedia, a programmer is: ‘An individual that writes/creates computer software or applications by giving the computer specific programming instructions’.

Now let me ask you another question, why do you write code? Obviously, there are so many answers to that question, but I believe all the answers, no matter what they are, lead to one true answer, and that is: We write code to solve problems. Solving problems is why every programmer writes code, we use technologies as tools, it doesn’t define us and it doesn’t matter what languages, frameworks, and libraries you use, you write code to solve a problem, it’s as simple as that. So I would add on Techopedia’s description, a programmer is an individual that solves problems using technologies that give them the power to writes/creates computer software or applications by giving the computer specific programming instructions. For me, that’s a better definition of a programmer. (Let me know what do you think a programmer is)

Now that it's becoming more clear, let’s get back to your question, What comes before printing “Hello World”? Problem solving, there is your answer. Learn to solve problems, everyone that thinks of programming, as a career or a hoppy, should first learn how to solve problems, because that’s all they’re going to do. Even though it's a common knowledge that problem solving is the foundation of being a good programmer, they don't teach us that, we jump head first into the technicality of programming, leaving the fundamentals for the student to figure out.

How to solve problems, or how to teach solving problems, are another topics of another day, I thought that this question "what to learn first as a new programmer?" is the best first starter of hopefully many articles to come, let me know what do think of it all.

Thank you for your time!