# 100DaysOfCode — What I learned in 20 days?
Versão em português aqui.
At the end of January of this year I decided to quit a course I was doing and move on to something more objective and quick. I ended up finding an article in medium that talked about the #100DaysOfCode challenge.
The challenge proposal is simple: Code for at least 1 hour for 100 days.
After understanding the rules of the challenge, I thought about projects I could start with and decided on a project I had done to test libraries like retrofit and glide. My tactic was to rewrite this project using other architectural patterns and techniques that I did not master.
As the rule says, every day has a new item in my log and there we can see that I had very productive days, days that I counted the minutes to give 1 hour of code and to drop everything, days that I struggled with bugs and days that I was defeated by them.
Today was a good dev night!
The night was not productive.
Just one hour coding, cause my mother is here.
JobScheduler is a gift from heaven!
Stupid receiver !!! I wanna kill you !!!
But, what is behind all this? Everything I mentioned above is part of anyone’s life … ups and downs, good times and others not so much. But what was I able to learn from all this?
- It’s easier than it sounds: Although it seems like a long time, 1 hour goes by really fast.
- It’s harder than you think: Sloth and procrastination are going to be cruel enemies. The hard part is being able to overcome those barriers.
- Life will try to delay you: Extra time, party, movies, travel, visit of relatives. Try to deal with this and do not fall into the next item.
- Do not do this sleepy: Productivity drops a lot, errors increase and you will pay for it the next day.
- Many people will interact with you: Your git will get upbeat and your tweets will get noticed.
- Many people will laugh at you: After all, who in their right mind would lose 1 hour a day writing code and posting on it?
- Some people will support you … and say yes, it’s cool to lose (only!) 1 hour a day writing code.
- Tests: Don’t do like I did and start the project without testing. Just don’t do it!
- Create smaller projects to better understand some concepts: I was having difficulty understanding the use of JobScheduler and the Dagger2 library. The best way to understand them was to do separate projects just to validate concepts.
- Read: Documentation, posts, articles, forums. Knowledge is there for those who want and know how to search.
- Write: Did not find available information about something you were looking for, but figured out how to do it? Share! Write yourself and help others.
Well, those were some things I noticed during the first 20 days of the challenge. Let’s see if anything else changes.
Self promotion :): In my #100DaysOfCode Challenge I have been working on the “Photo of the Day” app that has the proposal to download a daily photo from NASA’s website. The version published in the Play Store is here and the version under development is in my Git.