💡 How I chose my first programming language

💡 How I chose my first programming language

Personal tips to start learning to code effectively

Featured on Hashnode

"Making the first step" is easy to say but hard to do. And not just in programming but in any field of daily life.

Whatever your job, college career, or hobby: starting is tough. But what it's beautiful about starting with something is seeing how you are progressing and how you are converting yourself into a better version each time.

If you want to become a programmer but don't know how to make your first step into this wonderful world. I'm here to bring you a little help.

I'm Erick and welcome to my blog! Here you'll find a lot of content about web development, and also some stories I'd like to share about my programming journey!

Welcome to: Erick's Notepad

For my first article, I want to share my personal experience about choosing my first programming language, and some tips for novice programmers related to each phase of learning a new language.

So, let's begin! 🙌️

Section #1: Curiosity coded the cat 😺

I want to start this section with a short story about how I chose my first programming language.

In 2016, when I was 13 years old. I loved (and I still do love) to play Minecraft in my free time. And not only did I play survival mode or online multiplayer servers, but I also loved to tweak the textures on my own with something called Resource Packs.

In this game, a Resource Pack is a .zip file in which you can modify the textures, sounds and so much more without the need of touching the source code.

This is a really powerful tool for customization! But later in my adventure, I found some limitations. There were some parts of the game that I couldn't modify with these files.

And that's how, after doing some research, I came across the term "mods" (abbreviation of modifications). These files can modify everything in the game! From adding something brand-new to changing already existing features.

That sounds like the solution to my problem! But there was something to consider, I didn't know how to create these "mods". That's where I did another research and the result was that I need to learn Java programming first.

And that's how everything started...

So, as you can see, the reasons for selecting a specific programming language can vary a lot!

Some people select X language because of its relevance on the Internet, others for the number of jobs available with that technology, and others because of recommendations from their friends or colleagues. Each of these reasons and more are valid!

Currently, there are plenty of languages to start learning how to program, if you are not sure where to start, I am here to give you a tip!

💡️ Tip: Select a language by its learning curve

The majority of current programming languages have almost the same structure! (or "syntax", if you want a more technical term). This is because of a lot of factors, but one of them is that some languages were built based on another popular language.

Modern languages based on C (at least, some of them): C++, C#, Java and JavaScript

