The joy of creating - The reason why I learned to code
Tags: startup, beginners, javascript, inspiration
Published: 2020-01-05 00:03:39

> When you experience the feeling of writing weird words that somehow create a website you can't go back.

# Byproduct

I have a **business development** bachelor's degree but somehow I've been working as a software developer for about 6 years now. Although I was always interested in technology and computers and the famous Game Boy it never crossed my mind that I could be the one creating things that could run on said devices. 

## How I "entered" the industry then?

In my third year of college, I and a few classmates wanted to create what we now would call a "web app". We had this idea of making an online place where you could bet on local soccer matches (we later found that this was illegal but that's the beauty of being young, right? 🥳 also the service never came to fruition so no laws were broken).

### Getting started

To achieve this we needed a lot of web development work done and neither of us had the skills or a friend that could help and knew how to do it.

### Web Apps

Some of you might be thinking that here I learned to code, and in just 3 weeks we had our MVP (that term didn't exist or wasn't popular back then) done!... **That didn't happen** We did try, but as soon as we saw `<!DOCTYPE html>` we were like "Oh @!*@$&% no &@#($# way!".

We ended up going to a company that would sell us the product, which was super expensive (actually it was pretty accessible since the company was new but for early '20s college students it was insane).

### Lessons

So the final product worked, but it wasn't what we imagined. The meetings with the company were tedious, we couldn't communicate efficiently, everyone was just tired about the idea and we found out about the illegality of the service so we just put everything to rest. 

**However** even though, the final product wasn't what we imagined I loved it, maybe not the design or how it worked, I loved it because something that I imagined had become real and people around the globe could potentially access it and use it. 

So.. My past me was thinking, I'm probably going to have many more ideas like this one "Am I going to go to a company every time?"

## My first game

>I started with something simple, so I decided to grab a book on C++ and decided to make a game... Yeah 🤦🏻‍♂️

Since I was probably going to have more ideas like the one I and my classmates had, I decided that I probably should learn how to create those types of products.

I started with something simple, so I decided to grab a book on C++ and decided to make a game... Yeah, you can figure out what happened next and if you don't immediately think "What's wrong with you" please don't start this way and don't make the same mistake I made.

That path didn't turn out well to say the least however thanks to the book I did learn about loops, variables, primitives, and conditionals which turn out to be very helpful eventually. 

I did end up making the game I wanted but with a low-code | no-code tool [Construct 2](https://www.construct.net/en) that with knowledge from the book it felt like I had superpowers. 

## Create

Eventually, I found myself to limited by Construct 2, even though is a great tool I wanted to do more.

Seeing my first game become a reality was exactly what I needed to once again grab a book, watch Youtube, Coursera, Udacity and learn more about how to create things. When you experience the feeling of writing weird words that somehow create a website you can't go back. 

I personally think that in the industry we make everything really hard for newcomers, maybe we're in too deep that we don't see how hard it is for others to understand... but I remember, and it's really difficult. 

> Wow I wish there's a day when I can write code as fast as he does.

The thing I remember the most is when I was watching a tutorial video from [@jeffrey_way](https://twitter.com/jeffrey_way) and just thinking "Wow I wish there's a day when I can write code as fast as he does".

## Opportunities

After many, many hours of watching tutorials, failing miserably I was able to break into the industry and I'm so happy I took this path. 

It has open many opportunities for me and even one of the products I made [Avísame!](https://www.meridian.org/profile/alejandro-foronda/) (no longer available) got me tv, radio, newspaper interviews, and a fellowship in a program sponsored by the US State Department.

I'm not mentioning this to praise myself but to maybe inspire someone taking on this journey. Many, many things that you don't foresee can happen in your life, and learning such a key skill in an industry that's changing the world it's definitely worth it.

![Computer with code on the screen](https://thepracticaldev.s3.amazonaws.com/i/qtw3e6its4mkjgszv26q.jpg)

# How to start learning?

I'm sorry to tell you there's no definitive answer to this. However, I do have some tips that maybe can help you in this journey.
 
## Big O, Data Structures and Recursion

To be a good Software Engineer you need to know everything on this title, Queues, Stacks, Hash Maps, Hash Sets and if your algorithm is On or On^2.
 
However, if you're just starting I wouldn't focus on these concepts just yet, focus on getting thigs to work, every try you should try something a little more difficult. Eventually, all will just "click".

I'm sure many experienced developers might have a different opinion on this and consider that this is fundamental to start learning, however for me it wasn't, especially when you're just trying to grasp some other "simpler" concepts that when you're starting are really hard to understand. 

## By doing

> Frustration is going to be your greatest enemy

You should watch tutorials, read books, take courses, there's a lot of great and free content out there. However, my advice here is don't stay on the loop of "I should learn this one more thing before starting, I don't know it yet".

As soon as you think you've learned something new just go ahead and create something using that new learning and only then you'll consolidate knowledge and realize that you understand it or otherwise you should probably check a little more documentation on one specific thing.  

Frustration is going to be your greatest enemy, however, it's necessary to really learn something. Don't be afraid to fail as many times as needed.

## Challenges

For me, challenges are a great way to learn something. Sometimes you are not on the mood to create something but you want to practice a new concept or skill. 

This is an example of a simple challenge that even though it is really simple it helps you to learn some key concepts of html. 

> *Olen Kusm noticed that his name is misspelled, He asked you to fix it for him!*

**Please correct his name.**

{% codesandbox 6353l module=index.html %}

## Help

Lastly, don't be afraid to ask for help, write in forums, Twitter, friends. Maybe most of the time you won't get any responses, double-check that your question is clear and specific and then try again. There are many of us out there that are really happy to help someone. 


# Plug

I believe you should have good company when learning programming and for that reason, I've created [that good company](https://thatgoodcompany.com) where I post challenges and starters so you can start creating as fast as you can.


PS.
Pika is my nickname since I was in elementary.