I finished the #100DaysOfCode challenge and it feels great! I will tell you a little a bit about my experience.
Top 5 Takeaways:
- Sitting down and writing code every day is not easy
- Planning is critical to your success
- Staying motivated requires effort
- Being excited about your project makes a world of difference
- Learning takes time and effort
What did I build?
I built a Flask application that organizes a company’s data to allow for collaboration and aggregates multiple data sources. This wasn’t exactly what I set off to create but once I mentioned it to a company I was working with, they jumped on board and asked me to build it for them. So, after a month of working on the open source project and having multiple ups and downs with Docker, I was in a situation to actually get paid for the challenge I was working on! It doesn’t get much better than that.
Here’s a list of the services I used:
- Hosting – VM running Ubuntu 16.04
- Web Application – Flask
- Reverse Proxy – NGINX
- Relational Database – PostgreSQL
- Document Database – MongoDB
- Python Data Analysis – JupyterLab
- R Data Analysis – RStudio Server
Gluing all of these services together is a real pain… Docker and Docker Compose make it incredibly easy compared to having multiple VMs running and trying to get them to communicate, but it still isn’t a walk in the park. If you are considering working with Docker Compose, make friends with someone who understands how these things communicate with each other! You will save yourself a lot of headaches.
How about that commit history?
I pulled the logs from all of the different repos I worked on and summed them up. I was hoping there was some kind of trend and I could say “Wow, looks like I really put in a lot more work on Tuesdays!” or perhaps “It’s interesting that I crammed things in at the end of the month” … but there were no discernible patterns other than some nice big spikes near the end of February / early March and also in early April. However, in looking back at the code a commit isn’t very reflective of the quantity, nor the quality, of the code. It is fun to look at and see that I did it every day!
In taking a look at the average commits by day of the week, it does appear that I committed the most on Sunday and Wednesday with the lowest amount on Friday. That would make a lot of sense if you believe in TGIF!
In order to take it one step further, I decided to plot out my commits in a similar way GitHub displays a user’s activity. Due to the fact that my work was private and not on GitHub, I had to create my own, but it was pretty easy using ggplot2.
This challenge was absolutely worth doing. It certainly isn’t for everyone, but if you have some sort of inclination to do it … then do it! You’ll need to prepare yourself for some grueling times when you don’t actually want to write any code but feel the need to simply to keep up with the challenge. However, after sitting down and coding every day became a habit I didn’t really think about it anymore.
That about wraps it up! Please reach out if you have any questions or comments!