In this example, we have the programming language C, and thanks to this language, others came to life! (C++, C#, Java, JavaScript, etc...)

But, if some languages have almost the same structure, why did I mention the "learning curve"? This is because of two main reasons:

  • Not every language is used for the same purpose:

Some are used for mobile development, web development, game development, desktop programs, or maybe for machine learning, databases, and so on...

  • Some languages are older than others:

Languages evolve, but some are left behind.

The most current programming languages were built to simplify processes. Something like showing a text on a screen may vary its complexity from language to language.

Comparison of "Hello World" in two different programming languages: x86 Assembly vs. JavaScript

We have this comparison between Assembly x86 (a very old programming language) and JavaScript (something more modern) performing the simplest task ever: Showing the text (also referred to as Printing) "Hello world".

As you can see, some languages have more complexity to perform a simple task, and then other languages can do the same task with only... one line of code.

So, with this said, if you haven't selected a programming language yet, I can recommend two of the most relevant and easiest-to-learn languages: Python and JavaScript.

These two are really powerful technologies. You can build almost everything you want! You can google something like "What can I create with JavaScript", or "Programs written in Python", and you will find a better overview of what can be approached with these two languages!

And with this being said, let's keep going to the next section!

Section #2: Learning from the right resources 📚️

There are A LOT OF resources to start learning how to code. Seriously, check this out:

I just did a simple search on Google: "Learn programming", and I've got over 2 BILLION RESULTS in a single query, and this one involves web pages, blogs, videos, books, and so much more...

There are no excuses to not start learning! But... how can someone select the correct resource to begin? Here goes another tip:

💡️ Tip: Identify your most effective way of learning first

Everyone has a different way to learn something new. That's why we are humans after all! We are so diverse that each new piece of information that we come across can be assimilated in different ways!

And that is the reason there are plenty of resources on the Internet (and not just for programming, I mean for everything you can learn).

So, it may take you some time to identify your way of learning, but here are some fundamental points of how to easily identify it:

  • Would you rather have someone explain important topics to you with visuals and dynamic elements? Video tutorials and online courses might be perfect for you.

  • Or do you prefer to understand the information through reading (either through static or interactive elements)? Books or web platforms are indicated for your learning.

You can also combine both methods, a lot of online courses have this format, sometimes you might watch a short/medium-length video, and then you have to read an article related to that same topic.

Key resources to start learning how to code properly (with personally selected examples): Video tutorials, Online courses, Books / eBooks, Web platforms

As I said before, identifying the correct resources to learn may take some time, and that happened to me. When I was learning Java, I used to watch a lot of video tutorials, but then I realized that books and blogs are the perfect resources in my case.

Oh! I almost forgot something! Regardless of the resource you are going to use, I want you to keep something really important in mind:

💡️ Tip: Recreate and modify each of the tutorials

For example, if the video tutorial is showing how to declare variables, then do it by yourself on your computer!

And it is not just "copy-paste" everything. You can modify these codes and experiment with everything, and you can also see some common errors you may encounter in real projects.

Doing these tips will make you feel more comfortable and you will be able to adapt more quickly to a new programming language.

Section #3: Creating the first projects 💻

Once you have learned the fundamentals, it is now time to take the next step: create your first projects. Because all this new knowledge that you have acquired so far will not be worth it if you don't put it into practice.

These projects don't have to be complicated, you can start with the simplest ones, and then, by the time you will be incrementing the difficulty.

In my case, the first projects I made were a simple geometric figures calculator and a randomly generated number guessing game.

Of course, you don't have to be a perfect professional with this language, you will encounter a lot of errors, but that is the point of doing these projects. Because it will help you:

  1. To put into practice everything learned

  2. To expose the parts that were not fully understood

  3. To get more used to this programming language

And remember: If you don't have an idea of what project to start, or if you encounter yourself stuck in the middle of the road, don't worry! There is a really good friend always available to help you with everything, and that friend is your preferred search engine (Like Google, Bing, and so on...)

Once you have finished one project, don't let your inspiration extinguish there! Keep creating more and more projects, and also keep learning new topics and techniques. The more projects you do, the closer you are to becoming a professional programmer!

Section #4: Escaping the "Tutorial Hell" 🔥

This is another point I want to emphasize because any beginner could fall into this "state", as I had for a long time.

Some months had passed since I first started learning to code, and High School was getting every time harder and harder. I didn't have so much time and energy to keep doing my courses and projects.

But this was not the worst, when I had the time to keep programming, I didn't feel capable to keep learning something new, so I restarted my lessons to refresh my mind.

But I kept doing that a lot of times, and every time I did that, I didn't feel like I was progressing in my learning. This never-ending feeling is the well-known "Tutorial Hell".

Definition of Tutorial Hell:

It's the moment when a beginner feels that they're not capable enough to create something with a language despite spending a lot of time on tutorials. So, this person keeps switching from one course to another or switching to other programming languages without understanding the fundamentals.

Is there a way to leave this Tutorial Hell? Of course, there is!

💡️ Tip: Focus on one language and be constant.

It doesn't matter how much time you code. But you have to make it a routine.

Maybe you can code for like 30 minutes, or sometimes for 5 hours, but keep doing it every day. Of course, you can take some breaks, but these breaks don't have to be too long.

And as I said, Focus on one language. Switching from one language to another without learning the fundamentals will leave you feeling stuck, without any real progress.

We all have good and bad days. Sometimes we just want to go to bed and do nothing... But cheer up! Get up for every time you fall and keep progressing to become the programmer you want to be in the future!

And before finishing...🎬

Learning to program is not easy, but it is in your hands to turn those obstacles into great opportunities to continue growing!

So, remember:

  1. Start learning from the easiest programming languages (once you have learned enough of that, you can then learn other languages).

  2. Identify your most effective way of learning, and then choose your resources to start learning and practicing.

  3. Keep practicing with the tutorials, and also rewrite and modify them until you understand the logic and structure.

  4. Be constant, and never stop learning!

I wish you all the best and I hope you enjoy every step you make in this wonderful world of programming. And always give your best effort. Because the result they will get in the future will be worth it.

Oh, in case you are curious, you don't need a powerful computer to start programming. If you have a very old laptop, repaired it, optimize it, and you are ready to go!

Sometimes you just need to install a lightweight operating system and the computer is functional again! But Linux Distros and Flavors is something I would like to talk about another time 👀️.

And this is how this article comes to an end. I hope you enjoyed reading it as much as I did writing it! Articles like these and many more are in development, so stay tuned for my next post!

And I would like to mention that my social networks are open to connecting with you! I am available to answer any inquiries, or also to receive a "Hello".

Thanks for reading, hope to see you again! 👋️

- Erick 👓