#100DaysOfCode Day 1: Challenge Accepted:
Tags: 100daysofcode, cpp, tutorial, beginners
Published: 2023-02-20 23:20:47

We have to start learning somehow, so why not in a challenge?

## Table Of Contents
* [1. Introduction](#s1)
* [2. The Challenge](#s2)
* [3. The Content](#s3)
* [4. Final Considerations](#s4)

##  1. Introduction <a id="s1" name="s1"></a>

Hey everyone! I'm Daniel Reis, 23yo Brazilian, and I want to learn more about **C++, Rust and Database Paradigms**. But the thing is: I'm already developing stuff **since 2011**, when I first wrote my first line of code of PawnLang to run a GTA SA:MP server.

So you're should be thinking: why I entered on the [#100daysofcode](https://www.100daysofcode.com/) challenge? Very simple: I'm a **newbie** in a lot of **technologies and concepts**. I focused all this time to learn PHP and Laravel, Linux and other stuffs to get a job and enter the market but now I have a new challenge to move on.

So, even a "Senior" will be a "Junior" sometimes and it is more common than you think. Anyways, my focus will be learning everything and share it on my [Twitter](https://twitter.com/danielhe4rt) and try it to post daily here. Hope that I can finish the [#100daysofdevto](#) too LOL.

{% embed https://twitter.com/danielhe4rtless/status/1627768549883236356 %}

## 2. The Challenge <a id="s2" name="s2"></a>

The [#100daysofcode](https://www.100daysofcode.com/) is a challenge using Twitter Hashtags to seal a commitment that you will study 1 hour every day for 100 days in a row.

The topic that you will study is up to you to decide. My idea here is to use it improve skills that I will need to the next steps on my carrier, such as:

- Learn about Database Paradigms and create content about it;
- Learn about C++ enough to read some huge projects on Github;
- Learn about Rust because this lang will be the future. 

With that, produce all the content possible for the community, focused on beginners friendly explanations and help many people as possible.

## 3. The Content <a id="s3" name="s3"></a>

{% embed https://twitter.com/danielhe4rtless/status/1627795388529770497 %}

That's my first day of the challenge, and I learned the basics about **C++** because it seems easier to learn than Rust in a first moment.

I had a tough time trying to build the environment on WSL because I was not event connected on the Linux env where the compiler was (total dumbass) but I saw the problem minutes after and it worked! 

My goal to understand the structure of a "Hello World" program in minimal details was enough for today, so let me explain it for you.

![C++ snippet with a Hello World skeleton](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/947gqbqa76zdrgh3s19j.png)

* You can call **libraries** in cpp using `#include <library_name>`
* Every C++ project HAS to be a function called `main()`
	- Main is a function, so don't forget the parenthesis `()` 
- About the `std::cout << "@danielhe4rtless" << std::endl;`
	- `std::` is a abbreviation to  **standard**
	- `std::` is a **namespace**, which means that inside the `std::` has other functions awaiting to be used such as  `endl` (end of line).
	- We have the `<<` operator, that tells your compiler that it will read your line from the end of the line until the start.
	- We use the the semicolon  `;` to tell our compiler that this specific line of code is over and it can read the next one.
- You can compile using a binary called `g++` and you can install it easiliy on Linux.

##  4. Final Considerations <a id="s4" name="s4"></a>

It was a long day streaming and learning concepts so if you liked my initiative please join me on the challenge! It will be a cool idea to be with more people through this process.

Don't forget to stay hydrated and see you tomorrow's daily post!

Follow me on Twitter: [@danielhe4rtless](https://twitter.com/danielhe4rtless)
Follow me on Github: [@danielhe4rt](https://github.com/danielhe4rt)
Follow me on Twitch (daily livecoding sessons now in English): [twitch.tv/danielhe4rt](https://twitch.tv/danielhe4rt)