My Story
Tags: story, programming
Published: 2019-11-23 04:50:11

---
title: My Story
published: true
description: My Story of getting into programming
tags: story,programming
---

This is my first time writing a blog post. So It'll be good if I started with my story. 

*Note: I'm not a good blogger yet. Please share your ideas on how can I improve*

I'm a student when I'm writing this. My first experience with programming was awesome - I actually found programming accidently. All of the thanks go to my school's ICT society. I first learned HTML and Java from that place. My curiosity increased with the new things I can do with the things I learned there. So I followed some online tutorials in addition to learn more.

There I found a platform called 'Sololearn' where many developers around the world connected together for learnig, coding, helping and playing. My experience with that community was awesome. I participated for many coding challenges there and improved my skills and reputation gradually. With the help of the app and community I learned many new languages such as JS, HTML, CSS, C#, C++, Ruby, Python, Swift, Kotlin, R etc.

There are lots of stories for each new thing I learned. First I wanted to become a ML guy. I committed several weeks for just learning the math basics, but all vanished off as my parents wanted me to do study other things. As a result, I decided to code again as usual.

One day I found about git and github in sololearn. I was not interested in that much, but I used it because many recommended using it. Using them I've done many useful projects, for example

 - Morse Code Converter
 - Farming Game
 - Mars Rover Simulator
 - Calculator

I was coding for a new project called 'TFM My Tribe' - a tribe management app for a game called transformice. As a result I addicted to play games again. Bug this changed many things in my life. With the experience I gained from previous projects and VCS, I become more active in Github!

I discovered many projects and studied them. Their project structure was so different than mine. *Why are they making it too complex when things could be done more simply?* My curiosity increased; so I studied them deeply. *Well - nothing found specially*.

While I'm blindly searching for new unknown things, somebody hosted an AMA in sololearn. That's how I hard about CI/CD pipelines. I did more research on them.

After about 2 months, I found something common in all repositories in github. It's the 'build status' badge. I wondered what is that. Again after many experiments, I found tht, it was the thing we call CI.

I also wanted to include a nice-looking 'build' badge in my repos. So I decided to find one in Github marketplace. My first choice was to use Azure Pipelines. It was good though I couldn't understand it completely.

The first project I intergrated CI was my tribe manager. Actually there was no workflows defined, but I got the nice-looking badge I was searching for :smile:

After a few days I realized Azure is slow to load and hard to catch up. Alongside many were using Travis CI - just another CI tool. So I moved from Azure to that slowly.

At the same time I created a new project called 'Colorlab-JS'. Hopefully, that project improved me a lot. That was the project I introduced testing frameworks to myself. I wrote some tests with `mocha` and added them to run with the CI - this was the first time I used the CI more productively.

While I was progressing, Github introduced Github actions - another CI tool. I wanted everything under one place. So I quickly switched to actions. It was easier and thought me lots of the YAML syntx used in workflows.

After a week of hard work, I automated all the tests and deployments. At that time I found another pretty badge in popular repos - the coverage badge. Coverage is the best tool I met because it states how good are our tests. *silly I didn't understood this earlier*. Creating coverage reports were not as easy as I thought before. I wasted a whole week without proper guidance. Hopefully, I managed to create coverage reports with 'Istanbul' and uploaded them to 'codecov'. I scored more than 75% in my first run. It was fun! But with the time, I had to abandon 'Colorlab' project. Although it gave rise to a new hope vested with tfm. As I started to log into tfm again, I wanted to develop modules again for it as I did before. My friend Overjoy *(Jacub - real name)* gave me an idea for a module. That was the birth of the TFM Clicker game. With a little help of him I released the 1st version of my module and got traffic faster and many stars in Github. I learned project management a lot from that projectt.

My next idea was to add linecharts to the clicker to create stock market environment. Within 2-3 days I developed and released 'LineChart-TFM' for that purpose. I did a great task with CI in that project. All the things related with minifying and docs were automated by CI.

At that time, Overjoy was developing another project and he need a good timer library. So I developed and released a better timer library within a week with a good use of CI.

Eventhough I'm using my CI, I felt that I'm not using it for some mandatory tasks. That was testing and coverage reports. I cannot use TFM API out of tfm. So I decided to create a new environment for tfm modulese for development and testing. I named that project 'Module-API-TFM'. I could use the CI for many things in that project including testing and uploading coverage reports. I haven't done anything with docs yet, but I'm working on it currently. **That means the story ends**

**Thanks a lot for reading my first blog post. Include your ideas and suggestion below**